상세 컨텐츠

본문 제목

YAML(YML) 확장자란 ?

Common

by code_down 2024. 5. 21. 10:55

본문

 yaml 과 yml 확장자는 동의어이다.
예전 Windows 에서 Extensions 파일 확장자가 3 글자로 제한되는 특성이 있었기 때문이다. (과거의 잔상)

 

“Yet Another Markup Language” 라는 의미였으나, 현재는 “YAML Ain’t Markup Language”의 줄임말로 YAML이 단순한 마크업 언어가 아니라는 점을 강조합니다.

YAML은 데이터를 저장하고 전달하기 위한 형식입니다.

애플리케이션의 설정, 서버 구성 등 다양한 분야에 활용되며, YAML의 가장 큰 장점은 가독성이 좋습니다.

 

ex) JSON 형식의 데이터

{
  "name": "Hong gildong",
  "age": 20,
  "isEmployee": true
}

 

위 의 JSON 데이터를 YAML 으로 변환하면

name: Hong gildong
age: 20
isEmployee: true

 

으로 나타낼 수 있습니다.

 

YAML 의 데이터 구조

스칼라 (Scalar)

문자열, 숫자, 불리언 (참/거짓) 값과 같은 기본 데이터 타입

 

ex) age: 30 은 정수 스칼라입니다.

 

리스트 (List)

배열이나 목록을 표현합니다. 각 항목은 동일한 들여쓰기 레벨에서 하이픈 (-) 으로 시작합니다.

 

ex) hobbies는 세 가지 취미를 나타내는 리스트

hobbies:
  - Reading
  - Hiking
  - Coding

 

맵 (Map)

키-값 쌍으로 데이터를 구성합니다.

 

ex) address는 여러 개의 키-값 쌍을 포함하는 맵

address:
  street: 123 Main St
  city: Anytown
  zip: 12345

 

YAML 계층 구조

YAML에서 들여쓰기는 데이터의 계층 구조를 나타내며, 탭 대신 공백을 사용합니다.

들여쓰기는 2칸 입니다. (잘못된 들여쓰기는 오류 발생)

 

ex) details는 name에 대한 하위 요소입니다. 들여쓰기를 통해 이 계층적 관계가 명확해집니다.

- name: Hong gildong
  details:
    age: 20
    city: New York

 

YAML 앵커와 별칭

앵커(&) 와 별칭(*)을 사용하여 데이터를 재사용할 수 있습니다. (데이터 관리를 용이하게 합니다.)

 

ex) defaultAddress는 앵커로 사용되며, johnsAddress janesAddress는 이 앵커를 참조합니다.

# 앵커
defaultAddress: &address
  street: 123 Main St
  city: Anytown
  zip: 12345

# 별칭
johnsAddress: *address
janesAddress:
  <<: *address
  street: 456 Elm St

 

 

YAML 줄바꿈

리터럴 스타일 (Literal Style)

| 기호를 사용합니다. 줄바꿈을 유지하며, 문자열을 보존합니다.

 

ex) 각 줄의 줄바꿈이 그대로 유지됩니다.

| 
  여러 줄의
  텍스트를
  보존합니다.

 

폴디드 스타일 (Folded Style)

> 기호를 사용합니다. 줄바꿈을 하나의 공백으로 치환하며, 개별 줄바꿈은 유지됩니다.

 

ex) 첫 번째와 두 번째 줄은 하나의 문장으로 결합되지만, 두 번째 단락은 별도로 유지됩니다.

> 
  이것은 하나의
  긴 문장입니다.

  새로운 단락입니다.

 

YAML 다중 문서

하나의 파일 내에서 여러 문서를 지원합니다. 각 문서는 --- 로 구분되며, 이를 통해 관련된 여러 설정을 한 파일 내에서 관리할 수 있습니다.

 

ex)

# Document 1
---
name: John Doe
age: 30
---
# Document 2
name: Jane Smith
age: 25

 

YAML 주석

# 기호를 사용하여 주석을 추가할 수 있습니다.