YAML 확장 필드

YAML(또는 'YAML Ain't Markup Language')은 사람이 읽기 쉬운 데이터 직렬화 형식으로, 구성 파일 작성 등에 널리 사용됩니다. YAML은 반복적인 구성을 줄이고 파일을 모듈화하기 위해 '확장 필드'와 '앵커 및 별칭' 기능을 제공합니다.

확장 필드

확장 필드는 x-로 시작하는 최상위 수준의 YAML 노드로, 주로 공통 구성을 정의하고 이를 재사용하는 데 사용됩니다. 이러한 필드는 YAML 파서에 의해 무시되므로, 실제 데이터에는 포함되지 않습니다.

예시:

x-common-env: &common-env
  environment:
    - CONFIG_KEY
    - EXAMPLE_KEY

services:
  service1:
    <<: *common-env
    image: my-image:latest
  service2:
    <<: *common-env
    image: another-image:latest

위 예시에서 x-common-env 확장 필드는 공통 환경 변수를 정의하고, service1service2에서 이를 참조하여 중복을 줄였습니다.

앵커 및 별칭

YAML에서는 &를 사용하여 앵커를 정의하고, *를 사용하여 해당 앵커를 참조하는 별칭을 생성할 수 있습니다. 이를 통해 중복된 구성을 피하고 유지보수를 용이하게 할 수 있습니다.

예시:

default-settings: &defaults
  timeout: 30
  retries: 3

service1:
  <<: *defaults
  timeout: 60  # 이 서비스는 기본 설정을 재정의합니다.

service2:
  <<: *defaults

여기서 &defaults로 앵커를 정의하고, <<: *defaults를 통해 이를 참조하여 service1service2에 기본 설정을 적용했습니다. service1timeout 값을 재정의하여 특정 설정을 적용했습니다.

활용 사례

이러한 기능을 활용하면 YAML 파일의 가독성과 유지보수성을 크게 향상시킬 수 있습니다.