YAML 문법

김지섭·2024년 4월 5일
0

YAML은 "YAML Ain't Markup Language" (원래는 "Yet Another Markup Language")의 약자로, 데이터 직렬화에 사용되는 사람이 읽기 쉬운 형식입니다. 설정 파일, 데이터 교환 등 다양한 용도로 사용되며, JSON과 유사하지만 보다 읽기 쉬운 형태를 가집니다. 워낙 쉬워서 따로 공부하지 않고 사용하는 경우도 있지만, 고급 기능도 있으니 잘 활용하면 더 가독성이 좋은 yaml을 작성할 수 있습니다.

기본 구조

  • 공백으로 들여쓰기: YAML은 들여쓰기로 구조를 나타냅니다. 탭 대신 공백을 사용해야 하며, 일반적으로 한 수준 들여쓰기에 2개 또는 4개의 공백을 사용합니다.
  • 키-값 쌍 (Key-Value Pairs): 각 키와 값은 콜론(:) 다음에 공백 하나로 구분됩니다.
    key: value
  • 리스트 (Lists): 하이픈(-)과 공백 하나를 사용해 항목을 나열합니다. 리스트는 배열 또는 시퀀스로 해석됩니다.
    - item1
    - item2
    - item3
  • 맵 (Maps): 중괄호({})를 사용하여 인라인 맵을 나타낼 수 있습니다.
    key: {subkey: value, subkey2: value2}
  • 복합 구조: 맵과 리스트를 조합하여 복잡한 데이터 구조를 나타낼 수 있습니다.
    key:
      - list_item1: value1
      - list_item2: value2

고급 기능

  • 앵커 (&)와 별칭 (*): 중복을 피하기 위해 특정 요소를 앵커로 정의하고, 별칭을 사용하여 재참조할 수 있습니다.

    defaults: &defaults
      adapter: postgres
      host: localhost
    
    development:
      <<: *defaults
      database: dev_db
  • 리터럴 블록 (|): 개행 문자를 포함하는 문자열을 그대로 보존합니다.

    literal_block: |
      This is a literal block,
      preserving new lines.
  • 접기된 블록 (>): 개행 문자를 공백 하나로 변환하지만, 더블 개행은 새로운 줄로 해석합니다.

    folded_style: >
      This is a folded block
      that converts newlines into spaces.
  • 주석 (#): # 기호 뒤의 텍스트는 주석으로 처리됩니다.

    # This is a comment
    key: value # Inline comment

YAML 문법은 이러한 기본적인 규칙들로 구성되어 있으며, 사용하기 쉽고 읽기에 편한 구조를 가지고 있습니다. 데이터를 구조화하는 데 필요한 다양한 상황에서 유연하게 사용될 수 있습니다.

0개의 댓글