YAML 은 JSON이나 XML과 마찬가지로 설정 파일 등의 목적을 가진 데이터를 기술하기 위해 만든 포맷으로 JSON과 비교하자면 좀 더 구조가 복잡하지만 사람이 보기에 가독성 측면에서 좀 더 자연스러운 포맷이다.
YAML 은 E-mail 양식에서 아이디어를 얻어 읽기 쉬운 데이터 포맷으로 고안되었으며 문서 Markup Language 가 아닌 데이터 표현을 위한 가벼운 형태의 언어이다.
JSON과는 다르게 자료형을 정의하게 되어있으며 기본은 primitive 형이다.
Scalar 라고 하는 숫자 / String 형태, Sequence 라 하는 배열/리스트 형태, Mapping 이라 하는 key-value pair 형태 등이 존재하며 #은 주석이다.
Space를 이용한 들여쓰기로 구조체를 구분한다. (Tab이 아니다.)
하지만 프로그래밍 언어처럼 반드시 문서에 형을 명시해야하는 것은 아니고, 다음과 같이 분류만 해주면 된다.
integer : 100
string : "100"
float : 100.0
boolean : Yes
다음은 간단히 만들어본 YAML 파일 예시이다. (에디터의 사소한 플러그인 에러로 인해 보이는게 이상하지만 신경쓰지말자 ;;)
---
# List of pets
pets:
- dog
- cat
- bird
- fish
# pets in shop (list inline)
shops: ["dog", "cat"]
# Dictionary of owner's pet (hashtable inline)
map: { james: dog, jenny: cat }
# Dictionary of pet's owner
dog:
- james,
- tom,
- kate
cat:
- jenny
pageNo : 10
valid : Yes
YAML 은 몇가지 지시자를 사용하여 특정 작업들을 수행할 수 있다.
가령 %YAML 문자는 문서의 YAML 버전을, %TAG 지시자는 URI 주소를 나타낸다.
근래에 많은 오픈소스들의 YAML 을 활용하고 있고, 커뮤니케이션 포맷으로도 사용되는 것 같다. 알아두는 것이 좋을 것 같다.
'Computer Base > Computer Engineering' 카테고리의 다른 글
CQRS란? CQRS 에 대한 정리 (0) | 2018.11.16 |
---|---|
Google Protobuf 정리 내용 및 사용방법 (0) | 2018.11.06 |
분산 파일시스템(Distiributed File System) 에 대한 정리 (0) | 2018.10.14 |
컴파일러의 개념 + 어떻게 컴파일러가 작동하는지(How Compiler works) (0) | 2018.10.11 |
프로그래밍의 2가지 로직 패턴. 도메인 모델(Domain Model) & 트랜잭션 스크립트(Transaction Script) (0) | 2018.08.09 |