JSON → YAML 변환기이란?
JSON to YAML Converter는 JSON 데이터를 더 사람이 읽기 쉬운 YAML 형식으로 변환합니다. YAML은 Docker Compose, Kubernetes, CI/CD 파이프라인 등 설정 파일에 주로 사용됩니다. 중첩 객체, 배열, 여러 줄 문자열을 올바른 YAML 구문으로 처리합니다.
변환기는 내부적으로 js-yaml을 사용해 다중 행 문자열, 앵커, 객체 배열을 구조 손실 없이 처리합니다. 들여쓰기는 2 또는 4 칸(대부분의 설정 파일은 2칸). flow 스타일은 짧은 배열을 한 줄로 두고([a, b, c]), block 스타일은 한 항목씩 줄을 바꿉니다. 버전 관리에서 일관된 결과를 위해 '키 정렬' 옵션도 있습니다.
사용 방법
- 1단계 — JSON 데이터를 붙여 넣거나 .json 파일을 업로드합니다. 유효하지 않은 JSON은 변환 전에 감지되어 강조 표시됩니다.
- 2단계 — 들여쓰기 너비(2칸 또는 4칸)를 설정하고, 간결한 배열이나 인라인 객체를 위한 플로우 스타일 옵션을 선택합니다.
- 3단계 — 구문 강조와 함께 YAML 출력을 확인한 후, 설정 파일에서 사용할 수 있도록 복사하거나 .yaml 파일로 다운로드합니다.
사용 시기
- package.json이나 tsconfig.json 일부를 CI 도구가 기대하는 YAML 형식으로 옮길 때.
- API 응답이나 스캐폴드된 JSON으로 쿠버네티스 매니페스트나 Docker Compose 파일을 작성할 때.
- 오래된 도구의 JSON 설정을 업그레이드된 도구가 쓰는 더 읽기 좋은 YAML로 옮길 때.
결과
CI 파이프라인용 YAML 설정으로 package.json을 변환합니다. JSON을 붙여 넣고 2칸 들여쓰기를 설정하면 중괄호와 따옴표 없이 중첩 의존성이 명확하게 보이는 깔끔한 YAML 출력을 얻을 수 있습니다.
자주 묻는 질문
- YAML은 결국 문법만 다른 JSON인가요?
- 대체로 그렇습니다. YAML 1.2는 JSON의 상위 집합이라 유효한 JSON은 모두 유효한 YAML입니다. YAML은 주석, 다중 행 문자열, 앵커/별칭, 들여쓰기 기반 레이아웃을 추가합니다. 순수 데이터에 한해 두 포맷은 상호 호환됩니다.
- 2칸 들여쓰기와 4칸 중 무엇이 좋나요?
- 쿠버네티스, Docker Compose, GitHub Actions, 대부분의 CI 도구는 2칸이 관례입니다. 4칸은 매우 깊게 중첩된 파일에서 가독성이 좋지만 흔치 않습니다. 팀이 이미 쓰는 파일에 맞춰야 diff가 깔끔합니다.
- flow 스타일은 언제 쓰는 게 좋나요?
- flow 스타일({a: 1, b: 2})은 포트 목록처럼 짧은 원시 값 배열에 알맞습니다. block 스타일로 한 줄에 하나씩 두면 소음처럼 보이기 때문입니다. 사람이 읽거나 수정해야 하는 부분은 block 스타일을 유지하세요.
- 불리언이나 숫자처럼 보이는 문자열은 어떻게 처리되나요?
- YAML의 타입 변환은 공격적이라서 'yes', 'no', 'on', '1.0', 'null' 같은 값이 재해석될 수 있습니다. 변환기는 그런 문자열을 따옴표로 감싸 문자열로 유지하여, 국가 코드 NO가 false가 되는 유명한 '노르웨이' 버그를 피합니다.
- JSON과 YAML 사이를 왕복해도 정보 손실이 없나요?
- 순수 데이터는 구조가 그대로 유지됩니다. 잃는 것은 주석(JSON에는 없음)과 때때로 키 순서입니다. JSON 파서가 순서를 바꿀 수 있기 때문입니다. 순서를 고정하려면 양쪽 모두에서 '키 정렬' 옵션을 켜세요.