(CS) XML, JSON이란? 역직렬화와 직렬화
XML과 JSON은 둘 다 데이터 교환 형식이라는 공통점이 있다.
데이터 교환 형식이라는 것은 데이터를 주고받을 때 사용하는 형식이라는 뜻이다.
데이터 교환 형식은 api 반환 형태나 시스템 구축 설정파일 등에 사용된다.
이런 데이터 교환 형식은 다른 언어의 영향을 받지 않아 독립적이며,
다양한 언어에서 사용이 가능하다.
JSON
JSON은 Javascript object notation의 약자이다.
즉 자바스크립트 객체 문법으로 구조화된 데이터 형식이다.
즉 JSON은 보통 아래와 같은 형태로 key & value로 구성된다.
{"key" : "value"}
자바스크립트의 객체와 JSON의 차이점이 있다면, 바로 undefinted와 메서드가 포함될 수 없다는 것이다.
undefined와 메서드를 제외한 숫자, 문자열, 불리언, 배열, 객체, Null은 모두 사용 가능하다.
JSON 사용법, 역직렬화, 직렬화
JSON을 사용하기 위해서는 역직렬화와 직렬화의 과정을 거쳐야 한다.
역직렬화는 JSON을 오브젝트로 변환해 실제 사용가능한 형태로 만드는 과정이고
직렬화는 외부에서도 사용할 수 있게 데이터를 JSON의 형태로 반환하는 것을 말한다.
XML
XML은 Extensible Markup Language의 약자이다.
Markup Language에서 알 수 있다시피, xml은 마크업 언어로 태그를 사용해 구조를 나타내며,
html과 상당히 유사한 구조를 가진다.
xml은 크게 프롤로그, 루트요소, 하위요소로 나뉜다.
- 프롤로그 :버전 인코딩
- 루트요소: 하위요소를 감싸는 태그, 하나만 존재
- 하위요소
<?xml version="1.0" encoding="UTF-8"?> //프롤로그
<basket type="food"> //루트요소
<fruit>
<name>사과</name>
<cost>5000</cost>
<count>5</count>
</fruit>
<fruit>
<name>딸기</name>
<cost>8000</cost>
<count>2</count>
</fruit>
</basket>
XML 특징
xml은 json과 비교했을 때, 닫힌 태그가 존재하기에 json보다 더 무겁다.
또한 json이 직렬화와 역직렬화가 간편한데 반해 xml은 직렬화와 역직렬화를 할 때,
외부 라이브러리를 이용해야 하기에 더 불편하다는 단점이 있다.
XML과 HTML의 차이점
xml과 html 둘 다 마크업 언어라서 유사해 보이지만 아래와 같은 차이점이 있다.
xml | html | |
용도 | 데이터 저장 및 전송 | 데이터 표기 |
대소문자 구분 여부 | O | X |
태그 커스텀 가능 여부 | O | X |