YAML의 개념

728x90

YAML 이란?

YAML의 뜻은 Yet Another Markup Language 이다

마크업 언어가 아니라는 의미를 가지고 있다.

이는 YAML의 핵심은 데이터라는 것을 알려주기 위함이다.

 

 

시스템간의 데이터 연동 및 호환성을 유지하기 위해서는

데이터의 포멧에 대한 규칙이 필요하다.

기존에는 CSV, XML, JSON, properties 등이 있었고 

웹에서는 XML, JSON 자바에서는 properties 파일에 값을 정의하고 사용해왔다.

 

특히 웹에서는 JSON이 많이 이용이되는데

json 또한 주석을 사용할수 없고 중괄호, 대괄호가 많이 사용되어

코드의 길이가 길어지며 가독성이 떨어지는 단점이 있다.

 

이 단점을 보완하기 위해 2001년에 YAML(YML)의 새로운 포매팅 방식이 나왔다.

 

YAML의 구조

Json과의 큰 차이점은 주석이 가능하며 괄호를 사용하지 않아 비교적 단순하게 표현이 가능하다.

{
  "naem" : "kang",
  "phone" : 010-1234-5678,
  "isUsed" : true
}
name : kang
phone : 010-1234-5678
isUsed : true

 

위 JSON 형태의 데이터를 YAML 형태로 변환한 예시이다.

Json은 대/중괄호를 이용하고, YAML은 띄어쓰기로 구분된다.

실제 내용이 많아지게 되면 JSON 형태는 중괄호 등의 사용으로 복잡해지기 시작하지만

YAML 형태로 사용하게되면 가독성이 더욱 좋아지게 된다.

 

★Tip. YAML 모델은 JSON 형태보다 더 복잡하기에 생성 및 파싱에서는 YAML이 더 느릴수 있다.

Tip. 대부분 기본으로 사용되는 언어를 기반으로 선호도가 다르게 보인다.

       YAML은 파이선과 문법이 비슷하여 파이선 기반에서 더욱선호하고 Json은 JavaScript 구조와 비슷하여 

       자바스크립트 영역에서 더욱 선호한다.

Tip. yaml 과 yml 은 같은 파일이다. 과거 윈도우 확장자가 3자로 제한된 특성 때문에 생겨난 파일명이다.

 

YAML 문법

YAML은 다양한 데이터 구조를 지원한다.

  • 스칼라 (Sacalar) - 문자열, 숫자, Boolen 같은 기본 데이터
  • 리스트 (List) - 배열 또는 목록을 표현하며 동일한 띄어쓰기 레벨에서 '-'(하이픈)으로 시작
  • 맵 (Map) - Key:Value 로 쌍의 데이터를 구성하여 객체를 표현

728x90