Web

XML & JSON & YAML

개발정리 2021. 10. 30. 18:48

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은 한글 등 멀티 바이트 문자를 인코딩하여 보여준다.)
  • 상속등의 기능도 적용할 수 있다. 

 

 

 

참고자료


https://ndb796.tistory.com/251

https://www.youtube.com/watch?v=55FrHTNjTCc 

'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