본문 바로가기
IT/읽어보기

YAML이란?

by ccclog 2024. 6. 27.
반응형

YAML(YAML Ain't Markup Language)은 사람이 읽기 쉽고 작성하기 쉬운 데이터 직렬화 형식입니다. 주로 설정 파일이나 데이터 교환 포맷으로 많이 사용되며, 특히 DevOps와 클라우드 환경에서 널리 쓰입니다. YAML은 들여쓰기를 사용하여 데이터 계층 구조를 표현하며, JSON과 비교하여 더 간결하고 가독성이 높은 장점을 가지고 있습니다.

YAML의 주요 특징

  1. 가독성:
    • YAML은 사람이 읽기 쉽도록 설계되어 있으며, 들여쓰기를 통해 데이터 구조를 표현합니다.
  2. 간결함:
    • 중괄호나 대괄호 대신 들여쓰기를 사용하여 데이터 계층 구조를 나타내므로, 더 간결하고 명확합니다.
  3. 유연성:
    • 배열, 리스트, 해시맵, 스칼라 값 등 다양한 데이터 타입을 지원합니다.
  4. 호환성:
    • YAML은 JSON과 호환됩니다. JSON은 YAML의 부분집합이므로, JSON 파일을 YAML로 변환하는 것은 매우 쉽습니다.

YAML 문법

기본 문법

  1. 키-값 쌍:
    • 콜론(:)을 사용하여 키와 값을 구분합니다.
    yaml
    코드 복사
    name: John Doe age: 30
  2. 리스트:
    • 하이픈(-)을 사용하여 리스트의 항목을 구분합니다.
     
    fruits: - Apple - Banana - Cherry
  3. 중첩 구조:
    • 들여쓰기를 사용하여 중첩된 데이터를 표현합니다.
     
    person: name: John Doe address: street: 123 Main St city: Anytown
  4. 배열의 객체:
    • 리스트 내에 객체를 포함할 수 있습니다.
     
    employees: - name: John Doe age: 30 - name: Jane Smith age: 25

고급 문법

  1. Anchor와 Alias:
    • 반복되는 값을 정의하고 재사용할 수 있습니다.
     
    defaults: &defaults adapter: postgres host: localhost development: <<: *defaults database: dev_db production: <<: *defaults database: prod_db
  2. 멀티라인 문자열:
    • | 또는 >를 사용하여 멀티라인 문자열을 정의할 수 있습니다.
     
    description: | This is a multiline string. summary: > This is a folded multiline string.
  3. 인라인 컬렉션:
    • 중괄호와 대괄호를 사용하여 인라인으로 컬렉션을 정의할 수 있습니다.
     
    inline_map: {name: John Doe, age: 30} inline_list: [Apple, Banana, Cherry]

YAML 파일 예시

아래는 다양한 데이터 구조를 포함하는 YAML 파일의 예시입니다.

 
# 기본 정보 name: John Doe age: 30 is_employee: true # 연락처 정보 contact: email: john.doe@example.com phone: 123-456-7890 # 관심사 리스트 interests: - Reading - Hiking - Coding # 작업 경험 배열 work_experience: - company: Company A position: Developer years: 3 - company: Company B position: Senior Developer years: 2 # 설정 값 settings: default_language: en timezone: UTC # 복잡한 구조 database: host: localhost ports: - 5432 - 5433 credentials: username: admin password: secret # 멀티라인 문자열 description: | John Doe is a software developer with over 5 years of experience in developing scalable web applications. He enjoys working with modern technologies and is always eager to learn new skills.

YAML의 장점과 단점

장점:

  • 가독성이 높아 사람이 이해하기 쉬움
  • 데이터 구조를 직관적으로 표현 가능
  • JSON과의 호환성

단점:

  • 들여쓰기를 통한 계층 구조 표현이 익숙하지 않으면 실수하기 쉬움
  • 복잡한 데이터 구조에서 실수로 인한 파싱 오류 가능

결론

YAML은 설정 파일이나 데이터 교환 포맷으로 매우 유용한 형식입니다. 가독성과 간결성을 중시하는 환경에서 특히 유용하며, DevOps, 클라우드 설정, 데이터 정의 파일 등에 널리 사용됩니다. YAML의 문법과 구조를 이해하면, 다양한 환경에서 효율적으로 데이터를 관리하고 사용할 수 있습니다.

반응형

'IT > 읽어보기' 카테고리의 다른 글

SEO란?  (0) 2024.07.02
JSON 파일이란?  (0) 2024.06.26
AWS CloudFormation이란?  (0) 2024.06.25
Terraform이란?  (0) 2024.06.24
클라우드 엔지니어가 되기 위한 로드맵  (0) 2024.06.23