본문 바로가기
CS

JSON과 XML: 웹 데이터 교환 방식 비교 분석

by Jiyoung Oh 2025. 7. 16.

💬데이터 교환?

웹 개발에서 데이터를 교환하는 데 필수적인 두 가지 형식, JSON(JavaScript Object Notation)과 XML(eXtensible Markup Language)에 대해 자세히 알아보고자 합니다.

이 두 형식은 웹 서버로부터 데이터를 받거나 컴퓨터 간에 데이터를 전송하는 데 사용될 수 있으며, 모두 사람이 읽을 수 있는(self-describing) 자가 설명적인 구조를 가지고 있고, 계층적인 구조로 값을 값 안에 포함할 수 있습니다. 또한 다양한 프로그래밍 언어에서 파싱(parsing)되고 사용될 수 있으며, XMLHttpRequest를 사용하여 가져올 수 있다는 공통점을 가지고 있습니다.

하지만 이 두 형식은 중요한 차이점들을 가지고 있어 각각의 용도와 장단점이 명확하게 나뉩니다.


1. JSON (JavaScript Object Notation)이란?

JSON은 이름에서 알 수 있듯이 JavaScript Object Notation의 약자입니다. 이는 경량 데이터 교환 형식으로, 자바스크립트 객체 표기법으로 작성된 단순 텍스트입니다. 주로 컴퓨터 간에 데이터를 보내는 데 사용됩니다.

JSON의 특징

  • 간결성: JSON은 종료 태그를 사용하지 않기 때문에, 일반적으로 XML보다 짧고, 읽고 쓰기가 더 빠릅니다.
  • 배열 지원: JSON은 배열을 사용할 수 있습니다.
{"employees":[
  { "firstName":"John", "lastName":"Doe" },
  { "firstName":"Anna", "lastName":"Smith" }
]}
  • 자바스크립트 친화적: JSON은 자바스크립트 객체 생성 코드와 문법적으로 유사하여, 자바스크립트 프로그램이 JSON 데이터를 자바스크립트 객체로 쉽게 변환할 수 있습니다. 자바스크립트에는 JSON 문자열을 자바스크립트 객체로 변환하는 JSON.parse() 내장 함수가 있습니다.
  • 언어 독립성: JSON 문법은 자바스크립트 객체 표기법에서 파생되었지만, 텍스트 전용 형식이기 때문에 다양한 프로그래밍 언어에서 JSON을 읽고 생성하는 코드가 존재합니다.
  • 데이터 저장: JSON은 자바스크립트 객체를 텍스트로 저장할 수 있도록 해줍니다.

JSON 예시

아래 JSON 문자열은 name, age, car 세 가지 속성을 가진 객체를 정의하며, 각 속성에는 값이 있습니다.

{"name":"John", "age":30, "car":null}

 


2. XML (eXtensible Markup Language)이란?

XML은 eXtensible Markup Language의 약자입니다. 이는 HTML과 매우 유사한 마크업 언어지만, 데이터를 저장하고 전송하기 위해 설계되었습니다. XML은 스스로를 설명하는(self-descriptive) 방식으로 데이터를 표현하도록 설계되었습니다.

XML의 특징

  • 데이터 중심: XML은 데이터 자체에 초점을 맞춰 데이터를 전달하도록 설계되었습니다. 반면 HTML은 데이터를 어떻게 보여줄지에 초점을 맞춰 데이터를 표시하도록 설계되었습니다.
  • 태그 정의의 자유: HTML 태그(<p>, <h1>, <body> 등)와 달리, XML 태그는 미리 정의되어 있지 않습니다. XML 문서의 작성자가 태그와 문서 구조를 모두 정의해야 합니다.
  • 데이터만 전달, 아무것도 하지 않음: XML은 그 자체로 아무것도 하지 않습니다. XML은 태그로 감싸진 정보일 뿐이며, 이 데이터를 보내고, 받고, 저장하거나 표시하려면 별도의 소프트웨어가 필요합니다.
  • 확장성: XML은 새로운 데이터가 추가되거나 제거되어도 대부분의 애플리케이션이 예상대로 작동할 수 있도록 설계되어 있습니다.
  • 데이터 공유 용이성: XML은 데이터를 일반 텍스트 형식으로 저장하여 소프트웨어 및 하드웨어 독립적인 방식으로 데이터를 저장, 전송 및 공유할 수 있게 합니다. 이는 특히 호환되지 않는 시스템 간의 데이터 교환을 단순화합니다.

XML 예시

아래 위 XML은 송신자 정보, 수신자 정보, 제목, 메시지 본문을 가지고 있어 상당히 자가 설명적입니다.

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

 


3. JSON과 XML의 차이점

가장 중요한 차이점은 데이터 파싱 방식입니다.

  • JSON 파싱: JSON은 표준 자바스크립트 함수(JSON.parse())로 파싱할 수 있으며, 즉시 사용 가능한 자바스크립트 객체로 파싱됩니다. 서버에서 순수한 텍스트를 받아 자바스크립트 객체로 사용할 수 있으며, 복잡한 파싱이나 변환 없이 자바스크립트 객체로 데이터를 다룰 수 있습니다.
  • XML 파싱: XML은 XML 파서로 파싱해야 합니다. XML은 JSON보다 파싱하기 훨씬 더 어렵습니다.

이러한 파싱 방식의 차이로 인해 AJAX 애플리케이션에서 JSON이 XML보다 더 빠르고 쉽습니다. XML을 사용하는 경우 XML 문서를 가져온 후 XML DOM(문서 객체 모델)을 사용하여 문서를 반복하고 값을 추출하여 변수에 저장해야 하는 반면, JSON은 JSON 문자열을 가져와 JSON.parse로 파싱하기만 하면 됩니다.

특징 JSON XML
태그 사용 종료 태그 없음 태그로 데이터 감쌈 (HTML과 유사)
길이 더 짧고 간결함 더 길고 장황할 수 있음
읽기/쓰기 속도 더 빠름 상대적으로 느림
데이터 구조 배열 사용 가능, 자바스크립트 객체 표기법 데이터 저장 및 전송에 중점, 마크업 언어
파싱 방식 JSON.parse()로 즉시 객체화 XML 파서 필요, 더 복잡함
AJAX 성능 더 빠르고 쉬움 더 복잡한 파싱 과정 필요
태그 정의 해당 없음 사용자가 태그를 정의 (미리 정의된 태그 없음)

💬마무리하며

JSON과 XML은 모두 강력한 데이터 교환 형식이며, 각각의 장점을 가지고 있습니다.

  • JSON은 자바스크립트와의 자연스러운 통합, 간결한 문법, 그리고 쉬운 파싱 덕분에 웹 애플리케이션, 특히 AJAX 기반의 비동기 통신에서 선호됩니다. 빠르고 효율적인 데이터 처리가 필요한 경우 탁월한 선택입니다.
  • XML은 데이터 정의의 높은 유연성과 확장성 덕분에 다양한 시스템 간의 복잡한 데이터 공유나 문서 지향적인 데이터 저장에 강점을 가집니다. 데이터의 구조와 의미를 엄격하게 정의해야 하는 경우에 유용할 수 있습니다.

참고자료

'CS' 카테고리의 다른 글

프로세스 메모리 관리 모델과 가상 메모리 구조  (6) 2025.07.17
파서(Parser)란?  (0) 2025.07.17
리눅스(Linux)란 무엇인가?  (0) 2025.07.16
git vs GitHub  (0) 2025.07.15