XML & JSON & YAML 모두 데이터를 표현하는 형식이다.
표와 같은 구조를 가진 정보를 한 줄로 보내기 위해선 정보를 주는 쪽과 받는 쪽에 합의된 형식이 있어야 한다.
XML (Extensible Markup Language)
<!-- XML 주석 -->
<?xml version="1.0" encoding="UTF-8"?>
<TITLE color="red" type="bold">내용</TITLE>
<users>
<user>
<name>홍길동</name>
<score>95</score>
<hobby>
<element>Soccer</element>
<element>Ninza</element>
</hobby>
</user>
<user>
<name>이순신</name>
<score>100</score>
<hobby>
<element>Sing</element>
<element>Dancing</element>
</hobby>
</user>
</users>
- HTML 과 흡사한 구조를 가지며 태그로 표현된다.
- 트리계층 구조이며 루트요소부터 시작해 여러 개의 자식을 계층적으로 포함한다.
- 주석을 넣을 수 있다.
- 문법적인 오류가 발생해도 각각 태그로 구분되어 있어 다른 태그들은 태그가 읽을 수 있다.
- 안정성을 요구하는 곳에 XML
- <xml> 태그를 이용하여 XML 문서임을 명시할 수 있고 아래 속성을 추가할 수 있다.
- version: XML 문서의 버전
- encoding: XML 문서의 문자 셋(Character Set)을 명시한다. 일반적으로 UTF-8을 사용한다.
- standalone: XML 문서 외부 소스 데이터에 의존하는지의 여부를 명시한다.
- 태그 안에 속성을 명시할 때는 따옴표를 넣어주어야 한다.
- 많은 태그 때문에 문자량이 늘어나 응답시간이 다소 느리다.
Json (JavaScript Object Notation)
- 서버와의 통신규약인 Rest API를 사용할 때 가장 많이 사용된다.
- 거의 모든 프로그래밍 언어에서 JSON을 지원한다는 점에서 채택률이 높다.
- 주석을 사용할 수 없다.
- key & value 형태를 가지고 있다.
- 대괄호 { } 와 큰 따옴표를 이용하여 계층형 구조를 형성한다.
YAML
- 주석 사용이 가능하다.
- 개행, 공백으로 블록을 인식한다.
- 공백으로 데이터를 구분하므로 한 줄로 작성할 수 없다.
- YAML 은 한글과 같은 유니코드를 그대로 사용할 수 있다.
- (JSON은 한글 등 멀티 바이트 문자를 인코딩하여 보여준다.)
- 상속등의 기능도 적용할 수 있다.
참고자료
'Web' 카테고리의 다른 글
Thread Pool (Java, Tomcat, SpringBoot) (0) | 2024.07.25 |
---|---|
[DB] Connection Pool 정리 (1) | 2021.09.11 |
쿠키(Cookie)와 세션(Session) 정리 (0) | 2021.09.04 |
HTTP 프로토콜 정리 (0) | 2021.08.28 |