RUNWEBTOOLS
한국어
데이터 포맷 & 인코딩

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(정상 형식)”이 되려면:

  • 모든 여는 태그에 짝이 맞는 닫는 태그가 있어야 합니다.
  • 태그는 올바르게 중첩됩니다(겹침 금지).
  • 루트 엘리먼트는 정확히 하나입니다.
  • 속성 값은 항상 따옴표로 감쌉니다.
  • 다섯 개의 특수 문자는 이스케이프합니다(아래 참고).

특수 문자 이스케이프

<&는 구조적 의미를 가지므로, 문자 그대로의 것은 엔티티로 써야 합니다: &lt;, &gt;, &amp;, &quot;, &apos;HTML 엔티티와 같은 발상입니다.

XML vs. HTML vs. JSON

  • vs. HTML: HTML은 웹 페이지를 표시하기 위한 고정된 태그 집합을 가집니다. XML은 데이터를 설명하기 위해 자신의 태그를 정의하게 해 줍니다. 또한 HTML은 더 관대하지만 XML은 엄격합니다.
  • vs. JSON: JSON은 더 가볍고 이제 웹 API를 장악했습니다. XML은 더 장황하지만 속성·주석·네임스페이스·스키마 검증을 지원하며, 그래서 문서와 엔터프라이즈 시스템에서 살아남습니다.

빽빽한 XML 파일을 깔끔하게 정리하고 well-formed인지 확인하려면 XML 포매터에 통과시키세요. HTML로 작업 중인가요? HTML 포매터가 마크업에 대해 같은 일을 합니다.

데이터 포맷 & 인코딩 더 보기

데이터 포맷 & 인코딩 가이드 전체 보기 →

이 가이드에서 언급한 도구