XML

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:05 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

📄 XML (eXtensible Markup Language)

XML은 데이터를 저장하고 전달하기 위해 설계된 마크업 언어입니다. HTML처럼 미리 정해진 태그를 사용하는 것이 아니라, 사용자가 직접 태그를 정의하여 데이터의 구조를 표현할 수 있다는 특징이 있습니다. 이름의 'eXtensible(확장 가능한)'이 바로 이 특징을 의미합니다.

과거에는 웹 서비스 간의 데이터 교환 형식으로 널리 사용되었으나, 현재는 많은 경우 더 가볍고 간결한 JSON으로 대체되었습니다.


🧐 XML의 기본 구조

XML 문서는 최상위 루트(root) 요소를 하나만 가지며, 모든 요소는 시작 태그와 종료 태그로 구성됩니다.

```xml <?xml version="1.0" encoding="UTF-8"?> <person>

   <name>홍길동</name>
   <age>30</age>
   <isStudent>false</isStudent>

</person> ```

  • 엄격한 문법 : 모든 태그는 반드시 닫혀야 하고, 태그의 대소문자를 구분하는 등 매우 엄격한 규칙을 가집니다.
  • 스키마(Schema) : DTD나 XSD와 같은 스키마를 사용하여 문서의 구조와 데이터 타입을 사전에 정의하고 검증할 수 있습니다.

💡 XML의 현재 사용처

JSON의 인기에 밀려 예전만큼 많이 사용되지는 않지만, 여전히 특정 분야에서는 중요한 역할을 하고 있습니다.

  • 설정 파일 (Configuration) : Java 기반의 레거시 프레임워크(Spring, Struts 등)나 안드로이드 앱의 설정 파일에서 널리 사용됩니다.
  • 문서 형식 : 다른 마크업 언어의 기반이 됩니다. (예: XHTML, SVG)
  • 데이터 교환 : 복잡한 계층 구조를 가진 데이터를 명확하게 표현하거나, 엄격한 데이터 유효성 검증이 필요한 기업 간(B2B) 데이터 교환에 사용되기도 합니다.

💡 개발자 핵심 Point

  • XML은 데이터의 구조를 명확하게 표현하고, 그 구조의 유효성을 검증하는 데 강점을 가집니다.
  • 현대적인 웹 API 개발에서는 대부분 JSON을 사용하지만, 오래된 시스템을 유지보수하거나 특정 프레임워크(특히 Java/Spring)를 다룰 때 XML을 접하게 될 가능성이 높습니다.
  • XML 파싱(Parsing)은 DOM 파서와 SAX 파서 두 가지 방식이 대표적이며, 각각의 장단점을 이해해두면 좋습니다.