YAML → JSON / JSON → YAML 변환 — 주석이 유지되지 않는 설정 변환기
Kubernetes, docker-compose, GitHub Actions 같은 YAML 설정을 브라우저에서 JSON으로 바꾸고 다시 YAML로 되돌릴 수 있습니다. 이는 재직렬화이며 무손실 왕복이 아닙니다. 주석, 앵커, 다중 문서 구조는 사라지고, 인용부호가 없는 값은 YAML 타입 규칙으로 해석됩니다.
이 변환기가 하는 일과 잃는 것
양방향, 방향별 버튼 하나씩
YAML → JSON과 JSON → YAML은 별개의 작업입니다. 결과는 다른 쪽 편집 영역을 덮어쓰며, 기존 텍스트와 합쳐지지 않습니다.
주석은 반드시 사라집니다
YAML 주석은 파싱할 때 버려지고, 생성되는 YAML에도 주석이 들어가지 않습니다. JSON 자체에 주석 문법이 없습니다.
앵커는 전개되고 다중 문서는 오류
&anchor / *alias는 중복된 객체로 풀립니다. 여러 개의 --- 문서가 든 파일은 합쳐지지 않고 오류가 납니다.
YAML 1.2 타입 규칙대로 해석
인용부호가 없는 1.0은 1이 되고, 2024-01-01은 ISO 시각 문자열이 되며, .inf / .nan은 null이 됩니다. 문자열로 남기려면 인용부호를 붙이세요.
브라우저에서 실행, 파일 선택과 다운로드 지원
파일은 브라우저에서 읽으며 업로드되지 않습니다. 엄격한 크기 제한은 없지만, 매우 큰 파일은 변환 중 탭을 멈추게 할 수 있습니다.
YAML ↔ JSON 변환 FAQ
양방향 변환이 되나요?
됩니다. YAML → JSON과 JSON → YAML에 각각 버튼이 있습니다. 다만 매번 다시 직렬화하므로 주석, 들여쓰기, 앵커는 유지되지 않습니다. 생성되는 YAML은 2칸 들여쓰기와 80열 접기를 사용하며, 들여쓰기나 정렬 옵션은 없습니다.
주석을 유지할 수 있나요?
없습니다. 파싱할 때 YAML 주석이 버려지고 생성되는 YAML에 주석이 추가되지 않습니다. JSON에는 주석 문법이 없습니다. 주석이 있는 원본을 기준으로 삼고 변환 결과는 파생 데이터로만 쓰세요.
앵커, 별칭, 다중 문서를 지원하나요?
앵커와 별칭은 해석되어 중복 값으로 출력됩니다. 여러 개의 --- 문서는 expected a single document in the stream 오류가 나므로 먼저 나눠야 합니다. 여러 리소스를 한 파일에 담은 Kubernetes 매니페스트가 여기에 해당합니다.
version: 1.0이 1이 되고 yes는 문자열로 남는 이유는?
인용부호가 없는 스칼라는 YAML 규칙으로 타입이 정해집니다. 1.0은 숫자라서 1로 출력됩니다. js-yaml은 YAML 1.2를 따르며 yes / no / on / off는 문자열입니다. 그래서 GitHub Actions의 on: 키는 불리언이 되지 않습니다. 문자열을 유지하려면 인용부호를 붙이세요.
날짜, 큰 정수, null은 어떻게 처리되나요?
인용부호가 없는 2024-01-01은 시각으로 해석되어 JSON에서 2024-01-01T00:00:00.000Z가 됩니다. 2^53을 넘는 정수는 정밀도를 잃고, .inf / .nan은 null이 됩니다. ~, null, 빈 값은 모두 null입니다.
Kubernetes, docker-compose, GitHub Actions 파일을 처리할 수 있나요?
표준 단일 문서 YAML이라면 이 형식들도 처리됩니다. 다중 문서 Kubernetes 출력은 먼저 분리해야 하고, 주석은 사라지므로 변환 결과를 그대로 커밋용 설정 파일로 쓰지 마세요.
크기 제한과 개인정보 보호는 어떻게 되나요?
모든 처리는 브라우저에서 이루어지며 파일은 업로드되지 않습니다. 설정된 상한은 없지만 변환이 메인 스레드에서 동기로 실행되므로 수 MB 파일은 페이지를 멈추게 할 수 있습니다.

