XML과 JSON과 같이 데이터를 교환할 때 사용되는 데이터 형식이다. Yaml(야믈)은 Xml과 Json에 비해 포맷이 간단하다.
일단 같은 내용을 Xml, Json, Yaml로 표현했을 때 어떻게 표현되는지 비교해보자.
일단 Xml부터 어떻게 변해가는지 봐보자.
xml은 태그 형식으로 Key와 Value를 구분한다. 부모-자식 관계는 부모 태그 안에 자식 태그를 넣어서 구분한다.
Xml은 여는 태그, 닫는 태그가 있으므로 데이터 크기가 크다.
Xml에 비해 많이 간소화되었다. Object는 중괄호{}
로 감싸주고 Array는 []
로 감싸서 구분을 해준다. 부모-자식 관계는 중괄호 안에 다시 Object나 Array를 넣음으로써 구분된다.
Json의 경우에는 "Key": Value
형식을 가지는데, Key는 String이라 항상 큰따옴표""
로 감싸주어야 한다.
이런 부분과 괄호를 섞어쓰는 부분 때문에 Yaml에 비해 데이터 크기가 크다.
Yaml은 Key: Value
의 형식을 가진다. Json과 달리 Key를 큰따옴표""
로 감쌀 필요가 없고, 괄호로 Object를 구분짓지 않는다. 부모-자식 관계는 자식 Object를 부모 Object보다 두 칸 들여써서 구분한다.
Array의 경우에는 하이픈-
을 써서 구분한다.
Yaml에는 중요한 규칙이 하나 있는데, 항상 Key:
와 Value
사이에 한 칸을 띄워햐 한다는 점이다.
Yaml은 Xml과 Json에 비해 차지하는 데이터 크기가 적다.
같은 내용을 적었을 때 위와 같이 비교가 된다. 한눈에 봐도 Yaml이 제일 간단하다.
이러한 이유때문에 yaml이 많이 사용된다.
사실 Yaml이나 Yml이라 같다.
Dos 시절 확장자를 3자로 제한하던 시절이 있다고 한다. 이 때 사용하기 위해 yaml 확장자를 yml으로 줄여서 사용했고, 이 때의 레거시가 존재하는듯.