XML이 여전히 쓰이는 이유: 구조화 데이터 교환의 표준 스택
전자상거래·B2B·문서 퍼블리싱에서 XML이 데이터를 구조화·검증·변환하는 표준 스택(DTD/XSD·XPath·XSLT·Binary XML)을 실무 관점에서 정리한다.
2026-08-12 · 최초 발행 2025-11-26
왜 HTML도 SGML도 아닌 XML이었나
전자상거래가 확산되던 시기, 웹은 두 가지 극단 사이에서 곤란을 겪고 있었다. HTML은 표현 중심이라 구조화된 데이터를 담기 어려웠고, SGML은 유연하지만 과도하게 복잡해 범용으로 쓰기 힘들었다. XML(eXtensible Markup Language)은 그 사이에서 나온 절충이다 — 사용자가 도메인에 맞는 태그를 직접 설계하는 메타언어이면서도, 유니코드 기반 국제화와 엄격한 문서 구조·검증 메커니즘을 함께 제공한다.
XML을 뼈대로 표준 스택이 갈라져 나갔다. 문서 구조를 정의하는 DTD와 XML Schema, 탐색·질의를 맡는 XPath와 XQuery, 링크를 다루는 XLink·XPointer, 변환을 담당하는 XSLT, 분석 방식인 DOM과 SAX, 성능을 위한 Binary XML까지 — 이 스택 전체가 XML이라는 이름 아래 묶여 있다.
DTD에서 XML Schema로
문서 구조를 정의하는 방법은 두 가지다. DTD(Data Type Definition)는 요소·속성·순서를 정의하지만 데이터 타입 표현력이 제한적이고 네임스페이스·유니코드 처리에 약하다. XML Schema(XSD)는 데이터형·범위·패턴 제약, 네임스페이스, 다중 스키마 조합까지 지원해 DTD보다 기계 검증성과 호환성이 앞서고, 사실상 표준 자리를 차지하고 있다.
문서를 잇는 링크와 찾아내는 질의
XLL(eXtensible Linking Language)은 XLink로 하이퍼링크 메타데이터를, XPointer로 문서 내 위치 지정을 담당해 다중·쌍방향·동적 링크를 구현한다. 분산된 문서 집합을 정밀하게 참조해야 할 때 쓴다. XPath(XML Path Language)는 노드 셀렉션과 논리·비교·산술 연산을 지원하며, DOM이나 SAX 기반 처리와 결합해 부분 추출·검증·라우팅을 구현하는 데 쓰인다.
데이터를 꺼내고 형태를 바꾸는 XQuery·XSLT
XQuery는 XML 데이터베이스를 위한 질의 언어로, FLWOR(for, let, where, order by, return) 문법으로 조인·집계·구조 변환을 수행한다. XSLT는 규칙 기반 트랜스폼으로 XML을 HTML·PDF·다른 XML로 바꾸는 파이프라인을 구성하며 템플릿 매칭과 XPath를 결합해 동작한다. 초기 질의 시도였던 XQL은 지금은 XQuery·XPath 중심으로 표준화된 상태다(최신 정보는 별도 확인이 필요하다).
텍스트를 버리고 바이너리로: Binary XML
텍스트 XML을 바이너리로 인코딩하면 크기와 파싱 비용을 줄일 수 있다. Fast Infoset(FI, 국제표준)이 대표적이다. 크기가 30~70% 줄고 파싱 성능이 향상된 사례가 다수 보고되지만, 텍스트 가독성을 잃고 일반 XML 도구와 직접 호환되지 않아 역직렬화가 필요하며, 형식 간 표준 상호운용성도 별도로 검토해야 한다.
DOM과 SAX, 분석 방식의 갈래
DOM은 전체 문서를 메모리 객체 모델로 올려 임의 접근·수정·복잡한 XPath/XQuery 처리에 유리하지만, 메모리 사용량이 크고 대용량 문서에서는 GC 압박과 지연이 발생할 수 있어 부분 처리에는 비효율적이다. SAX는 이벤트 기반 스트리밍 파싱으로 순차 처리하며 저메모리·고처리량 파이프라인에 맞지만, 상태 관리와 문맥 처리가 복잡하고 임의 접근이 불가능해 복합 변환에는 추가 버퍼링이나 인덱스가 필요하다.
처리 파이프라인이 흘러가는 경로
입력이 텍스트든 Binary XML(FI)이든 우선 텍스트 XML로 복원한 뒤 유효성 검사를 거친다. DTD·XSD 검증에 실패하면 ValidationError를 로깅하고 리젝트한다. 검증을 통과하면 파싱 방식을 고르는데, DOM이면 전체 트리를 빌드하고 SAX면 스트리밍 이벤트로 처리한다. 이후 XPath·XQuery로 질의·탐색하고, XSLT 변환을 거쳐 HTML·PDF·다른 XML로 출력하거나 API 호출·DB 적재로 애플리케이션에 통합한다. DOM 파싱이 실패하면 ParseError로 복구·중단하고, SAX 이벤트 처리 중 오류가 나면 재시도하거나 대기열로 옮긴다.
XML·HTML·SGML, 무엇이 다른가
| 지표 | XML | HTML | SGML |
|---|---|---|---|
| 확장성 | 사용자 정의 태그·스키마로 무제한 확장 | 한정된 태그, 의미 확장 어려움 | 매우 유연하나 과도한 복잡성 |
| 일관성(정형성) | 엄격한 구문·검증(예측 가능) | 관대 파서, 문법 느슨 | 포멀하지만 구현 난이도 높음 |
| 안정성/상호운용 | 표준 파서·API 풍부, 문서 교환 표준 | 브라우저 중심, 데이터 교환 부적합 | 도구·벤더 호환성 낮음 |
| 성능(처리/전송) | 텍스트 오버헤드 존재, Binary XML로 보완 | 표현 최적화, 데이터 처리 비적합 | 처리 비용·구현 복잡도 큼 |
| 운영 편의 | 스키마·검증·변환 파이프라인 성숙 | 콘텐츠 렌더링 편의 위주 | 운영·교육·도구 비용 큼 |
실무에서 어디에 쓰이는가
전자상거래 카탈로그·피드는 공급사 XML 스키마를 공유하고 스키마 검증을 거친 뒤 XSLT로 검색·표시용으로 변환해 가격·재고를 배치 적재한다. 신규 입점 연동 기간을 줄이고 데이터 품질을 끌어올리는 효과가 있다.
B2B 통합·메시징(ESB, SOAP)은 WSDL 계약을 기반으로 SOAP XML을 교환하고 스키마 검증 후 XQuery로 변환해 트랜잭션 적재까지 이어진다. 계약 기반으로 버전을 관리하고 롤백하기 쉽다.
구성·정책 관리는 애플리케이션 설정을 XML로 선언하고 XSD로 제약한 뒤 CI 파이프라인에서 검증해 배포한다. 배포 실패율이 줄고 설정이 표준화된다.
문서 퍼블리싱(DITA/DocBook)은 구조화 작성 후 XLink로 링크·레퍼런스를 재사용하고 XSL-FO로 변환해 PDF와 웹을 동시에 출판한다. 콘텐츠 재사용률이 오르고 다중 채널 일관성이 확보된다.
디지털 아카이빙·메타데이터(METS, MODS)는 메타데이터를 수집·검증한 뒤 XPath로 색인하고 OAI-PMH로 교환한다. 검색 정밀도와 재현율이 개선된다.
서명하고 암호화하는 법
XML 전자서명(XML Signature)은 Canonicalization → Digest → Signature 생성 과정을 거치며 부분 서명도 지원한다. 다만 성능 오버헤드가 있어 참조 무결성 공격에 대비해 엄격한 C14N·참조 검증이 필요하다. XML 암호화(XML Encryption)는 요소 단위 대칭키 암호화와 키 전송(비대칭)을 조합하는데, 스트리밍 처리가 복잡해지므로 선택적 암호화 정책을 관리해야 한다. XKMS는 키 등록·검증을 위임하는 프로토콜로 PKI 연동을 간소화하지만 신뢰 앵커 운영 정책이 필수다. SAML은 인증·권한 위임 토큰을 교환하고 XACML은 정책 기반 접근제어를 평가하며, 둘 다 서명·암호화와 결합하고 재플레이 방지, 타임스탬프·Audience 제한을 적용하는 게 모범사례다.
운영에서 부딪히는 트레이드오프
스키마 관리는 버전 전략(호환/비호환), 네임스페이스 고정, 아티팩트 레지스트리 운영이 축이다. 강제 검증으로 품질을 담보할수록 릴리즈 민첩성은 떨어지는 트레이드오프가 있다. 파서 선택은 대용량·스트리밍이면 SAX/StAX, 복합 변환이면 DOM을 우선하고 메모리·지연 목표에 따라 혼합 전략을 쓴다. 성능 최적화는 HTTP gzip 압축과 Binary XML(FI)을 선택적으로 적용하되 네트워크·CPU 프로파일링으로 임계점을 확인해야 한다. 관측 가능성 측면에서는 스키마 검증률, 파싱 실패율, 변환 소요시간, 큐 체류시간을 지표화하고 에러 샘플링·리플레이 샌드박스를 운영하는 게 좋다.
숫자로 보는 효과
스키마 기반 검증을 도입하면 인터페이스 오류가 3060% 줄어드는 편이다(현업 사례 범위). Fast Infoset을 적용하면 페이로드 크기가 3070% 감소하고 파싱 시간이 20~50% 단축되며(워크로드 의존), 스트리밍 파서로 전환하면 피크 메모리 사용을 60% 이상 줄일 수 있다. 정성적으로는 계약(스키마) 기반 협업 문화가 정착돼 변경 영향 범위를 예측하기 쉬워지고, 문서 재사용과 표준 파이프라인으로 유지보수성과 감사 추적성도 강화된다.
표준 스택을 어떻게 조합할 것인가
XML은 구조화·검증·변환·보안까지 아우르는 완성형 문서·데이터 교환 생태계로, 전자상거래·B2B·퍼블리싱·아카이빙 등에서 여전히 핵심 역할을 한다. 도입할 때는 스키마 우선 설계, 스트리밍·DOM 혼합 파서 전략, XSLT/XQuery 기반 표준 파이프라인, 보안(서명/암호화) 내재화를 권장하며, 성능 요구가 있다면 Binary XML·압축·캐싱을 선택적으로 병행하면 된다.