시스템 간에 데이터를 주고 받을 때 데이터의 연동 호환성을 위해 포맷에 대한 규칙이 필요하다. 이러한 규칙에는 CSV, JSON, YAML 등이 있다.
그렇기 때문에 YAML 이란 이러한 데이터 송,수신 간에 사용 되는 포맷에 대한 규칙인 것이다.
콜론(:)을 사용하여 Key와 Value를 구분한다.
이때 Key:
콜론까지 적었다면 Key: value
다음과 같이 띄어쓰기를 해주어야한다. 콜론이 없다면 스트링으로 인식되어 오류가 발생한다.
파이썬과 같이 들여쓰기로 계층 구조를 표현한다. 2칸 혹은 4칸을 지원하며 여러 키를 가진 객체를 포함시키려면 들여쓰기를 해주어야한다.
문자열로 :
을 사용하려면 따옴표(" or ')로 묶어주어야 한다. score: "3:0"
하지만, 사용에 차이는 존제한다. 큰 따옴표는 개행문자를 인식하지만 작은 따옴표는 개행문자를 문자 그대로 처리해준다.
배열을 표현할 때 하이픈(-)을 사용하여 하위 요소들을 표현한다. 하이픈(-)을 사용할 때 띄어쓰기를 꼭 진행해주어야 한다. 첫 열 :
뒤에는 따로 띄어쓰기를 해주지 않아도 괜찮다.
단순 배열의 리스트를 표현하는 것이 아니라 복잡한 구조체의 리스트를 표현하기 위해서는 하이픈(-)과 key:value 구조로 객체를 포함한 배열 표현이 가능하다.
하이픈(-) 뒤에 key: value 쌍의 구조가 온다면 객체를 포함한 배열인 것이다. 이때, 하이픈(-)은 오직 하나의 객체를 가르킨다고 생각하면 된다.
yaml의 데이터 부분에서 yes, no, true, false
모두 boolean 값으로 인식되는데, 대소문자를 가리지 않는다. yes, no
를 문자열로 표현하고 싶다면 "yes" "no"
다음과 같이 표현해야한다.
\n
개행문자를 문자 사이에 넣어주어야 하는 json과 달리 yaml에서는 다음의 두 방식으로 개행을 처리한다.
>
으로 있는 경우에만 줄바꿈 개행문자(\n
)로 처리한다.|
보이는 그대로 개행문자(\n
)로 처리한다.-
위의 두 방식에 하이픈(-)을 붙혀주게되면 마지막 줄을 개행처리 하지 않는다.>-
|-
yaml에서는 데이터를 변수로 저장해 재사용이 가능하다.
&
를 사용하여 기호로 변수를 선언*
기호로 변수를 사용<<: *변수명
변수를 사용할 시 받아오면 추가 요소 불필요yaml에서는 ---
을 사용하여 두 파일 데이터를 하나의 파일로 포함시켜 정의가 가능하다. 한 파일에서 모든 configuration을 관리할 수 있는 것.
<그림1>
<그림2>
[그림1]의 두 file을 다음과 같이 하나의 파일로 통합이 가능하다.