YAML 포맷터 및 검증기
이 도구가 하는 일
YAML에는 중괄호가 없습니다. 구조를 담는 것은 들여쓰기입니다. 덕분에 읽기 좋지만 그만큼 쉽게 깨집니다 — 공백 하나에 키가 엉뚱한 부모 밑으로 들어갑니다. 이 도구는 문서를 일정한 들여쓰기 폭으로 정리하고, 어디가 깨졌는지 알려주며, 실제로 어떻게 읽히는지 보여줍니다.
사용 방법
- 1 YAML을 상자에 붙여넣고 들여쓰기 폭을 고르세요. 보통 공백 두 칸을 씁니다.
- 2 «정렬»을 누르면 들여쓰기를 정리하고, «검증»을 누르면 한 글자도 바꾸지 않고 확인합니다.
- 3 어떤 값이 의도대로 읽히는지 확신이 없나요? «JSON으로»를 눌러 확인하세요.
탭은 들여쓰기가 아닙니다
YAML 명세는 들여쓰기에 탭 문자를 금지하며, 대부분의 파서는 파일 자체를 거부합니다. 그들이 내는 오류는 도움이 되는 경우가 드문데, 지목하는 줄이 진짜 문제 다음 줄인 경우가 많기 때문입니다. 이 도구는 탭이 있는 줄을 직접 알려줍니다.
주석은 사라지지 않습니다
많은 포맷터는 문서를 트리로 파싱한 뒤 다시 출력합니다. 깔끔하지만 작성한 주석이 전부 사라져 docker-compose나 CI 파이프라인에는 쓸 수 없습니다. 이 도구는 앞쪽 공백만 다시 씁니다. 주석, 키 순서, 따옴표 방식이 그대로 남습니다.
왜 NO가 false가 되었나
YAML 1.1에서는 따옴표 없는 yes, no, on, off가 불리언이었습니다. 노르웨이 코드 NO가 들어간 국가 목록이 false로 읽힌 이유가 이것이고, 이름이 붙을 만큼 유명한 버그입니다. YAML 1.2는 이 규칙을 없앴고 이 도구도 1.2를 따릅니다. 키워드는 true, false, null뿐입니다. 불리언이 필요하면 true나 false라고 쓰고, 문자열이 필요하면 그대로 두면 됩니다.
앵커, 별칭, 블록 스칼라
앵커(&이름)는 노드를 표시해 별칭(*이름)이 나중에 재사용하게 합니다 — 반복되는 서비스 정의에 유용합니다. 블록 스칼라(| 와 >)는 여러 줄 텍스트를 담습니다. 세로 막대는 줄바꿈을 그대로 두고, 꺾쇠는 줄바꿈을 공백으로 접습니다. 셋 다 여기서 해석되며, 블록 스칼라 안의 들여쓰기는 서식이 아니라 데이터로 취급됩니다.