JSON

JavaScript 객체 문법으로 구조화된 데이터를 표현하기 위한 표준 포맷이다.

모든 서비스와 애플리케이션은 데이터를 기반으로 그것을 보여주거나 뒤에서 다루면서 데이터를 많이 사용하게된다.

세상의 모든 정형화된 데이터만 있다면 편리하겠지만, 그렇지 않은 복잡한 데이터도 많다.

예를 들어, 아래와 같은 내용을 데이터로 표현하려면 복잡하다.

Wix

  • 나이: 29
  • 좋아하는 것: 자전거타기(로드), 노래부르기(발라드)

이런 데이터를 컴퓨터도, 사람도 이해하기 쉽게 표현한 것이 바로 JSON이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"Wix": {
"age": 29,
"Likes": [
{
"name": "Riding Bike",
"type": "Road"
},
{
"name": "Sing a song",
"type": "Ballad"
}
]
}
}

특징

  • key:value 형태
  • {} 중괄호로 감싼다.
  • key, value에 “”만 사용가능하다.
  • 자바스크립트와 호환이 좋다.
  • 각 객체가 다른 타입이어도 괜찮다.
  • value에 메서드와 undefined가 올 수 없다. 이외의 수, 문자열, 불리언, 배열, 객체, null 값은 올 수 있다.
  • 프로그래밍 언어나 플랫폼에 독립적이기 때문에 서로 다른 시스템 간의 데이터 교환시 유용하다. ex) API, config 파일

XML

JSON과 비교하면 중괄호 대신 열린 태그와 닫힌 태그 구조로 이루어진 데이터 포맷이 XML이다.

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?> <!-- 프롤로그 -->
<Wix>
<age>29</age>
<Likes>
<Like>
<name>Riding Bike</name> <type>Road</type>
</Like>
<Like>
<name>Sing a song</name> <type>Ballad</type>
</Like>
</Likes>
</Wix>

특징

  • 최상위 태그는 하나만 사용해야한다.
  • JSON에 비해 무겁다. JSON에 비해 닫힌 태그까지 들어가서 2번씩 들어간다.

sitemap.xml

XML의 대표적인 예시로는 SEO에 사용되는 sitemap.xml이 있다.

사이트가 매우 크거나 서로 링크가 종속적으로 연결되어 있지 않다면 크롤러가 일부 페이지를 누락하는 일이 발생하는데 이를 방지하기 위해 sitemap.xml를 사용한다.