데이터 사이언스

[YAML] YAML이란? 기본 특징, 데이터 타입, 문법

메가구글 2023. 4. 22. 03:47

1. YAML 정의

YAML은 사람이 쉽게 이해할 수 있는 데이터 직렬화 언어이다.

구성 파일 작성에 자주 사용된다. 예시로 docker로 이루어진 파일에 쓰인다.

YAML 파일은 .yml 또는 .yaml 확장자를 사용한다.

 

 

 

2. YAML 기본 특징

 

    2-1 공백만 허용 (Only space allowed)

    YAML은 공백과 들여쓰기로 구조와 데이터 트리를 정의한다.

    (이는 마치 Python 프로그래밍과 비슷하다.)

 

    2-2 문서 기본구호 (Document delimeters)

    --- : 문서의 시작

    ... : 문서의 끝

 

    2-3 모든 것은 딕셔너리의 일부이다.

    모든 YAML 파일의 데이터는 key-value 쌍의 형식을 따른다.

    YAML은 대소문자를 구분하며, key는 중복되지 말아야 한다. (unique)

 

3. YAML 데이터 타입

YAML 데이터 타입은 3가지가 있다.

Scalar, List, Mappings(key-value pairs)

 

    3-1 스칼라(Scalars)

    스칼라는 한가지 값으로 분류될 수 있는 데이터를 말한다. (string, integer, boolean)

    아래 예시를 보며 쉽게 이해해 보자.

items: 30
price: 50
overwrite: yes

 

 

    3-2 리스트(Lists)

    YAML 문법에서 List는 두 가지 방법으로 표현될 수 있다.

    1. 하이픈(-)과 공백으로 표현한다.

list:
 - first
 - second
 - third

    2. 인라인 형식은 대괄호와 쉼표로 구분한다.

list: [ first, second, third ]

 

 

    3-3 매핑(Mappings)

    Mappings은 정렬되지 않은 key/value 쌍의 시퀀스다.

   여기서 name과 code은 key이고 kim과 yaml은 value이다.

   여기서 key는 unique 해야 한다.

character:
 name: kim
 code: yaml

 

    또는 인라인 형식으로도 표현할 수 있다.

character: { name: kim, code: yaml }

 

    복잡한 형태의 구조

characters:
 - { name : kim, code: yaml}
 - { name : cho, code: java}
 - { name : han, code: python}

 

characters:
 - name: kim
   code: yaml
   
 - name: cho
   code: java
   
 - name: han
   code: python

 

 

 

 

Reference
Introduction to YAML with Examples - Linux Tutorials - Learn Linux Configuration