YAML이란? (JSON, XML과 비교)

XML과 JSON

기존에는 XML, JSON 파일 포맷으로 데이터를 저장하고 주고 받는데 했었다.

하지만 이 두 파일 포맷은 정해진 포맷 규칙 때문에 데이터가 많아진다면 작성하기가 번거롭고 읽기가 힘들다는 불편함이 있다.

 

다음은 같은 데이터를 XML과 JSON로 작성하여 비교해본 것 이다.

물론 JSON이 XML의 태그 문법같은 불편함을 해소하고자 나온 파일 포맷이라 XML보다는 좀더 편리하지만

그래도 열고 닫는 괄호 {}, []들로 인해 불편함이 있다.

 


YAML이란?

YAML은 XML과 JSON이 사용하기 복잡하고 불편함 점을 해결하기 위해 2001년 Clark Evans에 의해 최초 제안되었다.

원래는 "YAML Ain't Markup Language" "마크업 언어가 아니다" 라는 뜻으로 불렸으며

YAML은 사람이 읽기 좋은 데이터 구조를 목표로 하여 기존 XML과 JSON과 비교하면 훨씬 읽고, 작성하기 편하고 한눈에 들어온다.

 

다음은 위에 XML과 JSON으로 작성한 것을 YAML로 작성한것이다.

딱 봐도 훨씬 편한 것을 볼 수 있다.

person:
  name: John Doe
  age: 30
  address:
    street: 123 Main Street
    city: Anytown
    state: CA
    zip: 12345
  phones:
  - number: 123-456-7890
    type: home
  - number: 555-555-5555
    type: work

 

파일 확장자는 .yaml 또는 .yml을 사용하며 주로 .yml을 많이 사용하는 편이다.

 

문법
  • space(공백)으로 계층 구조를 만든다.
  • key: value 형태로 표시하며, : 다음에는 공백 문자가 와야 한다. (붙여쓰기 X)
  • 단일 원소 배열은 하이픈(-)으로 나타낸다. 
  • 하이픈(-)과 key: value 구조를 이용해 객체를 포함한 배열을 표현할 수 있다. (위 예시에서 number와 type은 phones의 객체 배열 요소가 된다.)
  • " " 따옴표를 안써도 자동으로 숫자와 문자열을 인식한다.
  • bolean 표현은 yes, no, true, false를 지정하면 bolean값으로 인식된다. (대소문자 구분X)
  • 주석은 #을 붙여 사용한다.
  • --- 은 문서의 구분선으로 사용한다.