XML

Yong Lee·2025년 9월 8일

XML(Extensible Markup Language)
마크업 형태를 쓰는 데이터 교환 형식

마크업 형태란?

태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법

//예시
<MusicList>
	<GD>
    	<name>삐딱하게</name>
    </GD>
</MusicList>

이처럼 <>태그 형태를 말함

XML의 구성 - 프롤로그, 루트요소, 하위요소

1. 프롤로그

  • xml의 버전
  • encoding
<?xml version="1.0" encoding="UTF-8"?>

루트요소

루트요소는 한개만 가능합니다.
사실상 xml에는 프롤로그와 루트요소 두개를 크게 가지고 있는 겁니다.
이 루트요소는 여러개의 하위 요소들을 가지고 있습니다.

하위요소

아래 xml 코드를 보면 MusicList는 루트요소가 되는 것이고
그 루트요소 안에 있는 모든 태그들은 하위요소로 생각하면 됩니다.

//예시
<?xml version="1.0" encoding="UTF-8"?>
<MusicList>
	<GD>
    	<name>삐딱하게</name>
    </GD>
</MusicList>

HTML vs XML

이 둘의 기본적으로 markup language이기 때문에 태그를 사용합니다.
하지만, 다른 점이라고 한다면 이 태그의 이름을 맘대로 정할 수 있냐 없냐인 것 같습니다.

<div>, <Header>, <Body>등 태그들이 친숙하고 익숙하게 느껴지신다면 HTML을 써보신 분일 겁니다.
HTML의 경우에는 정해진 태그가 존재하며 그 외의 이름으로는 태그를 생성할 수 없습니다.

반대로, XML의 경우에는 이런 태그 이름이 정해져있지 않습니다.
원하는 태그 이름을 사용할 수 있습니다.

HTML은 표현(뷰) 중심

  • HTML의 목적: 웹페이지에 표현하고 보여주기 위해 만들어졌습니다.
    • 웹 페이지를 만드는 입장에서는 정형화 되어야 브라우저 입장에서도 화면에 올바르게 렌더링 가능할 겁니다.

XML은 데이터 저장/교환 중심

  • XML의 목적: 기본적으로 XML은 저장하고 교환하기 위해 만들어졌습니다.
    • 어떤 프로젝트든 개발을 하다보면 원하는 데이터가 다를 수 밖에 없습니다. 프로젝트에 맞는 데이터를 가져오기 위해서 어울리는 네이밍으로 한다면 개발하는 입장에서 기억하기 쉽고 개발 속도도 증가하기 때문이라고 생각합니다.

대소문자 구분

  • HTML은 대/소문자를 구분 X.
// html
// 에러 없습니다.
<h1>hello</H1>
  • XML은 대/소문자를 구분 O.
// xml
// 에러 있어요.
<ost></Ost>

에러 내용 :
There are errors in your xml file: mismatched tag

JSON vs XML

뭐가 더 무겁지? XML > JSON

똑같은 데이터를 저장해도 JSON이 XML보다 조금 더 가볍습니다.
이유는 XML의 경우에는 태그를 열고<Open> 닫기</Close> 하면서 데이터를 저장합니다.

반면, JSON은 key: value 형태이기 때문에 들어가는 글자 수가 더 적습니다.

변환 방법

XML은 다른 언어로 변환하는데 더 많은 노력이 필요합니다.
JSON에서 역직렬화 과정은 변환하려는 언어에 내장된 JSON parse를 사용하면 됩니다.

하지만 XML의 경우에는 외부라이브러리를 로드하여 변환할 수 있습니다.
만약 외부 라이브러리가 없으면 직접 변환을 구현해야합니다.

비교표

항목XMLJSON
데이터 표현계층적, 복잡한 구조 표현 가능계층적 구조 표현 가능, 더 간결
가독성태그가 많아 복잡함깔끔하고 단순
파일 크기상대적으로 큼작음
스키마 지원매우 강력 (XSD)상대적으로 약함 (JSON Schema)
파싱 속도비교적 느림빠름
표준화오래된 산업 표준에서 강세최신 웹 서비스에서 강세
브라우저 지원HTML과 친밀JSON은 직접 렌더링 불가

XML 활용 및 왜 JSON으로 안 바꾸지?

1. sitemap.xml

  • 웹사이트의 모든 URL을 검색 엔진에 알려주는 파일
  • 구글, 네이버 같은 크롤러가 웹사이트 구조를 쉽게 파악하도록 도와줍니다.

이것의 목적은 SEO와 사이트 인덱싱 속도를 향상시키기 위한 것입니다.

2. 특정 산업 표준

  • 금융, 정부, 보험 등 수십 년간 XML 기반으로 설계되어 있어서 JSON으로 바꾸기 어려움

3. SVG

  • SVG는 웹 표준이며, JSON으로 변환하면 브라우저가 해석 못함
profile
오늘은 어떤 새로운 것이 나를 즐겁게 할까?

0개의 댓글