YAML→JSON 변환기이란?
YAML to JSON Converter는 YAML 문서를 동등한 JSON 구조로 즉시 변환합니다. 앵커, 별칭, 여러 줄 문자열, 중첩 맵, 시퀀스를 처리하므로 Kubernetes 설정, CI/CD 파이프라인 또는 기타 YAML 데이터를 API와 코드용 JSON으로 변환할 수 있습니다.
js-yaml 위에 만들어져 있어서, 간단한 변환기들이 놓치는 YAML 1.2 기능, 즉 앵커와 별칭(&ref / *ref), 다중 행 블록 문자열(|, >), 명시적 타입 태그, yes/no/on/off 같은 불리언 변형을 제대로 다룹니다. 역방향 모드도 있어 JSON에서 YAML로 돌아갈 때 구조를 유지하면서, 읽기 좋을 때는 스칼라 배열을 한 줄로 접어 줍니다.
사용 방법
- 1단계 — YAML 내용을 붙여넣거나 .yml/.yaml 파일을 업로드합니다. 구문 오류는 빠른 수정을 위해 줄 번호와 함께 강조됩니다.
- 2단계 — 설정 가능한 들여쓰기(2칸, 4칸, 탭 또는 축약)로 변환된 JSON 출력을 확인합니다.
- 3단계 — JSON을 복사하거나 .json 파일로 다운로드합니다. 역변환 모드를 사용하여 JSON을 다시 YAML로 변환할 수도 있습니다.
사용 시기
- 쿠버네티스 매니페스트나 Helm values를 자체 검증 스크립트에 넣으려 JSON으로 바꿀 때.
- JSON 파이프라인만 받는 도구에 GitHub Actions나 GitLab CI 설정을 전달할 때.
- Compose 스키마 오류를 디버깅하면서 docker-compose.yml을 YAML과 JSON 사이로 오갈 때.
결과
배포 API를 위해 docker-compose.yml을 JSON으로 변환해야 합니다. 서비스, 볼륨, 네트워크 정의가 포함된 YAML을 붙여넣으면 모든 중첩 구조와 배열이 유지된 채 API가 수락하는 유효한 JSON을 얻을 수 있습니다.
자주 묻는 질문
- YAML의 앵커와 별칭(& 와 *)을 처리하나요?
- 처리합니다. js-yaml이 파싱 단계에서 앵커를 해석하므로, 출력 JSON에는 참조 문법이 아니라 확장된 값이 들어갑니다. YAML에서 두 키가 한 앵커를 공유했다면, JSON에서는 각자 데이터를 완전히 복사해 가지게 됩니다.
- YAML 불리언(yes / no)이 어떤 도구에서는 문자열로 나오는 이유는?
- YAML 1.1은 yes/no/on/off를 불리언으로 봤지만, YAML 1.2는 true/false만 인정합니다. 이 도구는 1.2를 따르므로, 따로 true/false로 적지 않으면 yes/no는 문자열로 남습니다. 그래서 노르웨이 버그 같은 함정이 여기서는 대개 사라집니다.
- JSON을 다시 YAML로 바꿀 수 있나요?
- 있습니다. 역방향 토글을 켜면 입력이 JSON, 출력이 YAML이 됩니다. 덤퍼는 중첩된 객체와 배열을 보존하고, 줄 바꿈이 들어간 긴 키는 블록 스칼라(|)로 내보내 가독성을 유지합니다.
- 날짜와 타임스탬프는 어떻게 처리되나요?
- YAML의 날짜·타임스탬프 리터럴은 JSON에서는 ISO 8601 문자열이 됩니다(JSON에는 기본 날짜 타입이 없기 때문). 역방향 모드로 왕복해도 문자열로 유지되며, YAML의 암묵적 날짜 타입으로 되돌리지 않는 편이 안전한 기본값입니다.
- 들여쓰기 옵션은 어떤 기준으로 고르나요?
- 2칸은 자바스크립트와 대부분의 API에서 사실상의 표준입니다. 4칸은 Python PEP 8과 맞아 결과를 .py 파일에 끼워 넣을 때 좋고요. 컴팩트(0)는 한 줄 출력이라 HTTP 요청 본문이나 curl 명령에 붙여 넣기 좋습니다. Tab은 실제 탭 문자로 JSON을 들여쓰기해 Go나 Makefile에 편리합니다. YAML은 탭을 쓸 수 없어 역방향 모드에서는 2칸으로 대체됩니다.