JSON은 어떻게 XML을 이기고 웹의 표준이 되었을까?
2000년대 초반까지만 해도 웹 데이터 교환의 왕좌는 **XML(eXtensible Markup Language)**이 차지하고 있었습니다. SOAP 프로토콜과 함께 엔터프라이즈 환경을 지배했었죠.
하지만 지금은 어떤가요? 대부분의 REST API는 **JSON(JavaScript Object Notation)**을 사용합니다. XML은 레거시 시스템이나 특수한 설정 파일에서나 볼 수 있게 되었습니다.
도대체 JSON의 어떤 매력이 XML을 밀어내고 웹의 표준으로 자리 잡게 만들었을까요?
1. 가독성과 간결함 (Less is More)
가장 직관적인 차이는 '생김새'입니다. 같은 데이터를 표현할 때 두 형식을 비교해 봅시다.
XML:
<user> <id>1</id> <name>Hong Gil-dong</name> <email>[email protected]</email> </user>
JSON:
{ "id": 1, "name": "Hong Gil-dong", "email": "[email protected]" }
XML은 여는 태그와 닫는 태그(<id>...</id>)가 반복되어 데이터보다 태그가 차지하는 용량이 더 클 때가 많습니다. 반면 JSON은 중괄호{}와 콜론:만으로 구조를 표현하여 훨씬 간결하고, 사람이 읽기에도 편합니다.
2. 언어 친화적 (Native Support)
JSON의 가장 강력한 무기는 이름에서도 알 수 있듯이 JavaScript와의 호환성입니다.
웹 브라우저는 자바스크립트 엔진을 내장하고 있습니다. JSON 데이터는 자바스크립트의 객체 리터럴 문법과 거의 동일하기 때문에, 별도의 복잡한 파서 없이 JSON.parse() 한 번이면 즉시 사용할 수 있는 객체가 됩니다.
반면 XML을 자바스크립트에서 다루려면 DOM 파서를 통해 트리를 순회해야 하는 번거로움이 있었습니다. 프론트엔드 개발의 중심이 자바스크립트로 넘어오면서 JSON의 입지는 더욱 공고해졌습니다.
3. 데이터 타입의 명시
XML은 기본적으로 모든 것이 텍스트입니다. 숫자인지 문자열인지 구분하려면 별도의 스키마(XSD)가 필요합니다.
하지만 JSON은 기본적인 데이터 타입을 내장하고 있습니다:
- 문자열 (
"string") - 숫자 (
123,3.14) - 불리언 (
true,false) - 배열 (
[...]) - 객체 (
{...}) - Null (
html)
이러한 타입 지원은 데이터를 주고받을 때 모호함을 줄여주고, 개발자의 실수를 방지해 줍니다.
결론
물론 XML이 완전히 사라진 것은 아닙니다. 문서의 구조가 복잡하거나 엄격한 유효성 검증이 필요한 금융, 의료 분야에서는 여전히 XML의 메타데이터 기능이 유용하게 쓰입니다.
하지만 "데이터를 가볍고 빠르게 주고받는다"는 웹의 핵심 가치에서 JSON은 압도적인 효율성을 보여주었습니다.
기술의 세계에서 항상 '더 복잡하고 기능이 많은 것'이 승리하는 것은 아닙니다. 때로는 JSON처럼 '단순하고 목적에 충실한 것'이 세상을 바꿉니다.
관련 도구 둘러보기
Pockit의 무료 개발자 도구를 사용해 보세요