YAML Ain’t Markup Language
기존에 주로 사용 되던 포맷인 JSON의 불편함을 해소하기 위해 만들어진 Superset이다.
JSON의 완전한 상위 호환이기 때문에 기존 JSON 문서를 그대로 YAML파일로 활용하거나, 원하는 부분만 손 볼 수 있다. 반대로 YAML을 JSON으로 변환할 수도 있다.
# example.yml { "key": "value" }
# example.yml key: value
위와 같이 작성하더라도 동일하게 동작한다.
이러한 특징 덕분에 기존 JSON을 사용하고 있더라도 금방 익힐 수 있으며 추가 지원이 없더라도 사용자가 직접 변환해 쉽게 사용할 수 있다.
또한 XML, JSON등과 비교해도 압도적으로 간결하고, 읽기 쉽지만, 선언적 특성으로 디버깅이 어려운 부분도 있다.
YAML | JSON | XML |
DeepLink: people – name: Kim number: 1 phone_number: 0000 status: active – name: Park number: 2 phone_number: 0001 status: active | { “DeepLink”: { “people”: [ { “name”: “Kim”, “number”: “1”, “phone_number”: “0000”, “status”: “active” }, { “name”: “Park”, “number”: “2”, “phone_number”: “0001”, “status”: “active” } ] } | <DeepLink> <people> <name> Kim </name> <number> 1 </number> <phone_number> 0000</phone_number> <status> active </status> </people> <people> <name> Park </name> <number> 1 </number> <phone_number> 0001 </phone_number> <status> active </status> </people> </DeepLink> |