XML의 정의와 JSON과의 차이

윤여찬's avatar
Feb 28, 2025
XML의 정의와 JSON과의 차이
JSON은 자주 접하는 데이터 포맷이지만, 단순히 키-값 쌍으로 이루어진 데이터를 저장하고 전송하는 용도로만 이해하고 있었다.
그렇다면 XML은? 사실 XML을 "마크업 언어"라고만 알고 있었지, 깊이 있게 파고든 적은 없었다. 그래서 이번 기회에 JSON과 XML의 차이를 좀 더 정확하게 구분해보고자 한다.
 
<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
xml은 기본적으로 위와 같이 생겼다. 보면 뭔가 html이 떠오르는 것이..
첫 줄 <?xml version="1.0" encoding="UTF-8"?>은 프롤로그라고 하며 이 문서가 xml 임을 알리고 버전이 몇인지, 그리고 문서의 인코딩이 어떻게 되는지 표시해주는 역할을 한다.
꺾쇠 기호(<, >)로 감싸진 부분을 태그(Tag)라고 한다. 이 태그는 HTML에서도 사용되는 것과 동일한 개념이다. 따라서 <abc>로 시작한 태그는 반드시 </abc>처럼 종료 태그로 감싸져 있어야 한다.
XML은 다양한 곳에서 사용된다. 게임의 세이브 데이터 저장, 문서 데이터 저장, 그리고 웹에서 서비스 간 통신에도 활용된다.
 
예를 들어, A 회사가 B 회사에 정보를 전달하려고 할 때, A 회사의 웹사이트에 <hello>world</hello>라는 XML 문서를 담은 주소를 제공할 수 있다. 그러면 B 회사는 해당 주소에 접속하여 XML 문서를 읽고 필요한 정보(여기서는 "world")를 가져올 수 있다.
 
그렇다면 굳이 XML을 사용할 필요 없이, A 회사와 B 회사가 새로운 형식을 정해 "hello|world" 같은 데이터를 주고받을 수도 있지 않을까?
 
물론 가능하다. 하지만 모든 회사마다 다른 데이터 형식을 정한다면, 매번 새로운 약속을 정의하고 이를 처리할 프로그램을 따로 개발해야 한다. 이는 큰 비효율을 초래한다.
 
XML은 많은 사람들이 특정 방식으로 사용하기로 약속한 데이터 형식이다. 덕분에 XML을 해석할 수 있는 다양한 프로그램이 이미 존재하며, 이를 활용하면 통신을 보다 효율적으로 처리할 수 있다. 이런 표준화된 문서를 사용하면, 별도의 맞춤 프로그램을 만들 필요 없이 다양한 시스템 간의 데이터 교환이 가능해진다.
 
그럼 이제 차이점을 보자.
<company> <employee> <name>John</name> <age>30</age> </employee> <employee> <name>Jane</name> <age>28</age> </employee> </company>
{ "company": { "employees": [ { "name": "John", "age": 30 }, { "name": "Jane", "age": 28 } ] } }
두개는 차이는 있지만 결국 같은 정보를 담고 있다. JSON은 배열을 쉽게 표현할 수 있어 API에서 더 효율적이며, XML은 문서 형태의 데이터를 다루기에 적합하다는 장점이 있다.
 
API 통신

XML: SOAP, 웹 서비스

JSON: RESTful API

즉, JSON은 가볍고 빠르며 API 통신에 최적화되어 있는 반면, XML은 문서 저장이나 복잡한 데이터 구조를 표현하는 데 강점이 있다. 그래서인지 나는 아직까지 XML을 사용해 통신해본 적이 없지만, 한 번쯤 직접 활용해 보고 싶은 욕심이 생긴다.
 
Share article

찬찬잉