CS 정리

XML: Extensible Markup Language

꼬드리 2024. 1. 4. 17:54

 

XML이란 마크업 형태를 쓰는 데이터 교환 방식이다.

 

마크업 언어는 '태그 등을 이용하여, 문서나 데이터의 구조를 나타내는 언어의 한 방식'을 뜻하는데, 흔히 보는 html 코드도 대표적으로 마크업 형태를 띠고 있다. 

<div>여기가 구조입니다.</div>

 

 

🚩XML의 구성

1) version, encoding을 나타내는 첫번째 줄

2) 단 하나의 루트 요소. 문서의 최상위 요소를 의미하며, 하나의 XML문서는 하나의 루트 요소만을 가진다.

3) 하위 요소들

<?xml version="1.0" encoding="UTF-8" ?>
<MusicBox>
 <musicInfo>Clasic</musicInfo>
 <musicList>8track</musicList>
</MusicBox>

 

 

🚩HTML과 XML의 차이는?

1) XML은 태그가 정해져 있지 않아 개인이 원하는 모양으로 커스텀하여 만들 수 있다. 반대로 HTML은 쓸 수 있는 태그들이 미리 지정되어 있다. 

//XML은 하위와 같이 원하는 대로 태그를 디자인 할 수 있다.
<My_Music>라흐마니노프 3악장</My_Music>

//HTML은 사전에 정해진 태그만 사용해야 한다.
<h1>나의 노래는</h1>

 

2) HTML의 용도는 데이터를 표시함이고, XML은 보통 데이터를 저장 및 전송하는 용도로 쓰인다.

 

3) HTML은 태그 내 대소문자 구분을 하지 않지만 XML은 태그 내 대소문자를 칼같이 구분한다. 반드시 앞뒤 태그가 똑같은 모양을 하고 있어야 한다.

<div>html은 이런 태그도 가능합니다.</Div>

<box>XML일 시, 앞뒤 태그의 대소문자가 다르면 오류가 발생합니다.</BOX>

 

 

🚩JSON과 XML의 차이는?

두 파일 모두 데이터 교환에 사용되는 데이터 표현이라는 공통점을 갖지만 현재로서는 JSON이 조금 더 새롭고 널리 사용되는 데이터 직렬화 형식으로 여겨진다. 

 

- XML은 마크업 형태로 트리 패턴을 사용하기 때문에 앞뒤로 닫힌 태그가 여럿 들어가야 한다. 따라서 단순 키-값 쌍으로 이루어진 JSON보다 코드가 더 길고 무겁다. 

- 제공하는 데이터를 JS에서 사용하고 싶을 때, 데이터를 JS 객체로 변환하기 위해(역직렬화!) JSON보다 XML파일에 더 많은 노력이 들어간다. JSON은 자바 스크립트 내부에서 제공한 JSON.parse()만 사용하면 되는데 XML은 다른 사람이 만든 라이브러리를 가져와서 분석해야 된다. 자연히 복잡해질 수 밖에...

- JSON이 XML보다 보안에 안전하다고 한다.

 

 

그렇다면 XML파일은 어디에 주로 사용될까.

- sitemap.xml로 사용된다. 어떠한 웹서비스를 만들 때에는 사이트맵 XML이라는 것을 제출해야 한다. 검색 엔진에 쉽게 사이트 데이터가 서치되기 위해서라고 볼 수 있겠다. 

- 일반적으로 JSON은 API에 적합하며 XML은 복잡한 문서 구조에 더 적합하다고 한다.

 


 

가끔 프로젝트에서 데이터 API를 사용하려 공공 사이트를 둘러보다 보면, 최신 업데이트가 완료된 데이터는 JSON 파일이 올라와있지만 오래된 데이터는 XML파일인 경우가 있었다. (그래서 한때는 원하는 파일이 JSON인데 XML파일만 잔뜩 나와서 좌절하기도 ...) 전에는 실습을 위해 데이터 파일들을 사용하면서 JSON과 XML의 차이가 와닿지 않아 XML이 옛날 양식이고 더 다루기 까다롭다, 라는 의견만 갖고 있었다. 이제는 두 데이터 교환 양식의 차이를 알게 되었으니 필요한 상황에서는 XML도 두려워하지 않고 다룰 수 있을 것 같다.

 

 

참고: 

https://aws.amazon.com/ko/compare/the-difference-between-json-xml/