컴퓨터 공학 & 통신

[개념 정리] XML

왈왈디 2023. 6. 27. 11:47
728x90

XML(Extensible Markup Language)란 JSON과 같이 데이터를 교환하는 형식이다.

 

이 중 마크업(markup)이란 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법이다.

 

구성

1. 프롤로그 - 버전, 인코딩

2. 루트 요소 (유일)

3. 하위 요소들

<?xml version="1.0" encoding="UTF-8"?> <!--프롤로그-->
<musicList> <!--루트 요소-->
    <music like="1"> <!--하위 요소들-->
    	<name>트레저</name><singer>브루노 마스</singer>
    </music>
    <music like="2">
    	<name>산타 텔미</name><singer>아리아나 그란데</singer>
    </music>
</musicList>

XML은 기본적인 정보를 명시하고 XML의 시작을 알리는 프롤로그

가장 바깥으로 감싸는 하나 뿐인 루트 요소

그 안에 다양하게 들어갈 수 있는 하위 요소들로 구성된다.

 

HTML과 XML

html과 xml은 형태가 유사하지만 아래와 같은 면에서 다르다.

 

1. HTML은 데이터를 표시하고 화면에 나타내는 용도,

    XML은 데이터를 저장하고 전송하는 용도

 

2. HTML은 미리 정의된 태그를 사용,

    XML은 사용자가 고유한 태그를 만들고 정의하여 사용 가능

 

3. XML은 대소문자를 구분함. HTML은 구분하지 않음.

    XML에서 열린 태그와 닫힌 태그의 대소문자를 일치시키지 않으면 오류 발생.

 

JSON과 XML

JSON과 XML은 둘 다 데이터를 교환하는 형식이라는 점에서 공통점이 있지만, 아래와 같은 차이점이 있다.

 

1. JSON과 비교하여 XML은 닫힌 태그가 계속해서 들어가야 하기 때문에 더 무겁다.

2. Javascript Object로 변환하는 데에 JSON.parse()만으로 변환 가능한 JSON에 비해 더 많은 노력이 들어간다.

 

활용

대표적으로 sitemap.xml에 사용된다.

sitemap.xml이란 특정 서비스 내 모든 페이지를 리스트업한 데이터로, search engine이 크롤링 시 사용된다.

 

SEO(Search Engine Optimization) 과정에서 페이지는 토큰으로 만들어 검색 서비스의 DB에 저장되는데, 이 때 특정 페이지에 종속되는 페이지는 크롤링봇(크롤러)에 의해 쉽게 저장되지만, 독립적인 페이지는 저장이 쉽지 않다.

 

이러한 독립적인 페이지를 DB에 저장하고 누락하지 않기 위해서 sitemap.xml 데이터를 제출 받는다.

sitemap.xml을 통해 모든 페이지를 크롤링 할 수 있게 된다.

 

참고: inflearn 강의 'CS 지식의 정석 - 큰돌'

728x90