XML ( eXtensible Markup Language )
정의
HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)이며 데이터를 설명하는 태그(tag)를 사용자 마음대로 정의할 수 있는 확정성 있는 마크업 언어이다.
저장되는 데이터의 구조를 기술하기 위한 언어로 사람과 기계가 동시에 읽기 편한 구조로 구성되어 있다.
<cats>
<cat>
<name>루루</name>
<family>먼치킨<family>
<age>5</age>
<weight>2.7</weight>
</cat>
<cat>
<name>야통이</name>
<family>코리안숏헤어<family>
<age>4</age>
<weight>5</weight>
</cat>
</cats>
XML문서는 HTML문서처럼 트리(tree) 형태의 계층 구조를 갖는다.
문서당 하나뿐인 루트에서 시작하여 자식 요소에 연결되며 모든 요소는 자신만의 자식 요소를 가질 수 있다.
부모 요소는 여러 개의 자식 요소를 가질 수 있으나 자식 요소에게 부모는 하나 뿐이다.
같은 부모에서 뻗어져 나와 같은 트리 레벨에 존재하면 형제 요소라고 한다.

HTML과 뭐가 다를까?
- HTML이 Data를 "표현"하는데 포커스를 맞추고 있다면 XML은 Data를 "전달"하는데 포커스를 맞추고 있다.
- HTML은 약속된 태그를 사용하지만 XML은 tag가 정의 되어 있지 않아 확장성이 좋다.
그외의 XML 특징들
- XML은 데이터를 텍스트 형식으로 저장하여, 소프트웨어나 하드웨어에 독립적으로 데이터를 저장, 전달 가능하다.
- 텍스트 형식이기 때문에 운영체제, 프로그램, 브라우저 할 것 없이 모두에게 데이터 전달이 가능하다.
- XML은 데이터를 보여주지 않고, 오로지 데이터를 전달, 저장하는 것만을 목적으로 한다.
데이터를 보낼 때 사용하는 수단?
XML도 나름 HTML등의 언어를 극복하는 수단으로서 등장했으나 헤더와 태그등의 여러 요소들로 인해 가독성이 떨어지고 용량도 효율적이지 않다는 평가를 받게되어 이 문제점을 해결하고 보완하는 것이 나오게 된다.
그게 무엇일까?
현재의 우리가 프로젝트를 하면서 데이터를 보낼 때 사용하는 수단으로 무엇을 이용하고 있는가를 생각해보면 답이 나온다.
맞다. JSON을 이용하고 있다.
JSON은 XML과 뭐가 다를까?
- JSON은 종료 태그가 없다
- JSON의 구문이 XML 구문보다 짧다
- JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있다.
XML 문서는 XML DOM이라는 Document Object Model을 이용해 해당 문서에 접근하지만 JSON은 문자열을 전송 받은 후 해당 문자열을 바로 파싱하므로, XML보다 속도 처리가 빠르다.
- XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있다.
{
"name": "야통이",
"family": "코리안숏헤어",
"age": 4,
"weight": 5
}
그럼 이제 XML 안 쓰나?
그렇지 않다. JSON은 전송받은 데이터의 무결성을 사용자가 직접 검증해야 한다.
그래서 경우에 따라 데이터의 무결성을 검증을 미리 정해놔야할 필요가 있는 경우가 있는데 이때 스키마를 사용해 무결성을 검증할 수 있는 XML을 많이 사용하고 있고 아직도 W3C (World Wide Web Consortium) 에서의 권고안으로 XML이 정해져있기에 다양하게 사용되고 있고, 이를 기반으로 한 또 다른 기술들도 많다.
XHTML, MathML, SVG, XUL, RDF 등

RSS ( Rich Site Summary ) : 블로그처럼 컨텐츠 업데이트가 자주 일어나는 웹사이트에서 업데이트 정보를 쉽게 구독자에게 제공하기 위해 XML을 기초로 만들어진 데이터 형식
'Computer Science > Web' 카테고리의 다른 글
| HTTP 웹 지식 - URI와 웹 브라우저 요청 흐름 (0) | 2023.03.06 |
|---|---|
| HTTP 웹 지식 - 인터넷 네트워크 (0) | 2023.03.06 |
| HTTPS (0) | 2023.01.14 |
| OAuth 2.0 (2) | 2022.12.15 |
| 인증 / 인가 / 쿠키-세션 인증 / JWT 인증 간단개념 (0) | 2022.12.03 |
