지원하는 YAML 문법
이 변환기는 직접 구현한 간단한 파서를 사용합니다. 들여쓰기로 중첩된 맵과 - 로 시작하는 리스트, 리스트 항목 안의 맵(- name: x 뒤에 같은 들여쓰기로 이어지는 키), 인라인 배열 [a, b]와 맵 {a: 1}, # 주석, 멀티라인 문자열 |(줄바꿈 유지)와 >(접기), 끝 처리 -/+, 큰따옴표·작은따옴표 문자열, 여러 줄에 걸친 일반 문자열까지 처리합니다. 문서 구분선 ---은 무시합니다.
지원하지 않는 것
앵커(&base)와 별칭(*base), 병합 키(<<:), 타입 태그(!!str, !Ref), 복합 키(? ), 한 파일 안의 여러 문서는 지원하지 않습니다. docker-compose의 x-common: &common 같은 재사용 패턴이 있으면 별칭이 그냥 문자열 "*common"으로 남으니 주의하세요. 탭 들여쓰기는 YAML 규격상 금지되어 오류로 처리합니다.
타입 추론 규칙
따옴표 없는 값은 YAML 1.2 핵심 스키마에 맞춰 추론합니다. true/false는 불리언, null·~·빈 값은 null, 정수·소수·지수·16진수는 숫자, 나머지는 문자열입니다. YAML 1.1에서 불리언으로 읽히던 yes/no/on/off는 여기서는 문자열입니다(일부 오래된 파서와 다를 수 있음). 우편번호 01234처럼 앞에 0이 붙은 숫자는 8진수로 오해받지 않도록 문자열로 둡니다. 버전 번호 1.10은 숫자 1.1이 되므로 문자열로 유지하려면 따옴표를 붙이세요.
JSON → YAML
JSON은 YAML의 부분집합이므로 모든 JSON은 YAML로 바뀝니다. 숫자·불리언으로 오해될 수 있는 문자열("true", "123", "1.0")과 특수문자로 시작하는 문자열은 자동으로 따옴표를 붙여 의미를 보존합니다. 줄바꿈이 들어 있는 문자열은 | 블록으로 씁니다. 빈 배열·빈 객체는 [], {}로 적습니다.
자주 묻는 질문
들여쓰기 오류가 나는데 눈으로는 멀쩡해요.
탭이 섞여 있거나, 같은 계층의 키들이 다른 칸 수로 들여쓰기된 경우가 대부분입니다. 오류 줄 번호 주변을 코드 편집기에서 공백 표시 기능으로 확인해 보세요.
값이 문자열이어야 하는데 숫자로 바뀌었어요.
YAML은 따옴표 없는 123을 숫자로 읽습니다. 문자열로 유지하려면 "123"처럼 따옴표를 붙이세요. JSON→YAML 방향에서는 자동으로 따옴표가 붙습니다.
키 순서가 유지되나요?
예. 자바스크립트 객체의 삽입 순서를 따르므로 입력 순서대로 나옵니다. 단, "1", "2" 같은 정수 형태 키는 자바스크립트 규칙상 앞으로 당겨집니다.