YAML이란?

YAML(Yet Another Markup Language)은 쉽게 읽고 쓸 수 있도록 설계된 데이터 직렬화 형식입니다. 구성 파일의 구성 관리에 일반적으로 사용되지만 목록이나 사전과 같은 구조화된 형식으로 데이터를 저장하는 데에도 사용할 수 있습니다.

YAML은 트리와 유사한 구조로 데이터를 표현한다는 아이디어에 기초하며, 트리의 각 요소가 노드로 표시됩니다. 노드는 다른 노드를 포함하거나 스칼라 값(예: 문자열 또는 숫자) 형식의 데이터를 포함할 수 있습니다.

YAML은 읽고 쓰기가 쉽고 XML 또는 JSON과 같은 다른 데이터 직렬화 형식보다 더 간결하다는 장점 때문에 자주 사용됩니다. 또한 수많은 프로그래밍 언어에서 YAML을 구문 분석하고 생성하기 위해 라이브러리를 제공하고 있어 널리 지원되는 형식입니다.

CI/CD에서 YAML은 어떻게 사용되나요?

CI/CD에서 YAML은 애플리케이션 또는 서비스에 대한 빌드, 테스트 및 배포 프로세스를 정의하는 구성 파일 형식으로 사용됩니다. 이를 통해 개발자는 애플리케이션을 빌드하고 배포하는 데 필요한 단계와 더불어 파이프라인을 실행하는 데 필요한 종속성, 환경 변수 및 기타 매개변수를 지정할 수 있습니다.

CI/CD에서 YAML은 다음과 같은 몇 가지 방식으로 사용됩니다.

  1. 파이프라인 구조 정의: YAML은 스테이지, 작업 및 단계를 포함하여 파이프라인의 구조를 정의하는 데 사용됩니다. 이를 통해 개발자는 적절한 단계와 테스트를 실행하는 파이프라인을 생성하여 애플리케이션이 올바르게 빌드, 테스트 및 배포되도록 할 수 있습니다.
  2. 빌드 및 배포 지침 지정: YAML은 파이프라인의 각 스테이지 및 작업에 대한 빌드 및 배포 지침을 지정하는 데 사용됩니다. 여기에는 코드를 컴파일링하고, 테스트를 실행하고, 애플리케이션을 특정 환경에 배포하기 위한 명령어가 포함됩니다.
  3. 환경 변수 및 종속성 구성: YAML은 파이프라인에 필요한 환경 변수와 종속성을 구성하는 데 사용됩니다. 여기에는 데이터베이스 연결 세부 정보, API 키 및 외부 라이브러리와 같은 정보가 포함됩니다.
  4. 코드 검토 및 승인 활성화: 개발자는 YAML를 이용해 코드 검토 및 승인 워크플로를 정의함으로써 코드 변경 사항이 메인 브랜치에 병합되기 전에 검토 및 승인되도록 할 수 있습니다.

Kotlin DSL은 팀이 보다 고급스럽게 프로젝트를 코드로 구성하고 CI/CD 프로젝트를 대규모로 운영할 수 있게 해주는 YAML 대체 솔루션입니다.