컴퓨터/컴퓨터 관련 지식

파일포맷 - XML과 JSON에 대하여 알아보자.

달서비 2023. 4. 1. 17:17

이전에, 블로그에 XMLHttpRequest 객체에 대하여 작성한 적이 있었습니다. XML 파일을 이용하여 데이터를 받았습니다. XML만큼 전송에서 많이 쓰는 JSON 파일도 있습니다. 두 가지 문법과 방식에 차이에 대하여 알아보도록 하겠습니다.

website - pixabay

 

XML (eXtensible Markup Language)

<family>
  <member>
    <firstName>Kim</firstName>
    <lastName>Narae</lastName>
  </member>
  <member>
    <firstName>Lee/firstName>
    <lastName>Ujin</lastName>
  </member>
  <member>
    <firstName>Kim</firstName>
    <lastName>Daewu</lastName>
  </member>
</family>

XML은 데이터를 저장하고 전달하기 위해 만들어졌으며 저장되는 데이터의 구조를 표현하기 위한 언어입니다.

HTML의 문법과 매우 비슷한 마크업 언어입니다. HTML과 차이점은 XML태그는 HTML태그와 같이 미리 정의 되어있지 않으며 사용자가 직접 정의할 수 있습니다. 이것은 좋은 확장성을 보입니다. 데이터를 보여주는 목적이 아닌 데이터를 전달하는 목적으로 사용할수 있습니다.

 

XML 사용 예시 - XHTML, SVG, RSS, RDF

 

JSON (JavaScript Object Notation)

{"member":[
  { "firstName":"Kim", "lastName":"Narae" },
  { "firstName":"Lee", "lastName":"Ujin" },
  { "firstName":"Kim", "lastName":"Daewu" }
]}

JSON은 데이터를 쉽게 전송하고 저장하기 위해 구현된 텍스트 기반의 전송방식입니다.

텍스트 기반이기 떄문에 어떠한 프로그래밍 언어에서도 데이터를 사용할 수 있습니다. JSON은 XML의 대안으로서 데이터를 쉽게 교환하고 저장하기 위해 고안되었습니다. JSON은 자바스크립트를 확장하여 만들어졌으며 자바스크립트의 객체 표기방식을 따라갑니다. 

 

두 포맷의 공통점 차이점

우선 XML과 JSON의 공통점은 다음과 같습니다.

  • 데이터를 저장 및 전달을 위해 고안된 포맷입니다.
  • 기계뿐만 아니라 사람도 쉽게 읽을 수 있습니다.
  • 계층적인 데이터 구조를 가집니다.
  • 다양한 프로그래밍 언어를 통하여 파싱될 수 있다.

XML과 JSON의 차이점은 표로 정리 해보았습니다.

  XML JSON
인코딩 다양한 인코딩 형식 지원 UTF-8
안정성 ▲ (비교적 높다) ▼ (비교적 낮다)
읽기/쓰기 속도 ▼ (빠르다) ▲ (느리다)
구문 길이 ▼ (길다) ▲ (짧다)
파싱 XML DOM객체로 파싱
(속도 ▼)
eval()함수로 파싱
(속도 ▲)
네임 스페이스 지원 여부 O (확장성 ▲) X (확장성)
배열 제공여부 X O
데이터 표시 지원 여부 O X
종료태그 사용여부 O X

 

두 포맷의 차이에 대해 무엇이 더 좋다라는 생각도 좋지만 상황에 따라 더 장점이 있는 것을 선택한다. 이런느낌으로 보시면 좋을 것 같습니다.