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