XML vs JSON

hwstar·2024년 8월 16일

다양한 애플리케이션, 플랫폼이나 시스템간에 통신하여 데이터를 교환할때 많이 사용되는 형식이 있다.

예전에는 XML 형식을 사용했지만 요새는 JSON 형식을 주로 사용하는것 같다.

먼저 시스템간 데이터 교환형식이 왜 필요한지 알아본 후

두 형식의 차이점 , 장단점을 비교해보며

이 중에 왜 JSON이 주로 많이 사용되고 있는지에 대해 알아보고자 작성해보았다.

데이터 교환 형식이 필요한 이유

서로 다른 프로그래밍 언어와 플랫폼에서 실행되는 어플리케이션끼리 데이터를 주고받을때 표준화된 형식이 없다면 데이터를 전송받는 입장에서 일관되게 데이터를 파싱하기도 힘들고 데이터 교환시 호환성 오류가 날 가능성도 생기게된다.

개발자와 사용자가 어떤 시스템을 사용하는지에 따라 각 교환마다 데이터 형식과 구조를 문서화하고 이해해야하는 추가적인 노력도 들어갈것이다.

또한 데이터의 크기가 커지면 속도가 저하될 수 있는 비효율성이 발생하거나 시스템간에 통합이 어려워서 상호 운용성이 떨어질 수 있다.

결국 데이터 교환의 신뢰성, 정확성이 떨어지게 되고 여러 시스템간에 데이터 처리와 통합이 복잡해지게된다.

ex) JAVA는 데이터 객체를 사용하고, Python은 딕셔너리를 사용해서 데이터를 표현하는데 두 어플리케이션간에 데이터를 교환하려면 교환 형식이 필요하다.

표준화된 형식을 사용하게 되면 어떤 장점을 갖을까?

위의 내용과 반대 내용이 주로 장점을 이룬다.

  1. 다양한 시스템간에 호환성이 높아짐
  2. 데이터의 구조화가 명확해져 가독성이 높아지고 유지보수, 디버깅 및 테스트에 이점
  3. 웹 API를 제공하면 사용자는 쉽게 파싱해서 사용할 수 있게된다.
  4. 데이터 교환시 네트워크 대역폭을 절약하고 파싱 속도 증가

데이터를 전송하는 입장에서도 어떤식으로 해야 더 효율적으로 전송할 수 있을지 고민할 필요 없이 표준화된 데이터 교환 형식을 사용하여 전송하면 되기도 하다.

XML (eXtensible Markup Langauge)

💡 HTML의 한계점을 극복하기 위해 만들어졌으며, 데이터 저장, 전달 목적으로만 만들어졌다.
데이터의 구조와 의미를 정의하는 마크업 언어이며 데이터를 계층(트리)적으로 표현한다.

<guests>
  <guest>
    <firstName>John</firstName> <lastName>Doe</lastName>
  </guest>
  <guest>
    <firstName>María</firstName> <lastName>García</lastName>
  </guest>
</guests>

구조 : XML 기본 문법, 태그, 속성 등

장점

  • 서로 다른 플랫폼간 데이터 교환이 가능하다.
  • 사용자 정의 태그를 만들어 사용 가능하여 확장성이 좋음

단점

  • 태그가 많아서 복잡하며 용량이 늘어난다. → 응답시간과 파싱시간이 느려진다.

JSON (JavaScript Object Notation)

💡 XML의 비효율적인 용량과 호환성 및 가독성을 개선하기위해 나온 데이터 교환 형식
JavaScript 객체 표기법을 기반으로 한 데이터 형식으로 키-값 쌍으로 표현한다.

{"guests":[
  { "firstName":"John", "lastName":"Doe" },
  { "firstName":"María", "lastName":"García" },
]}

구조 : 객체와 배열, 키-값 쌍 등

장점

  • 구문이 매우 간결하여 가독성이 좋다.
  • 읽고 쓰기가 더 쉽고 파일의 크기가 작다.
  • JavaScript와의 호환성으로 쉽게 파싱이 가능하다.
  • 다양한 프로그래밍 언어와 플랫폼에서 지원하여 웹 앱에서 사용하기 좋다.

단점

  • 복잡한 데이터 유형은 지원하지 않는다. ( ex: 날짜, 사용자 정의 데이터 타입, 복잡한 구조)
  • XML에 비해 표준화가 부족함
  • UTF-8 인코딩만 지원한다.

JSON이 인기를 끄는 이유

클라이언트, 서버모두 JavaScript를 사용하면서 JSON 직렬화 개체로 네이티브 매핑이 가능하다. (AJAX)

XML은 더 많은 데이터 유형을 지원하지만 그만큼 엄격함이 뒤따른다.

애자일 방법론에 적용할때 JSON은 XML에 비해 빠르게 작성이 가능하며 새로운 데이터 요소를 추가하는 등 유연함이 있어 애자일과 잘 어울린다.


그렇지만 XML도 아직 많이 사용되고 있다.

가장 큰 이유중 하나는 XML은 엄격하게 데이터 무결성을 검증하여 보장해주지만 JSON은 사용자가 직접 데이터 무결성을 검증해야한다.

그리고 JSON은 메타 데이터를 포함하지 않아서 큰 데이터를 읽을 때 데이터의 의미와 구조에 대해 이해하기 힘들어진다. 문서와 같은 대용량 파일들을 전송할때는 메타 데이터를 포함하는 XML을 사용하기도 한다.

JSON의 간결성과 효율성 덕분에 요즘 웹 애플리케이션에서는 많이 사용되지만, XML의 강력한 데이터 무결성과 구조적 특성 역시 여전히 유용하다.

참고 자료

https://aws.amazon.com/ko/compare/the-difference-between-json-xml/
https://ujeon.medium.com/xml-xml과-json은-어떤-차이가-있나요-a9e50141640
https://www.coovil.net/xml-vs-json/
https://12bme.tistory.com/202
https://velog.io/@cil05265/XML과-JSON의-특징-공통점-차이점

0개의 댓글