YAML → JSON 변환
YAML 데이터를 JSON으로 변환합니다. Kubernetes 매니페스트・docker-compose.yml・CI 설정 파일 등 YAML로 작성된 구조를 브라우저에서 즉시 jq 같은 JSON 전용 도구가 처리할 수 있는 형태로 변환합니다.
YAML→JSON 변환이란
YAML→JSON 변환은 Kubernetes 매니페스트・docker-compose.yml・GitHub Actions 워크플로 정의처럼 사람이 읽고 편집하기 쉬운 YAML 형식으로 작성된 설정을, 프로그램이 기계적으로 다루기 쉬운 JSON 형식으로 브라우저 안에서 즉시 바꿔주는 도구입니다. 매핑(`key: value`), 블록 시퀀스(`- item`), 플로우 시퀀스(`[a, b, c]`), 플로우 매핑(`{a: 1, b: 2}`), 문자열・정수・소수・불리언・null 등 기본 스칼라, `#` 주석을 지원합니다. 실무에서 흔히 쓰이는 표기법이라면 붙여넣기만 해도 곧바로 사용할 수 있는 JSON을 얻을 수 있습니다.
다만 이 도구는 YAML 1.2 사양 전체를 구현하지는 않습니다. 값을 재사용하는 앵커(`&`)・별칭(`*`), 두 번째 이후의 `---`로 시작하는 다중 문서 스트림, 여러 줄 문자열을 위한 `|`・`>` 블록 스칼라, `- - item`과 같은 한 줄 중첩 시퀀스는 의도적으로 지원 범위에서 제외했습니다. 이러한 고급 기능에 의존하는 입력은 오류로 처리되므로, 붙여넣기 전에 더 단순한 형태로 다시 작성해 주세요. 모든 처리는 브라우저 안에서만 이루어지며 붙여넣은 내용이 외부 서버로 전송되는 일은 없으므로, 자격 증명이나 내부 인프라 정보가 담긴 YAML도 안심하고 다룰 수 있습니다.
YAML→JSON 변환 사용법
- YAML 붙여넣기 왼쪽 입력창에 변환하고 싶은 YAML을 붙여넣습니다. 준비된 데이터가 없다면 "샘플 불러오기" 버튼으로 예시를 먼저 시험해 볼 수 있습니다.
- 변환 결과 확인하기 입력하는 즉시 오른쪽에 JSON이 표시됩니다. 구문에 문제가 있으면 그 자리에 원인을 설명하는 오류 메시지가 나타납니다.
- 정렬된 형태로 표시 켜고 끄기 "정렬된 형태로 표시"를 켜면 들여쓰기가 있는 읽기 쉬운 형태로, 끄면 줄바꿈 없는 한 줄 JSON으로 바뀝니다. 붙여넣을 곳에 맞게 전환해 주세요.
- 결과 복사 또는 다운로드하기 복사 버튼으로 클립보드에 바로 담거나, 다운로드 버튼으로 독립된 .json 파일로 저장해 나중에 다시 사용할 수 있습니다.
더 잘 활용하기 위한 팁
- Kubernetes 매니페스트나 docker-compose.yml을 그대로 붙여넣으면 구조를 JSON으로 시각화할 수 있어, jq처럼 JSON만 이해하는 명령줄 도구로 조회할 수 있습니다.
- 우편번호나 전화번호처럼 앞자리가 0으로 시작하는 값을 따옴표 없이 입력하면 숫자로 해석되어 앞의 0이 사라지므로, 문자열로 유지하고 싶은 값은 반드시 따옴표로 감싸 주세요.
- 앵커(`&`)・별칭(`*`)이나 `|`・`>` 블록 스칼라를 사용한 복잡한 YAML은 지원하지 않습니다. 붙여넣기 전에 더 단순한 형식으로 다시 작성해 주세요.
- "정렬된 형태로 표시" 체크를 해제하면 줄바꿈 없는 한 줄짜리 JSON으로 출력됩니다. API 요청 본문에 붙여넣을 때처럼 줄바꿈을 넣고 싶지 않은 경우에 유용합니다.
YAML→JSON 변환 활용 사례
jq로 Kubernetes 매니페스트 조회하기
매니페스트는 수백 줄에 이르는 경우도 흔합니다. JSON으로 변환해 jq에 넘기면 `.spec.containers[].image`처럼 경로를 지정해 필요한 값만 즉시 꺼낼 수 있습니다.
스크립트에 docker-compose.yml 전달하기
작성 중인 스크립트나 자동화 도구에 YAML 파서가 없더라도, 먼저 JSON으로 변환해두면 표준 JSON 파서만으로 설정 내용을 읽어들일 수 있습니다.
CI 설정 파일의 구조 시각화하기
GitHub Actions나 GitLab CI의 워크플로 파일을 붙여넣어 JSON 구조로 확인하면, 들여쓰기만으로는 놓치기 쉬운 중첩 관계를 명확한 키 경로로 파악할 수 있습니다.
YAML만 받는 도구・API 사용을 준비하기
데이터 원본이 JSON이더라도, 기존 YAML 파일을 먼저 변환해 구조를 정확히 확인해두면 이후 코드를 작성하기가 수월해집니다.
다른 JSON 도구로 이어서 작업하기
변환된 JSON을 JSON→TypeScript 타입 정의나 JSON 포맷터에 그대로 붙여넣어 계속 가공할 수 있습니다.
YAML 관련 용어집
- YAML
- "YAML Ain't Markup Language"의 재귀적 약어입니다. 괄호 대신 들여쓰기로 계층 구조를 표현하고 주석과 대부분 생략 가능한 따옴표를 허용하기 때문에, 사람이 직접 편집하는 설정 파일 형식으로 널리 쓰입니다.
- 매핑(Mapping)
- `key: value` 형태로 키와 값을 짝지어 나열하는 YAML 구조입니다. JSON의 객체에 해당하며, 같은 들여쓰기 폭을 가진 줄은 같은 계층의 키로 취급됩니다.
- 블록 시퀀스
- 하이픈과 공백으로 시작하는 줄을 나열한 YAML의 배열 표기법으로, `- item`이 그 예입니다. JSON의 배열에 해당하며, 같은 들여쓰기의 `-` 줄이 이어지는 동안 하나의 배열로 읽어들입니다.
- 플로우 형식
- 들여쓰기 기반 블록 형식을 쓰지 않고 시퀀스나 매핑을 한 줄로 적는 표기법입니다. `[a, b, c]`나 `{a: 1, b: 2}`처럼 JSON의 배열・객체 표기에 가까운 모습입니다.
- 앵커와 별칭
- `&name`으로 값에 이름을 붙이고 `*name`으로 다른 곳에서 그 값을 참조하는 YAML 기능으로, 같은 설정을 반복하지 않고 재사용할 수 있습니다. 이 도구는 이 기능을 지원하지 않습니다.
- 블록 스칼라
- 줄바꿈을 그대로 유지하는 `|`나 줄바꿈을 공백으로 접는 `>`로 시작하는 여러 줄 문자열 표기법입니다. 셸 스크립트나 긴 설명을 담을 때 자주 쓰이지만 이 도구는 지원하지 않습니다.
- 문서 스트림
- 하나의 YAML 파일 안에 `---` 구분자로 여러 문서를 담는 방식입니다. Kubernetes에서 여러 리소스를 한 파일에 모을 때 자주 쓰이지만, 이 도구는 한 번에 하나의 문서만 변환합니다.
자주 묻는 질문
여담 ― 설정 파일은 왜 YAML로 쓰고, 도구는 왜 JSON을 요구할까
YAML은 주석을 쓸 수 있고 따옴표도 대부분 생략할 수 있어 가독성이 높기 때문에, Kubernetes・docker-compose・GitHub Actions 워크플로・Ansible 플레이북 등 사람이 직접 편집하는 설정 파일 형식으로 널리 쓰입니다. 반면 JSON은 사양이 작고 모호함이 적어 프로그램이 기계적으로 처리하기 쉬워, API 데이터 교환과 jq 같은 명령줄 도구의 표준 입력 형식으로 자리 잡았습니다.
YAML→JSON 변환은 "사람은 YAML로 쓰고, 도구는 JSON을 원한다"는 이 간극을 메워줍니다. 특히 Kubernetes 매니페스트는 수백 줄에 이르는 경우도 있어, `grep`만으로 원하는 값을 찾기에는 금방 한계에 부딪힙니다. 먼저 JSON으로 변환한 뒤 jq로 조회하면 `.spec.containers[].image`처럼 경로를 지정해 필요한 값만 순식간에 꺼낼 수 있습니다.
다만 YAML 사양(YAML 1.2) 자체는 매우 방대해서, 앵커・별칭을 통한 값 재사용, 다중 문서 스트림, 여러 줄 문자열을 표현하는 블록 스칼라 등 고급 기능을 다수 포함합니다. 이 도구는 그 전체 사양을 다루지 않고, 실무에서 자주 등장하는 매핑・시퀀스・기본 스칼라라는 "공통 부분집합"에 집중함으로써 외부 의존성 없이 단순한 구현을 유지하고 있습니다.