본문 바로가기
프로그래밍/IT지식

마크업 언어란? xml 파일이란?

by 준보틱스 2024. 6. 24.

마크업 언어(Markup Language)

마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다.
출처 : 위키백과

 

마크업 언어는 양식이 있는 문서의 한 종류이며 그 양식을 태그(좌, 우 부등호처럼 생긴 꺽쇠<>로 구분) 등으로 구분해 문서 정보를 정확하게 전달하기 위한 목적으로 만들어진 문서이다.

쉽게 말해서 마크업은 태그 등을 이용해 문서나 데이터의 구조를 나타내는 방법이다(속성부여도 가능).

이 중 상당히 많은 부분을 차지하고 있는 것이 HTML이며 줄임말을 풀어쓰면 Hyper Text Markup Language 라고 한다. HTML은 웹페이지를 구성하는데 사용되며 그 밖에도 여러 마크업 언어들이 존재한다.

마크업 언어는 프로그래밍 언어와는 다르다. 마크업 언어는 단순한 정보 전달만을 하고 있을 뿐 프로그래밍 언어의 논리적인 부분(조건에 따른 분기 등)이 없기 때문이다.

마크업 언어 사용

마크업 언어는 이 자체로 뭔가가 있는 것은 아니고 여러 마크업 언어를 통틀어 말한다. 즉 HTML, XML 등을 마크업 언어라고 하고 그러한 것들이 나오게 된 것은 거의 대부분 컴퓨터와 관련이 있다.

최초의 문서는 당연히 아무것도 없는 글씨였을 것이다.

안녕하세요. 저는 준보틱스입니다.

 

그런데 만약 여기서 "준보틱스"라는 문구를 두꺼운 글씨로 강조하고 싶다면 어떻게 해야 할까?​

  • 문서에 어떤 효과를 주어야 할지, 어디부터 어디까지 그 효과를 줄지..

그래서 나오게 된 방법이 마크업 문서의 다음과 같은 형식이다. HTML을 기준으로 하자면 다음과 같은 방식으로 문서를 쓸 수 있다.

안녕하세요. 저는 <strong>준보틱스</strong>입니다.

 

이렇게 함으로써 "준보틱스"를 strong이라는 기호를 이용해 구분할 수 있게 되었다. 그럼 나머지 역할은 저 문장을 해독하는 파서가 "준보틱스 네 글자는 두꺼운 글씨로 써야겠군"하고 강조를 할 수 있는 것이다.

이 밖에도 굉장히 많은 마크업 언어들이 있다. 이들은 처음부터 마크업 언어라고 불렸던 것은 아니다. 하지만 여기저기서 필요에 의해 만들어지다가 이러한 규칙들을 가진 문서들을 마크업 언어라고 부르기 시작했다.

즉, 마크업 언어는 그 자체로 어떤 특정한 것을 나타내는 것은 아니고 여러 마크업 언어들을 하나로 묶어 표현한 문구일 뿐이다. 마크업 언어를 좀 더 자세히 알기 위해서는 HTML, CSS 등 상세한 마크업 언어들을 이해해야 한다.

XML 파일

XML(Extensible Markip Lanuage)은 마크업 형태를 쓰는 데이터 교환 형식이다. 여러 특수 목적의 마크업 언어를 만드는 용도에서 권장되는 다목적 마크업 언어이다.

XML을 사용하면 공유 가능한 방식으로 데이터를 정의하고 저장할 수 있다. XML은 웹 사이트, 데이터베이스 및 타사 애플리케이션과 같은 컴퓨터 시스템 간의 정보 교환을 지원한다. 사전 정의된 규칙을 사용하면 수신자가 이러한 규칙을 사용해 데이터를 효율적으로 정확하게 읽을 수 있으므로 모든 네트워크에서 데이터를 XML 파일로 손쉽게 전송할 수 있다.

XML 구성

  • 프롤로그 : 버전, 인코딩
  • 루트요소(단 하나만)
  • 하위 요소
<?xml version="1.0" encoding="UTF-8"?>

<사원>
    <이름>준보틱스</이름>
    <나이>26</나이>
    <키>180</키>
</사원>

 

첫 줄은 프롤로그라고 하며 이 문서가 XML임을 알리고 버전이 몇인지, 그리고 문서의 인코딩이 어떻게 되는 지표시해준다. 인코딩이란 글자를 컴퓨터에 어떤 형식으로 표현할 것인지 정해놓은 것이라 보면 된다.

XML파일은 꺽쇠 부분 "< >" 이 기호로 감싸져 있는 것을 태그(Tag)라고 한다. 이 태그는 HTML에서도 사용되는 것과 같은 것이다. 그렇기 때문에 이 태그는 <abc> 라는 이름으로 시작했다면 </abc>라고 종료를 알리는 태그로 감싸져 있어야 한다.

그리고 그 사이에 있는 글자나 숫자를 값(Value)이라고 한다. 실제로 데이터를 주고 받을 때 내용물이 되는 부분이다.

XML 규칙

  • XML은 하나의 가장 큰 루트 엘리먼트로 되어 있어야 한다
  • 태그를 열었다면 반드시 닫아야 한다
  • 태그는 대소문자를 구분한다
  • 띄어쓰기를 생략하지 않는다
  • 여는 태그와 닫는 태그가 엉켜있으면 안된다

HTML과 XML 차이

  • HTML의 용도는 데이터를 표시, XML은 데이터를 저장 및 전송하는 역할을 한다.
  • HTML에는 미리 정의된 태그가 있지만 사용자는 XML에서 고유한 태그를 만들고 정의 가능
  • XML은 대소문자를 구분하지만, HTML은 구분하지 않는다.

JSON과 XML 차이

  • JSON과 비교했을 때 태그가 계속해서 들어가기 때문에 XML이 JSON보다 무겁다. 또한 Javascript Object로 변환하기 위해 JSON보다는 더 많은 노력이 필요하다.
>>> JSON 파일
{
    "name" : "준보틱스"
}

>>> XML 파일
<name>준보틱스</name>