본문 바로가기
스터디/Spring

HTTP 전송 데이터 형식, JSON vs XML

by SayHiWorld 2024. 8. 27.

 

결론부터 얘기하자면, 백엔드 개발에서는 XML보다 JSON을 선택하는 것을 추천한다. 

 

단순 데이터 전송 시에는 JSON 만으로도 충분한 경우가 많으며,

 

데이터의 크기도 작고 구문 분석 속도도 빨라서 유리하다. 


JSON

 

우리가 흔히 아는 http 전송 데이터 형식 중 하나인 json은,

 

json은 JavaScript(자바스크립트에서) Object(객체를) Notation(표기하는 방법) 의 약자이다.

 

기본적인 형태는 다음과 같다.

{
    "name" : "김한빛",
    "age" : 30,
    "address" : "서울시 서대문구"
}

 

데이터가 문자열일 경운에는 큰따옴표로 감싼다.

 

데이터 쌍의 왼쪽에는 문자열만 올 수 있다. Key 라고 부른다. 

 

데이터 쌍의 오른쪽에는 문자열, 정수, 실수, 또 다른 JSON 데이터, 배열, bool값, null이 올 수 있다. Value 라고 부른다.

 

 


 

데이터를 전송하기 위한 다른 데이터 형식은 XML은 아래와 같이 표현된다.

</xml version="1.0" encoding="UTF-8" ?>
<root>
	<name>김한빛</name>
    <age>30</age>
    <address>서울시 서대문구</address>
</root>

 

XML은  HTML처럼 태그를 사용해서 열고 닫는다. 

Key는 태그 이름이 되고, Value는 태그 안에 들어가는 내용이 된다. 

 

시작하는 첫줄을 보면, XML의 버전과 인코딩에 대한 정보를 포함하고 있다. 

 


JSON vs XML

 

-> 데이터의 크기면에서 JSON < XML 이다. 따라서 JSON을 사용하면 전송할 때 발생하는 시간을 절약할 수 있다. 

 

-> 프런트엔드의 데이터를 구문 분석(=파싱)하는 속도는 JSON이 자바스크립트 엔진을 통해 훨씬 빠르게 수행된다.

서버와 서버 간에 통신하는 경우에는 XML이 유리할 수 있지만, 일반적으로는 JSON이 유리하다고 볼 수 있다. 

 

-> 데이터 자체 외에 추가적인 정보를 보내기 위해서는 XML이 JSON보다 편리하다. XML은 HTML 처럼 메타데이터를 함께 전송할 수도 있고, 주석이나 태그에 속성(attribute)을 추가할 수도 있지만, JSON은 이러한 기능을 제공하지 않는다. 

 

결과적으로 백엔드 개발에는 JSON을 추천한다.