개발메모/간단정리

[간단정리] {JSON}, <XML> 이란?

99C0RN 2024. 7. 18. 11:33

개요

데이터 교환 형식은 다양한 애플리케이션과 시스템 간의 데이터 전송을 원활하게 하는 중요한 요소입니다. 이 글에서는 두 가지 대표적인 데이터 교환 형식인 JSON과 XML을 비교해보고, 각각의 장단점과 사용 사례를 살펴보겠습니다.


1. JSON (JavaScript Object Notation)

JSON은 가볍고 가독성이 뛰어난 데이터 교환 형식으로, 주로 웹 애플리케이션에서 널리 사용됩니다.

본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다.

즉, 프로그래밍 언어나 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는 C, C++, C#, 자바, 자바스크립트, 펄, 파이썬 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있습니다.


JSON의 장점

  • 가독성: JSON은 직관적인 구조 덕분에 데이터의 이해가 용이합니다.
  • 경량: JSON은 태그 없이 키-값 쌍으로 이루어져 있어 데이터 크기가 작습니다.
  • 효율성: JavaScript와의 자연스러운 통합으로 인해 웹 애플리케이션에서 성능이 뛰어납니다.
  • 표준화된 형식: JSON의 구조는 일관성이 있으며, 다양한 언어와 플랫폼에서 쉽게 파싱 및 생성할 수 있습니다.


JSON의 단점

  • 데이터 타입 제한: JSON은 기본적으로 문자열, 숫자, 배열, 객체 등의 데이터 타입만 지원합니다. 복잡한 데이터 타입을 표현하는 데 한계가 있을 수 있습니다.
  • 주석을 지원하지 않는다. 그래서 설정 파일을 JSON으로 작성할 때 어려움이 있다


JSON 사용 사례

  • 웹 애플리케이션의 클라이언트-서버 간 데이터 전송
  • RESTful API의 데이터 포맷
  • 실시간 데이터 스트리밍

 

JSON 포맷 예시

{
  "name": "foktanma",
  "age": 30,
  "isStudent": false,
  "blog": ["hahahoho5915.tistory.com", "tistory.com"],
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "postalCode": "12345"
  }
}

2. XML (eXtensible Markup Language)

XML은 데이터를 구조화하고 저장하는 데 사용되는 유연한 마크업 언어입니다.

데이터의 의미를 명확히 표현할 수 있으며, 다양한 표준과 프로토콜에서 활용됩니다.


XML의 장점

  • 유연성: XML은 사용자 정의 태그를 사용할 수 있어 복잡한 데이터 구조를 표현하는 데 적합합니다.
  • 스키마 지원: XML Schema와 DTD(Document Type Definition)를 통해 데이터 구조를 정의하고 검증할 수 있습니다.
  • 호환성: 다양한 시스템과 프로토콜에서 XML을 지원합니다. 특히, SOAP 기반의 웹 서비스와의 호환성이 좋습니다.
  • 문서 중심: 데이터뿐만 아니라 문서의 의미와 구조를 함께 저장할 수 있어 문서 중심의 데이터 교환에 유리합니다.


XML의 단점

  • 무겁고 복잡함: XML은 태그를 많이 사용하기 때문에 데이터 크기가 크고, 파싱 속도가 느립니다.
  • 가독성 저하: 태그가 많아 사람이 읽기 어려울 수 있습니다. 특히, 복잡한 XML 문서에서는 가독성이 떨어집니다.
  • 성능: JSON에 비해 파싱 및 생성 속도가 느립니다.


XML 사용 사례

  • SOAP 웹 서비스
  • 설정 파일 (예: Maven POM 파일)
  • 문서 저장 및 전송 (예: SVG, RSS)

 

XML 포맷 예시

<Person>
  <Name>foktanma</Name>
  <Age>30</Age>
  <IsStudent>false</IsStudent>
  <Blogs>
    <Blog>hahahoho5915.tistory.com</Blog>
    <Blog>tistory.com</Blog>
  </Blogs>
  <Address>
    <Street>123 Main St</Street>
    <City>Anytown</City>
    <PostalCode>12345</PostalCode>
  </Address>
</Person>

JSON과 XML의 비교

항목 JSON XML
데이터 구조 키-값 쌍 태그 기반
가독성 높음 낮음
데이터 크기 작음
스키마 지원 없음 있음
파싱 속도 빠름 느림
사용 용이성 간편 복잡
표준 및 호환성 RESTful API, 웹 애플리케이션 SOAP, 다양한 프로토콜
문서화 제한적 문서 중심

정리

JSON과 XML은 각각의 장단점이 뚜렷하며, 특정 용도에 맞는 형식을 선택하는 것이 중요합니다.

JSON은 경량 데이터 교환과 웹 애플리케이션에 적합하며,

XML은 복잡한 데이터 구조와 문서 중심의 데이터를 처리하는 데 유리합니다.

데이터 교환 형식을 선택할 때는 프로젝트의 요구사항과 환경을 고려하여 최적의 형식을 선택하는 것이 필요합니다.