YAML을 시스템 간 데이터를 주고 받을 때, 사용하는 포맷 중 하나이다.
우리는 타 시스템 간에 데이터를 주고 받을 때, 데이터 포맷에 대한 약속이 필요하다. 시스템을 개발하거나 내부시스템끼리는 규칙을 만들어 지킬 수 있다. 하지만 문제는 타 시스템과 연동 할 때 발생한다.
내부에서 세운 규칙을 타 시스템과 데이터를 주고 받을 때마다 데이터 규칙에 대한 문서를 주고 받는다면 문서들도 많아지고 비효율적이게 된다. 그래서 XML, Json과 같은 데이터 포맷을 정의하여 사용하고 있고 그 포맷에는 규칙도 있다.
가장 오래 사용된 포맷은 XML이다.
XML은 태그형식을 통해 Key-Value를 구분하고, 태그안에 태그를 넣어서 부모와 자식관계의 구조를 나타낸다.
Object와 Array 부분은 표시를 해놨지만 Xml포맷상으로는 구분이 안되는 부분도 있다.
다음은 똑같은 내용의 JSON 포맷이다.
XML포맷과 비교해 보았을 때, 훨씬 간소화된 느낌을 받을 수 있다.
Object 일 경우, {}로 감싸주고
Array일 경우, []로 감싸주는 형식이다.
Key값의 경우 XML 은 앞 뒤로 두번씩 들어가는데 JSON에서는 한번씩 들어가서 더 간결하다.
그런데도 {}, [], "" 같은 문자들이 불필요하게 많이 들어간 느낌이 있다.
다음은 YAML이다. 야믈(?)이라고 읽고, yml이라고 쓴다.
-(하이픈)을 통해서 Array임을 알 수 있다.
YAML이 딱 봐도 다른 포맷들보다 깔끔하다고 느낄 수 있다.
마지막으로 3가지 가독성 비교.
따로 볼 땐 잘 몰랐는데 확실히 YAML이 깔끔해 보인다. YAML 포맷은 현재 많은 곳에서 사용되고 있다. 많은 사람들이 개발 시스템 설정 파일을 예전에는 config.properties를 사용했는데 현재는 config.yml로 많이 쓰는 추세이다. 참고로 쿠바네티스에서도 API를 전송할 땐 JSON 규격도 사용하지만 일반적으로는 YAML을 권장한다.
'Programming > Spring' 카테고리의 다른 글
POJO란? (0) | 2021.08.26 |
---|---|
컨트롤러란, 기본적인 동작방식 (FrontController, Dispatcher) (0) | 2021.08.11 |
SPRING과 SPRING BOOT의 차이점 (0) | 2021.08.01 |
[spring boot] http 요청 file로 응답 (0) | 2021.06.15 |
[spring boot] json 응답하기 (0) | 2021.06.08 |