Json vs XML
XML(eXtensible Markup Language)
- HTML과 매우 비슷한 문자 기반의 마크업 언어이다
- 사람과 기계가 동시에 읽기 편한 구조로되어있다.
- HTML처럼 데이터를 보여주는 목적이 아닌 데이터를 저장하고 전달하는 목적으로 만들어졌다.
- XML 태그는 HTML 태그 처럼 미리 정의 되어 있지 않고, 사용자가 직접 정의할 수 있다
JSON(JavaScript Object Notation)
- 브라우저 통신을 위한 속성-값 또는 키-값 쌍으로 이루어진 데이터 포맷
JSON과 XML 공통점
- 데이터를 저장하고 전달하기 위해 고안되었다
- 기계 뿐아니라 사람도 쉽게 읽을 수 있다.
- 계층적인 데이터 구조를 가진다
- 다양한 프로그래밍 언어에 의해 파싱될 수 있다
- XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있다.
JSON과 XML의 차이점
예제
XML 예제
<employees>
<employee>
<firstName>John</firstName> <lastName>Doe</lastName>
</employee>
<employee>
<firstName>Anna</firstName> <lastName>Smith</lastName>
</employee>
<employee>
<firstName>Peter</firstName> <lastName>Jones</lastName>
</employee>
</employees>
JSON 예제
{"employees":[
{ "firstName":"John", "lastName":"Doe" },
{ "firstName":"Anna", "lastName":"Smith" },
{ "firstName":"Peter", "lastName":"Jones" }
]}
JSON의 사용 범위
- XML 문서는 XML DOM(Document Object Model)을 이용하여 해당 문서에 접근한다. JSON은 문자열을 전송받은 후에 해당 문자열을 바로 파싱하므로, XML보다 더욱 빠른 처리 속도를 보여준다
- 따라서 HTML과 자바스크립트가 연동되어 빠른 응답이 필요한 웹 환경에서 많이 사용된다
- JSON은 전송받은 데이터의 무결성을 사용자가 직접 검증해야한다
- 데이터의 검증이 필요한 곳에서는 스키마를 사용하여 데이터의 무결성을 검증할 수 있는 XML이 아직도 사용된다.
JSON의 특징
- 사용하기 쉽다
- 적은 메모리 공간을 사용하기 때문에 빠르다
- 맵핑을 생성하지 않아도된다
- Jackson API가 직렬화 할 여러 개체에 대한 기본 매핑을 제공한다
- 종속성
- JSON을 처리하기 위해 다른 라이브러리가 필요하지 않다
XML의 특징
- XML 태그는 미리 정의되어 있지 않다. 사용자 정의 태그를 정의해야한다
- 사람이 이해하기 쉽다
- 구조화 된 형식은 프로그램에서 읽고 쓰기가 쉽다
- XML은 HTML과 같은 확장 가능한 마크업 언어이다
- 데이터를 전달하도록 설계 되어있고 데이터를 표시할 수 없다
JSON 장점
- 모든 브라우저에 대한 지원 제공
- 생성, 조작, 읽기 , 쓰기가 쉽다
- 구문이 간단
- javascript에서 기본적으로 인식되고 javascript 함수인 eval() 로 구문 분석이 가능하다
- 직렬화가 가능하다
- JavaScript 의 모든 객체를 JSON으로 변환하여 JSON을 서버로 보낼 수 있는 텍스트이다
XML 장점
- 시스템 및 애플리케이션간에 문서 전송이 가능하다.
- 서로 다른 플랫폼 간에 데이터 교환이 가능하다
- HTML에서 데이터를 분리한다
- 플랫폼 변경 프로세스를 단순화한다
JSON의 단점
- 네임 스페이스 지원이 없다. ( 확장성이 부족)
- 형식적인 문법 정의 지원( 문법을 지켜야한다)
- 제한된 개발 도구 지원
XML의 단점
- 처리 응용 프로그램이 필요하다
- 내장 데이터 유형 지원이 없다
- XML 구문이 중복된다
- 사용자가 자신의 태그를 생성하는 것을 허용하지 않는다
- 텍스트 기반 데이터 전송 형식과 유사하다