YAML ↔ JSON 변환기 및 포매터
YAML과 JSON 형식을 상호 변환하거나, YAML을 포맷팅하고 유효성을 검사할 수 있습니다. 입력 형식을 자동 감지합니다. 무료이며 브라우저에서 완전히 실행됩니다.
사용 방법
- YAML 또는 JSON을 입력 영역에 붙여넣으세요——도구가 형식을 자동으로 감지합니다
- 「JSON으로 변환」을 클릭하여 JSON으로 변환하거나, 「YAML로 변환」을 클릭하여 YAML로 변환하세요
- 「YAML 포맷」을 사용하면 변환 없이 YAML 문서를 보기 좋게 정리할 수 있습니다
- 「최소화」를 사용하면 압축된 한 줄 JSON 출력을 생성할 수 있습니다
- 들여쓰기 선택기를 조정하여 출력 들여쓰기를 제어하세요
- 「복사」를 클릭하여 결과를 복사하거나, 「지우기」를 클릭하여 초기화하세요
자주 묻는 질문
-
YAML이란 무엇인가요?
YAML(YAML Ain't Markup Language)은 사람이 읽기 쉬운 데이터 직렬화 형식으로, 설정 파일, CI/CD 파이프라인, Kubernetes 매니페스트 등에 널리 사용됩니다. 중괄호 대신 들여쓰기로 구조를 표현합니다.
-
JSON 대신 YAML을 사용해야 할 때는 언제인가요?
사람이 직접 읽거나 편집하는 설정 파일에는 YAML을 사용하세요. 주석을 지원하고 덜 장황합니다. API 응답과 데이터 교환에는 JSON을 사용하세요. 더 범용적으로 지원되며 엄격하게 정의되어 있습니다.
-
YAML은 JSON의 모든 내용을 표현할 수 있나요?
네. JSON은 YAML의 부분집합입니다——유효한 JSON은 모두 유효한 YAML이기도 합니다. YAML은 추가로 주석, 여러 줄 문자열, 앵커, 별칭을 지원합니다.
-
데이터가 서버로 전송되나요?
아니요. 모든 변환은 js-yaml 라이브러리를 사용하여 브라우저 내에서 완전히 처리됩니다. 데이터는 사용자의 기기 밖으로 나가지 않습니다.
-
입력이 유효하지 않으면 어떻게 되나요?
버튼 아래에 오류 메시지가 표시되어 파싱이 실패한 위치를 정확히 설명해 줍니다. 문제를 빠르게 찾아 수정할 수 있습니다.
YAML과 JSON의 관계
JSON은 YAML의 **부분집합(subset)**입니다. 유효한 JSON은 모두 유효한 YAML이기도 합니다. 즉 YAML 파서는 JSON 문서를 읽을 수 있지만, JSON 파서는 YAML 문서를 읽을 수 없습니다.
YAML 1.2 표준은 JSON과의 완전한 호환성을 목표로 설계되었습니다. 반면 YAML 1.1은 일부 JSON 값을 다르게 해석할 수 있으므로(예: 숫자 형식의 차이) 변환 시 파서 버전에 주의가 필요합니다.
언제 YAML을 사용하고 언제 JSON을 사용할까
YAML이 적합한 경우
- 설정 파일(Configuration):
docker-compose.yml,.github/workflows/*.yml,kubernetes/*.yaml등 사람이 직접 편집하는 파일 - 주석이 필요한 경우: 설정값에 설명을 추가해야 할 때
- 중첩이 깊은 구조: 들여쓰기 방식이 괄호 방식보다 읽기 편한 경우
- 여러 줄 문자열: 긴 텍스트나 코드 블록을 포함할 때
JSON이 적합한 경우
- REST API 응답: 사실상 업계 표준으로 모든 클라이언트가 JSON을 파싱할 수 있습니다.
- 데이터베이스 저장: PostgreSQL, MongoDB 등에서 JSON을 네이티브 타입으로 지원합니다.
- 성능이 중요한 파싱: JSON 파서가 YAML 파서보다 훨씬 빠릅니다.
- JavaScript 환경:
JSON.parse()와JSON.stringify()가 내장되어 있어 별도 라이브러리가 필요 없습니다.
변환 시 주의사항
YAML → JSON 변환
YAML에만 있는 기능들은 JSON으로 변환할 수 없거나 손실됩니다.
- 주석 제거:
# 이것은 주석입니다는 JSON으로 변환 시 완전히 사라집니다. - 앵커와 별칭:
&anchor와*alias는 JSON에 해당하는 개념이 없어 실제 값으로 인라인 확장됩니다. - 불리언 자동 변환: YAML의
yes/no/on/off는 JSON에서true/false로 변환됩니다.
JSON → YAML 변환
JSON은 대부분 YAML로 무손실 변환됩니다. 단, JSON의 숫자 형식(매우 크거나 정밀한 부동소수점)이 YAML에서 다르게 표현될 수 있습니다.
특수 문자 처리
YAML에서 콜론(:), 해시(#), 대괄호([], {}) 등 특수문자를 포함하는 문자열 값은 따옴표로 감싸야 합니다. JSON에서 가져온 문자열에 이런 특수문자가 있다면 YAML로 변환할 때 자동으로 따옴표 처리가 이루어집니다.
실전 활용 사례
Kubernetes 매니페스트나 Helm 차트를 작성할 때 기존 JSON 형식의 설정을 YAML로 변환하면 훨씬 읽기 쉬운 형태로 관리할 수 있습니다. 반대로 YAML로 작성된 설정을 API 요청 본문으로 사용해야 할 때는 JSON으로 변환이 필요합니다.