✒️ 0. 들어가기 전
이전 포스팅인 JSON은 읽고 와주세요!
✒️ 1. 마크업(MarkUp) 형태
XML(Extensible Markup Language)은 데이터를 구조화하고 저장하는 강력한 마크업 언어이다.
💡 MarkUp 형태
마크업(markup)는 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법이다. (속성부여도 가능)
XML 또한 태그를 이용해 문서나 데이터의 구조를 나타낸다.
이 태그들은 속성을 가질 수 있어, 더 상세한 정보 표현이 가능하다.
💡 구성 요소
프롤로그: XML 버전과 인코딩 정보를 포함한다.
루트 요소: 문서에 단 하나만 존재해야 한다.
하위 요소들: 계층적 구조를 형성한다.
<?xml version="1.0" encoding="UTF-8"?>
<도서관>
<책>
<제목>해리 포터와 마법사의 돌</제목>
<저자>J.K. 롤링</저자>
<출판년도>1997</출판년도>
<장르>판타지</장르>
</책>
<책>
<제목>1984</제목>
<저자>조지 오웰</저자>
<출판년도>1949</출판년도>
<장르>디스토피아</장르>
</책>
</도서관>
✒️ 2. XML vs HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p></p>
<div></div>
</body>
</html>
HTML과 유사한 태그 기반 구문을 사용한다!
허나, 그 목적과 유연성에서 큰 차이가 있다.
1. 용도: HTML은 데이터를 표시하는 데 사용되지만, XML은 데이터를 저장하고 전송하는 데 사용된다.
2. 태그: HTML은 미리 정의된 태그를 사용하지만, XML에서는 사용자가 고유한 태그를 만들고 정의할 수 있다.
3. 대소문자 구분: XML은 태그의 대소문자를 구분하지만, HTML은 구분하지 않는다.
일단 XML에서 가장 눈에 띄는 특징은 2번, 사용자 정의 태그를 사용할 수 있다는 점이다.
사용자가 직접 태그를 정의할 수 있다는 것!
✒️ 3. XML vs JSON
JSON 예시는 전 포스팅에서 많이 봤으니 생략하겠다.
1. 크기: XML은 닫힌 태그가 필요하여, JSON보다 파일 크기가 크다.
2. 파싱: JSON은 JavaScript Object로의 변환이 간단하지만(JSON.parse()), XML은 추가적인 파싱 과정이 필요하다.
(JavaScript Object로 변환하는 데 조금 까다롭다.)
예를 들어, Node.js에서는 'xml2json' 같은 라이브러리를 사용해 XML을 JSON으로 변환할 수 있다.
✒️ 4. 실제 활용
xml 을 가장 흔히 볼 수 있는 이름의 파일은 "sitemap.xml"일 것이다.
(티스토리 운영해봤으면 알 듯!?)
이는 웹사이트의 모든 페이지를 리스트업한 파일로, 검색 엔진 크롤러가 사이트의 구조를 이해하는 데 도움을 준다.
사이트가 매우 크거나 서로 링크가 종속적으로 연결되지 않은 경우 크롤러가 일부 페이지를 누락하는 일이 있는데,
이를 sitemap.xml이 방지하고 모든 페이지들을 크롤링할 수 있도록 해준다.
📝 면접 예상 질문
XML이란 무엇이며 주로 어디에 사용되나요?
XML과 HTML의 차이점은 무엇인가요?
XML과 JSON의 차이점은 무엇인가요?