해결책
XML은 데이터 교환 문제를 해결했지만, 단순한 설정을 문서 마크업처럼 느껴지게 만들었다. YAML의 창시자들은 반대 전제에서 출발했다. 데이터 파일은 데이터처럼 보여야 하며, 데이터를 감싼 태그처럼 보여서는 안 된다는 것이다.
1.0 명세는 YAML을 설정 파일, 메시징, 영속화, 디버깅을 위한 인간 친화적이고 언어 간 호환되는 유니코드 직렬화 언어로 설명했다. 핵심 기법은 시각적 구조였다. 범위는 들여쓰기로, 쌍은 콜론으로, 목록은 대시로 표현했다.
이 선택은 DevOps 시대에 완벽하게 들어맞았다. YAML.org는 이제 YAML을 Kubernetes, Docker Compose, Terraform 같은 도구에서 인프라 설정의 사실상 표준이라고 설명한다. 승리한 기능은 강력함이 아니라 검토 가능성이었다.
이룬 것
데이터가 스스로 드러나게 하라
통한 이유
들여쓰기 덕분에 닫는 태그 없이도 중첩 데이터를 훑어볼 수 있었다.
매핑, 시퀀스, 스칼라는 인기 스크립트 언어의 기본 구조와 일치했다.
일반 텍스트이므로 설정을 쉽게 비교하고, 검토하고, 문서에 붙여넣을 수 있었다.
형식은 언어 독립적으로 유지되어, 각 도구가 소유하지 않고도 채택할 수 있었다.
손으로 편집하는 형식에서 가독성은 장식이 아니다. 사람들이 풀 리퀘스트에서 검토할 수 있는 형식이 팀이 표준으로 삼는 형식이 된다.
그 후
YAML은 클라우드 네이티브 도구와 CI/CD 시스템 전반에서 기본 설정 언어가 되었다. 관대한 가독성은 함정도 가져왔지만, 채택 논리는 유지되었다. 인프라가 사람이 편집할 수 있는 텍스트로 옮겨간 것이다.
근거 확인하기
출처
- YAML Ain't Markup Language (YAML) 1.0 YAML.org · yaml.org ·
- About YAML YAML.org · yaml.org
- In The Beginning The YAML Company · yaml.com