YAML은 구성 파일을 작성할 때 자주 사용하는 데이터 직렬화 언어입니다. 이는 이해하기 쉽고 사람이 읽을 수 있으며, 여러 프로그래밍 언어와 함께 사용할 수 있어 인기 있는데요. 특히 YAML은 DevOps 도구의 스크립팅과 자동화 프로세스 정의, CI/CD 파이프라인 구성 작업에서 중요하게 쓰입니다. 이는 오늘날 DevOps에서 핵심 역할을 수행하고요. 소프트웨어 개발 라이프라이클 전반에 걸쳐 DevOps를 올바르게 구현하려면 YAML을 제대로 이해해야 하죠. 오늘은 YAML 특징과 구문, 활용 사례를 알아보고요. DevOps 핵심 워크플로인 CI/CD 파이프라인에서 YAML 의의를 살펴보겠습니다.
1. YAML 소개
1.1 탄생 배경
YAML은 사람이 읽을 수 있고 컴퓨팅 측면에서 강력한 데이터 직렬화 언어를 만드는 국제적 협업입니다. YAML을 만든 사람은 Ingy döt Net, Clark Evans, Oren Ben-Kiki인데요. YAML은 두 가지 노력이 결합한 결과물이라고 하죠. Ingy döt Net은 Inline을 위한 직렬화 형식이 필요했는데요. 이는 ‘Data::Denter 모듈’이라는 결과물로 나타났습니다. 한편, Oren Ben-Kiki, Clark Evans는 sml-dev 그룹에서 XML을 간소화하고자 협업했고요.
YAML은 2001년 5월 12일 처음 공개됐는데요. Oren과 Clark의 YAML 비전이 Ingy의 Data::Denter와 비슷했다고 합니다. 며칠 뒤, 그들은 팀을 이뤘고 YAML이 탄생했죠. YAML 이름은 "Yet Another Markup Language(또 다른 마크업 언어)"의 약어인데요. "YAML Ain't Markup Language(YAML은 마크업 언어가 아니다)"라는 의미도 있습니다. 이는 YAML이 단순 마크업 언어가 아닌 ‘데이터 중심의 언어임’을 강조하죠.
1.2 주요 특징
YAML은 가독성, 언어 지원, 재사용성, 유연성 측면에서 다음 특징이 있습니다.
- 가독성: YAML은 깔끔하고 읽기 쉬운 형식을 제공합니다. 들여쓰기를 사용해 데이터 구조를 시각적으로 나타내고요. 필요에 따라 간결하게 작성하거나 자세히 표현할 수 있습니다.
- 언어 지원 다양성: YAML은 Perl, Python, Ruby, Java, JavaScript, C# 등 여러 프로그래밍 언어와 호환됩니다. 다양한 언어로 작성한 프로그램에서 YAML 형식을 편리하게 사용할 수 있습니다.
- 재사용성: YAML은 복잡한 데이터 구조를 쉽게 재사용하도록 지원합니다. 예를 들어, 하나의 YAML 파일에 정의한 객체를 다른 부분에 참조해 사용할 수 있습니다.
- 유연성: YAML은 단순한 구성부터 복잡한 스크립트까지 다양한 수준으로 데이터를 표현합니다. 이는 여러 소프트웨어 개발 과정에서 유연하게 사용할 수 있습니다.