데이터를 표현하고 교환하기 위해 JSON이 널리 쓰이고 있지만, JSON과 비슷한 역사적 흐름을 갖고 있는 XML 또한 중요한 데이터 형식 중 하나입니다. 이번 글에서는 XML과 마크업(Markup)이란 무엇인지, 그리고 XML이 HTML, JSON과 어떤 점에서 다른지를 간단히 살펴보겠습니다.
마크업 언어란, 태그(Tag)를 사용하여 문서의 구조를 나타내는 언어입니다.
예시로 HTML과 XML이 대표적인 마크업 언어인데, 둘 다 열고 닫는 태그를 통해 데이터(혹은 문서)의 계층 구조를 표현합니다.
<p>안녕하세요</p><message>안녕하세요</message>XML 문서는 일반적으로 다음과 같은 요소들로 구성됩니다.
프롤로그 (Prologue)
<?xml version="1.0" encoding="UTF-8"?>
루트 요소 (Root Element)
<root>
...
</root>
하위 요소들 (Child Elements)
<root>
<child>내용</child>
<child>다른 내용</child>
</root>
| 항목 | HTML | XML |
|---|---|---|
| 주용도 | 데이터 표시(뷰) | 데이터 저장/전달(교환) |
| 태그 정의 | 미리 정의된 태그 사용 | 원하는대로 커스텀 가능 |
| 대소문자 | 대소문자 구분 X | 대소문자 구분 O |
| 유연성 | 구조가 고정적, 브라우저 렌더링 중심 | 구조가 자유롭고 유연함 |
HTML은 웹 페이지를 보여주기 위해 만들어졌지만, XML은 데이터를 저장하고 전송하기 위해 고안된 마크업 언어
표현 방식
{ "key": "value" } 형태의 키-값 쌍을 중심으로 표현<key>value</key> 형태의 태그 중심으로 표현무게감
{ }, [ ], , 등 최소한의 구문<태그></태그>로 감싸야 하므로 더 많은 텍스트가 필요 → 무겁다파싱(Parsing)
JSON.parse()로 자바스크립트 객체로 바로 변환 (내장)간단하고 빠른 데이터 전송이 필요한 경우 JSON이 더 선호되는 추세지만, 여전히 XML이 활용되는 영역이 존재합니다.
XML이 대표적으로 쓰이는 곳 중 하나가 사이트맵(Sitemap) 입니다. 사이트맵은 검색 엔진(구글, 네이버 등)에 내가 운영 중인 웹사이트의 페이지 구조를 알려 주는 용도로 사용됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
>
<url>
<loc>https://my-service.com/</loc>
<lastmod>2025-04-01</lastmod>
<priority>1.0</priority>
</url>
<url>
<loc>https://my-service.com/about</loc>
<lastmod>2025-03-28</lastmod>
<priority>0.8</priority>
</url>
</urlset>
XML과 JSON, HTML을 모두 이해하면 웹 전반의 기술 스택을 더 폭넓게 다룰 수 있게 됩니다. 앞으로도 각 기술을 현명하게 선택하여 프로젝트를 구성해보세요!