XML이란 무엇이고 어떻게 동작하나
업데이트 2026-07-06
XML은 웹의 데이터 포맷으로서 JSON보다 앞서며, 지금도 엄청난 양의 소프트웨어 아래에서 조용히 돌아갑니다 — 오피스 문서, RSS 피드, SVG 이미지, 사이트맵, 그리고 수많은 엔터프라이즈 시스템. 태그와 꺾쇠괄호가 겁나 보인다면, 이 가이드가 XML을 정말 중요한 몇 가지 규칙으로 분해해 드립니다.
XML이란
XML(eXtensible Markup Language)은 태그를 사용해 구조화된 데이터를 저장하는 텍스트 포맷입니다. HTML과 달리 미리 정의된 태그가 없습니다 — 자신의 데이터를 설명하는 엘리먼트 이름을 직접 지어내며, 그것이 바로 “확장 가능(extensible)”이 뜻하는 바입니다.
<book id="42"> <title>The Pragmatic Programmer</title> <author>Hunt</author> <price currency="USD">39.99</price> </book>
구성 요소
- 엘리먼트 — 여는 태그, 내용, 그리고 짝이 맞는 닫는 태그:
<title>…</title>. - 속성 — 여는 태그에 붙는 이름/값 쌍, 따옴표로 감쌈:
id="42". - 중첩 — 엘리먼트가 다른 엘리먼트를 담아, 맨 위에 하나의 루트 엘리먼트를 둔 트리를 이룹니다.
- 빈 엘리먼트 — 스스로 닫을 수 있습니다:
<br />.
well-formed XML
XML은 규칙이 엄격합니다. 어기면 파서가 문서 전체를 거부합니다. “well-formed(정상 형식)”이 되려면:
- 모든 여는 태그에 짝이 맞는 닫는 태그가 있어야 합니다.
- 태그는 올바르게 중첩됩니다(겹침 금지).
- 루트 엘리먼트는 정확히 하나입니다.
- 속성 값은 항상 따옴표로 감쌉니다.
- 다섯 개의 특수 문자는 이스케이프합니다(아래 참고).
특수 문자 이스케이프
<와 &는 구조적 의미를 가지므로, 문자 그대로의 것은 엔티티로 써야 합니다: <, >, &, ", ' — HTML 엔티티와 같은 발상입니다.
XML vs. HTML vs. JSON
- vs. HTML: HTML은 웹 페이지를 표시하기 위한 고정된 태그 집합을 가집니다. XML은 데이터를 설명하기 위해 자신의 태그를 정의하게 해 줍니다. 또한 HTML은 더 관대하지만 XML은 엄격합니다.
- vs. JSON: JSON은 더 가볍고 이제 웹 API를 장악했습니다. XML은 더 장황하지만 속성·주석·네임스페이스·스키마 검증을 지원하며, 그래서 문서와 엔터프라이즈 시스템에서 살아남습니다.
빽빽한 XML 파일을 깔끔하게 정리하고 well-formed인지 확인하려면 XML 포매터에 통과시키세요. HTML로 작업 중인가요? HTML 포매터가 마크업에 대해 같은 일을 합니다.
데이터 포맷 & 인코딩 더 보기
데이터 포맷 & 인코딩 가이드 전체 보기 →이 가이드에서 언급한 도구