YAML Ain't Markup Language
재귀 약자가 농담이고; 설계 목표는 진짜야. YAML 은 사람-읽기 쉬운 데이터 직렬화 언어 의도. JSON 과 같은 일 (데이터 교환, config) 을 더 적은 구두점, 더 많은 공백으로 노림. 현재 spec: YAML 1.2.2 (2021); 많은 도구가 여전히 YAML 1.1 파서 출시.
YAML 은 JSON superset
모든 유효한 JSON 문서가 유효한 YAML 1.2. 반대는 안 됨 — YAML 이 날짜, 멀티라인 string, anchor, 주석, 더 느슨한 quoting 규칙 추가. YAML 파서가 보통 JSON 통과 라운드트립; JSON 파서는 대부분 YAML 못 읽어.
이미 YAML 쓰고 있는 곳
- Kubernetes manifest — 모든
Deployment,Service,ConfigMap가 YAML. - Docker Compose —
docker-compose.yaml가 멀티 컨테이너 앱 정의. - CI/CD — GitHub Actions, GitLab CI, CircleCI, Travis 다 YAML 사용.
- Ansible — playbook, inventory, role 다 YAML.
- 정적 사이트 front matter — Jekyll, Hugo, Astro, Next MDX (Markdown 트랙에서 다룸).
- 애플리케이션 config — Spring Boot 의
application.yaml, FastAPI/Pydantic settings, OpenAPI spec.
원칙: YAML 의 셀링 포인트는 사람-읽기 쉬움. 비용은 공백 민감도. 포맷이 신중한 편집은 보상하고 근육 기억 편집은 처벌. YAML 을 Python 처럼 다뤄 — 들여쓰기에 의미 있고, 없는 것에도 의미 있어.