YAML 포맷터
구문 강조와 오류 감지 기능으로 YAML 문서를 포맷하고, 검증하고, 변환합니다
YAML 입력
서식 지정된 출력
인스펙터
고급 옵션
다른 YAML과 비교
이 문서를 Data Diff로 보내고 두 번째 버전을 붙여넣어 변경 사항을 확인하세요.
정확한 오류 위치까지 알려주는 검증
js-yaml 1.2 파서를 사용하여 키 입력마다 검증이 실행됩니다. 유효한 문서는 문서, 매핑, 시퀀스, 키, 깊이 수를 실시간으로 표시합니다. 잘못된 문서는 단순한 "syntax error"가 아니라 정확한 행과 열, 추정 원인, 오류 위치 하이라이트를 알려줍니다.
이 도구가 정확히 짚어주는 흔한 YAML 오류
이러한 실수가 대부분의 잘못된 YAML의 원인입니다. 각 오류는 위치와 추정 원인과 함께 감지됩니다:
잘못된 들여쓰기
부모보다 적게 들여쓰인 자식 라인 또는 정렬되지 않은 형제 라인입니다. 보통 해당 라인에서 "bad indentation of a mapping entry"로 보고됩니다.
TAB 문자
YAML은 들여쓰기에 탭을 허용하지 않습니다. 파서는 "found a tab character that violates indentation"을 보고하고 문제의 라인을 강조 표시합니다.
중복 키
하나의 매핑에 같은 키가 두 번 나타나는 경우입니다. js-yaml은 두 번째 키가 나타난 라인과 함께 "duplicated mapping key"를 보고합니다.
누락된 콜론 또는 공백
값이 없는 키("key key2") 또는 키에 붙어버린 콜론("key:value"는 쌍이 아닌 일반 문자열입니다). "could not find expected ':'"로 보고됩니다.
변경 전 / 변경 후
왼쪽은 압축된 Kubernetes 매니페스트, 오른쪽은 2칸 들여쓰기로 포맷팅된 동일한 문서입니다. 구조, 트리, 경로는 파싱된 문서를 기준으로 갱신됩니다.
{apiVersion: apps/v1, kind: Deployment, metadata: {name: web-app}, spec: {replicas: 3, template: {metadata: {labels: {app: web}}}}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
template:
metadata:
labels:
app: web
YAML 빠른 참조 (YAML 1.2)
- 들여쓰기가 곧 구조입니다: 공백만 사용 — 들여쓰기에 TAB 문자는 절대 허용되지 않습니다.
- 콜론이 키 구분자가 되려면 뒤에 공백이 필요합니다: "key: value"여야 하며 "key:value"는 안 됩니다.
- 스칼라는 core 스키마에 따라 타입으로 해석됩니다: true/false (불리언), 정수, 부동 소수점, null (~ / null / 빈 값). 참고로 "yes"/"no"는 1.2에서 일반 문자열입니다.
- 한 파일의 여러 문서는 "---" 라인으로 구분하며, "..."는 문서의 끝을 표시합니다.
- 앵커(&base)와 별칭(*base)은 파일을 DRY하게 유지하고, 머지 키("<<: *base")는 매핑을 상속합니다.
이 데이터로 이어지는 다음 단계
포맷팅은 첫 단계일 뿐입니다. 브라우저를 벗어나지 않고 워크플로를 계속하세요:
자주 묻는 질문
Yaml Formatter 서식 지정에 대한 일반적인 질문에 답변합니다
포매터는 YAML 1.2 명세를 따르며, Kubernetes, Docker Compose, GitHub Actions 등 클라우드 네이티브 플랫폼과 같은 최신 도구와의 호환성을 보장합니다.
네, 양방향 변환 기능을 통해 데이터 유형, 중첩 구조, 해당되는 경우 주석을 보존하면서 YAML을 JSON으로, JSON을 YAML로 변환할 수 있습니다.
물론입니다. 이 포매터는 Kubernetes 매니페스트, Docker Compose 파일, CI/CD 파이프라인 등 멀티 도큐먼트 YAML 파일을 적절한 섹션 구분과 함께 처리하도록 설계되었습니다.
검증기는 들여쓰기 일관성, 콜론과 대시의 올바른 사용, 따옴표로 묶인 문자열의 균형, 앵커 및 별칭 참조를 검사하고, 빠른 디버깅을 위해 줄 단위 오류 메시지를 제공합니다.
네, 포매터는 YAML 앵커(&), 별칭(*), 병합 키(<<)를 올바르게 처리하여 주변 구조를 포맷하는 동안에도 이러한 DRY 기능을 그대로 보존합니다.
yaml.org의 현재 사양인 YAML 1.2입니다. Kubernetes, docker-compose, GitHub Actions 문서가 대상으로 삼는 버전이기도 합니다. YAML 1.2는 JSON을 유효한 하위 집합으로 만들고 불리언 파싱을 강화했습니다. 포매터는 1.1 파서(여전히 Python PyYAML에서 흔함)가 "no"나 "0777" 같은 값을 잘못 해석할 수 있는 부분에서는 따옴표를 명시적으로 유지합니다.
YAML 앵커, 별칭, 블록 스칼라에 속한 주석은 그대로 유지되지만, 다시 들여쓰기되는 키에 붙어 있는 주석은 해당 들여쓰기 수준과 함께 이동합니다. 포매터는 주석을 절대 삭제하지 않으며, 주석이 설명하는 노드에 계속 연결되도록 최소한으로만 재배치합니다.
해당 부분을 표시해 줍니다: 포맷하는 동안 NO, no, ON, on, yes, n 같은 맨 값에는 자동으로 따옴표가 붙어 YAML 1.1 파서가 이를 불리언으로 강제 변환할 수 없습니다. 국가 코드 목록 [NO, SE, DK]은 세 개의 문자열 그대로 유지됩니다. YAML 1.2는 true/false만 불리언으로 취급하지만, 두 버전 모두에서 안전한 출력은 따옴표 처리가 유일합니다.
공식 참고 자료
이 도구가 다루는 형식을 정의하는 표준과 공식 문서입니다.