DEVELOPMENT-GLOSSARY

  • account_tree
  • bug_report

마크업(Markup) 언어

마크업 언어는 지정된 키워드를 통해 문서나 데이터의 구조를 지정하는 언어의 한가지이다.

마크업 언어의 배경은 응용 프로그램간에 원할한 문서 교환을 위한 것이라 할 수 있으며 높은 이식성이라는 장점을 가지고 있다.

오늘날 대표적인 마크업 언어는 HTML 이다. HTML은 Tag를 통해 구조화된 문서를 작성한다. 구조화된 문서는 웹브라우저라는 대표적인 장치에 의해서 해석되어지며 다른 문서로 연결을 하기도 한다.

등장 배경

컴퓨터에 의해서 처리되어지는 데이터는 바이너리(binary)와 텍스트(text)가 있다. 이 중에 바이너리(binary)는 디지털 신호(0, 1) 포맷으로 변환된 것이며 컴퓨터가 이해할 수 있는 가장 빠른 수단이지만 컴퓨터 장치에 따라 호환성 문제가 발생할 수 있다.

텍스트는 내부적으로 비트(bit) 구조에 따라 표현되어지지만 표준화된 방식을 따르며 이로 인해 비교적 호환성이 좋은 편이다. 하지만 바이너리 방식보다는 좀더 구조화된 개념이다 보니 파일 크기가 큰 단점을 가지고 있다.

그럼에도 텍스트가 호환성이 높은 방식이지만 데이터를 표현함에 있어 제각각이다 보니 데이터를 사용하고자 할 때는 많은 문제점을 가지게 된다. 따라서 이러한 문제를 해결하고자 마크업 언어를 만들게 되었다.

마크업 언어의 개념

마크업 언어는 텍스트를 일정한 규칙에 따라 구조화한다.

만약에 분류 구조를 텍스트로 표현하는 경우에는 다음 아래처럼 제각각 표현할 수 있다. 따라서 상위, 하위 분류를 추적하는게 어려워진다.

과일 > 인과류 > 사과, 배, 비파
과일 > 준인과류 > 감, 감귤
과일 > 핵과류 > 복숭아, 매실, 살구
과일
    인과류
        사과
        배
        비파
과일
    준인과류
        감
        감귤
과일
    핵과류
        복숭아
        매실
        살구

하지만 아래와 같이 일정한 규칙이 있는 구조화된 방식으로 작성하게 되면 데이터를 사용할 때 상위, 하위 분류를 추적시 호환성을 높일 수 있다.

<과일>
    <인과류>
        <사과 />
        < />
        <비파 />
    </인과류>
    <준인과류>
        < />
        <감귤 />
    </준인과류>
    <핵과류>
        <복숭아 />
        <매실 />
        <살구 />
    </핵과류>
</과일>

이렇게 구조화해서 데이터를 표현하거나 문서를 작성할 수 있는 언어를 마크업 언어라 한다.

웹 개발에서 다루는 마크업 언어의 종류

HTML(Hypertext markup language)은 TAG라는 준비된 키워드를 통해 웹문서를 작성하는 대표적인 마크업 언어이다.

초기에는 단순히 텍스트를 표현하는 용도로 존재했지만 오늘날은 기능을 가진 컴포넌트 개념으로 보는 것이 맞다. 웹서비스를 이용했던 경험을 돌이켜 보면 현대의  HTML은 단순한 문서 제작이 아니라 프로그래밍 관점에서 접근이 되어지고 있는 추세이다.

CSS도 데이터를 다룬다는 측면에서는 마크업 언어의 일종으로 봐도 된다. 일반적인 마크업 언어와 비교해서 데이터를 기술하는 방식이 다르지만  데이터 이름과 값이라는 개념이 존재한다.

조금은 다른 방향일 수 있지만 XML도 마크업 언어이다. HTML이 콘텐츠라는 특성이 강하다면 XML은 데이터라는 특성이 강하다.