XML은 데이터 교환 문제를 해결했지만, 단순한 설정을 문서 마크업처럼 느껴지게 만들었다. YAML의 창시자들은 반대 전제에서 출발했다. 데이터 파일은 데이터처럼 보여야 하며, 데이터를 감싼 태그처럼 보여서는 안 된다는 것이다.

1.0 명세는 YAML을 설정 파일, 메시징, 영속화, 디버깅을 위한 인간 친화적이고 언어 간 호환되는 유니코드 직렬화 언어로 설명했다. 핵심 기법은 시각적 구조였다. 범위는 들여쓰기로, 쌍은 콜론으로, 목록은 대시로 표현했다.

이 선택은 DevOps 시대에 완벽하게 들어맞았다. YAML.org는 이제 YAML을 Kubernetes, Docker Compose, Terraform 같은 도구에서 인프라 설정의 사실상 표준이라고 설명한다. 승리한 기능은 강력함이 아니라 검토 가능성이었다.

데이터가 스스로 드러나게 하라

들여쓰기 덕분에 닫는 태그 없이도 중첩 데이터를 훑어볼 수 있었다.

매핑, 시퀀스, 스칼라는 인기 스크립트 언어의 기본 구조와 일치했다.

일반 텍스트이므로 설정을 쉽게 비교하고, 검토하고, 문서에 붙여넣을 수 있었다.

형식은 언어 독립적으로 유지되어, 각 도구가 소유하지 않고도 채택할 수 있었다.

손으로 편집하는 형식에서 가독성은 장식이 아니다. 사람들이 풀 리퀘스트에서 검토할 수 있는 형식이 팀이 표준으로 삼는 형식이 된다.

YAML은 클라우드 네이티브 도구와 CI/CD 시스템 전반에서 기본 설정 언어가 되었다. 관대한 가독성은 함정도 가져왔지만, 채택 논리는 유지되었다. 인프라가 사람이 편집할 수 있는 텍스트로 옮겨간 것이다.

근거 확인하기

출처

  1. YAML Ain't Markup Language (YAML) 1.0 YAML.org · yaml.org ·
  2. About YAML YAML.org · yaml.org
  3. In The Beginning The YAML Company · yaml.com