RedMeta

JSON과 XML의 개요 및 차이점 / 서버와 클라이언트 통신의 언어 JSON XML 정리

 

일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용되는 파일 언어 입니다

요즘은 xml 보다는 JSON

과거에 XML은 헤더와 태그 등 여러 요소들도 가독성이 떨어지고 용량도 효율적이지 않다는 평가를 받았는데

이를 보완하고 문제점을 해소할 수 있는게 JSON 입니다

아직까지 W3C에서 표준이 XML 이라서 XML이 다방면에서 많이 사용되지만

ECMAScript5에서 기본으로 JSON이 내장되어서 이제 JSON 쪽으로 많이 기울지 않았나 싶습니다

XML (eXtensible Markup Language)


1997년 1.0 사양이 발표되면서 성장하기 시작했습니다

html 과 매우 비슷하게 마크업 언어입니다

xml은 사람과 기계가 동시에 읽기 편한 구조로 되어 있습니다

목적은 데이터를 저장하고 전달하는 데에 있습니다



XML문서의 파싱은 XML DOM(Document Object Model)을 통하여 해당 문서에 접근합니다

XML 문서가 전부 메모리로 올라가 객체 모델로 생성됩니다

문서가 통째로 메모리에 올라가 조직화 되기 때문에 문서 요소를 접근하고 사용하는데 적합합니다

하지만 이는 단점이 되기도 하는데 메모리에 올려놓고 연산하기 때문에

XML 데이터가 크면 메모리 부족이 일어날 수 있습니다

XML 예시

<dog>
    <name>토이푸들</name>
    <family>푸들<family>
    <age>1</age>
    <weight>2.14</weight>
</dog>





JSON (Javascript Object Notation)


ECMAScript 3rd 1999

key와 Value로 이루어져 있는 서버와 클라이언트 통신에 많이 사용 되는언어 입니다

유니티 엔진 플러그인으로 시리얼라이저, 디시리얼라이저를 제공하면서

모바일플랫폼과 서버 연결을 위해서도 많이 쓰입니다

데이터를 주고 받을 수 있는 가장 간편한 포맷입니다

NoSQL, SQL

최근에는 NoSQL 뿐만아니라 PostgreSQL, MYSQL 등 관계형 데이터베이스들도 지원하기 시작하였습니다

문자열을 전송받은 후 문자열을 바로 파싱해 XML 보다 더 빠른 속도로 이용할 수 있습니다

언어나 플랫폼에 상관없이 다양하게 사용할 수 있습니다
c c# java python php kotlin go


VSCode에서도 환경설정 파일에서 JSON 파일을 사용합니다

MacOS 를 사용하시는 분이시라면 Sublime text 에서도

환경설정파일이 JSON 파일로 되어 있는 것을 확인하실 수 있습니다

 

JSON 예시

 

{
    "name": "토이푸들",
    "family": "푸들",
    "age": 1,
    "weight": 2.14
}





표를 보시면 XML(초록선)은 하락세에 있고 JSON(진한 노란색) 은 완전하지는 않지만 상승 곡선에 있습니다



최근 대세는 JSON이 이끄는 것으로 보이네요

 

JSON과 XML의 공통점

1. 데이터를 저장하고 전달하기 위해 고안되었음
2. 기계뿐만 아니라 사람도 쉽게 읽을 수 있음
3. 계층적인 데이터 구조
4. 다양한 프로그래밍 언어에 의해 파싱될 수 있음
5. XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있음

JSON과 XML의 차이점

1. JSON은 종료 태그를 사용하지 않음
2. JSON의 구문이 XML의 구문보다 더 짧음
3. JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있음
4. XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있음
5. XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준 함수인 eval() 함수로 파싱됨

공유하기

facebook twitter kakaoTalk kakaostory naver band