본문 바로가기
Back Side/etc

XML에 대한 모든 것 - 개념, JSON과의 비교 등

by developerBeluga 2022. 11. 7.
728x90
반응형

 

 

XML이란

'데이터 중심 애플리케이션 설계'를 읽던 중 아래와 같은 구절을 만났다.

문서는 보통 JSON, XML로 부호화된 단일 연속 문자열이나 JSON 또는 XML의 이진 변현으로 저장된다.

MongoDB를 쓰면서 JSON 형태로 데이터가 저장된다는 것을 알고 있었다. 

하지만 XML은 처음 들어보는 단어였다.

 

그렇다면 XML이라는 것은 무엇일까?

<?xml version="1.0" encoding="UTF-8" ?>
<CAT>
  <NAME>Izzy</NAME>
  <BREED>Siamese</BREED>
  <AGE>6</AGE>
  <ALTERED>yes</ALTERED>
  <DECLAWED>no</DECLAWED>
  <LICENSE>Izz138bod</LICENSE>
  <OWNER>Colin Wilcox</OWNER>
</CAT>

XML 코드를 처음 본 순간 HTML 파일의 태그와 비슷하다고 생각했다.

데이터 정의하는 규칙을 제공하는 마크업 언어이기 때문에 HTML이 생각나는 것은 당연한 것이다.

매우 규칙적이고 예측이 가능한 구조를 가지고 있다는 특징을 가지고 있다.

또한 새로운 태그를 만들어 추가하여 동작하기 때문에 확장성이 좋다는 장점을 가지고 있다.

단점으로는 그런 태그 사용으로 인해 구문 길이가 길다.

 

 

JSON과의 비교

XML은 JSON과 가장 많이 비교되는 문서다. 아래 예제만 보더라도 둘의 형식은 아예 다르다.

// JSON
{"employees":[
  { "firstName":"John", "lastName":"Doe" },
  { "firstName":"Anna", "lastName":"Smith" },
  { "firstName":"Peter", "lastName":"Jones" }
]}

// XML
<employees>
  <employee>
    <firstName>John</firstName> <lastName>Doe</lastName>
  </employee>
  <employee>
    <firstName>Anna</firstName> <lastName>Smith</lastName>
  </employee>
  <employee>
    <firstName>Peter</firstName> <lastName>Jones</lastName>
  </employee>
</employees>

JSOM의 특징은 아래와 같다.

1. 사용하기 쉽다.

2. 적은 메모리 공간을 사용하기 때문에 빠르다.

3. 맴핑을 생성하지 않아도 된다.

 

XML의 특징은 아래와 같다.

1. XML 태그는 사용자가 정의한다.

2. 구조화 된 형식을 가지고 있어 프로그램에서 읽고 쓰기 쉽다.

3. 데이터를 전달하도록 설계되어 있고 데이터를 표시할 수 없다.

 

성능적으로 어떤 형식이 더 좋은지 궁금하신 분들은 아래 포스팅을 읽어보시면 좋을 것 같습니다.

https://medium.com/hackernoon/xml-vs-json-shootout-which-should-i-use-in-sql-server-7eefa4dc7553

 

XML vs JSON Shootout: Which Should I Use in SQL Server?

Should you continue using XML or switch to JSON in SQL Server 2016?

medium.com

 

XML 형태의 문서를 사용할 때는?

현재 대부분의 문서 형태는 JSON인 경우가 많다.

그럼에도 XML을 쓴다고 한다면 각 데이터 모델마다 XML을 파싱하여 사용할 수 있다.

 

MySQL, MSSQL 등 조금만 검색해도 파싱하는 방법이 나온다.

하지만 여기에서도 궁금한 점은 바로 MongoDB다.

MongoDB는 데이터 포맷이 JSON이기 때문에 불가능하다고 생각했다.

 

찾아보니 역시나 xml을 사용하는 방법은 XML을 JSON으로 데이터를 변환하는 방법 밖에 없었다.

MongoDB를 사용할 때는 XML보다는 JSON을 고려하는게 나을 것 같다.

(MySQL 5.7.8부터 DBMS 차원에서 JSO 데이터를 지원한다.)

 

 

 

결론

XML을 처음 들어봐서 정리할겸 포스팅 해보았다.

알아보면 볼수록 어째서 XML을 듣지 못했는지 알 수 있었다 😅

 

 

출처:&nbsp;https://rion.io/2017/12/26/hello-xml-my-old-friend-ive-come-to-encode-you-again/

 

 

 

 

728x90
반응형

댓글