마크업
마크업(markup)은 문서의 구조와 추가적인 정보를 부여하기 위해 문서 내에 삽입되는 일련의 문자 또는 기호이다.[1]
목차
개요
마크업은 문서의 내용 이외에 문서의 서식, 구조 등을 표현하기 위한 부가적인 정보이며, 텍스트 혹은 콘텐츠에 의미와 구조를 부여해주는 것이다. 이를 흔히 태그 또는 마크업 지시자라고도 하며, 이와 같은 형식과 규칙을 정의한 언어가 마크업 언어이다. 마크업 언어는 문서의 중간마다 문자나 문장 형태의 명령어를 삽입하는 방식의 문서 표현 언어이며, 여기에서 명령어는 통상적으로 태그 형태를 사용한다.[2][3] 태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되면서 문서의 구조를 표현하는 역할을 하게 되었는데, 마크업 언어는 이러한 태그 방법의 체계이다.[4] 또한, 마크업 언어는 문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 언어의 일종으로, 데이터를 기술한 언어라는 점에서 프로그래밍 언어와는 분명한 차이가 있다. 본래는 교정 부호 등을 표기하는 데에 사용했지만, 점차 용도가 확장되어 문서의 구조를 표현하도록 발전했다.[5]
종류
마크업의 종류
- 의미적 마크업(Semantic markup)
인용구, 구문 강조 등으로 특정 의미를 강조하면서 문서의 의미 및 내용을 중요시한다. 주로 제목 태그, 주소 태그 등이 쓰인다.[1][2]
- 구조적 마크업(Structural markup)
표제, 단락, 포함 및 내포 등으로 문서의 모양이나 틀을 갖추며 문서의 구조를 중요시한다. 주로 문단 태그, 제목 글 태그 등이 쓰인다.[1][2]
- 모양적 마크업(Stylistic markup)
글자 크기나 색상 등으로 보기 좋게 하여 문서의 모양 및 스타일을 중요시한다. 주로 모양 태그, 색상 태그 등이 쓰인다.[1][2]
마크업 언어의 종류
- 표현적 마크업(Presentational markup)
표현적 마크업은 문서의 형태를 표현하기 위한 마크업이다.[5] 또한, 전통적인 워드 처리 시스템이 사용하는 마크업으로 위지위그(WYSIWYG) 효과를 내는 문서 텍스트에 포함된 바이너리 코드이며, 사용자들이 아래 절차적 혹은 기술적 마크업을 사용하면, 사용자에게 '현재(위지위그) 상태로 변환한다. 이러한 마크업은 저자나 편집자도 포함한 사람의 눈에는 보이지 않도록 설계되는 것이 일반적이다.[6] 대표적인 예로 HTML의 스타일 태그를 들 수 있고, 메모장이나 워드프로세서에서 제목 앞에 몇 칸의 공백을 넣는 등의 행위도 표현적 마크업의 일종이라고 할 수 있다.[5]
- 절차적 마크업(Procedural markup)
절차적 마크업은 프로그램이 문서를 처리하는 방법을 서술하는 마크업이다.[5] 문서의 텍스트에 포함되며, 텍스트는 프로그램을 통해 문자를 처리하기 위한 프로그램의 명령을 제공하고[4] 프로세서는 마주친 명령에 따라 처음부터 텍스트를 통해 실행될 것으로 예상된다.[6] 그 밖에도 문서의 형식이나 텍스트의 외양을 기술하며 워드프로세서에서도 사용된다. 호환성의 문제로 특정 마크업 언어로 불리기도 한다.[1] 잘 알려진 예로, troff와 Tex, 포스트스크립트(PostScript), 그리고 LaTeX가 이 분류에 속한다.[5][6]
- 기술적 마크업(Descriptive markup)
기술적 마크업은 가장 많이 사용되는 마크업 언어의 종류로, 문서의 논리적인 구조와 정보 및 속성을 표현하는데, 즉 문서가 표현하는 내용을 기술하는 데에 사용한다.[1][5] 또한 문서 일부에 이름을 붙이는 데 사용하며, 문서의 고유한 구조를 어떤 특정한 처리나 변경으로부터 분리하기도 한다. 시각적으로가 아닌 개념적으로 잘를 설명하는 방식으로 쓰도록 권장된다.[6] 표현적 마크업과 절차적 마크업의 요소를 어느 정도는 포함하고 있어 범용적 마크업이라고도 불리며, 응용프로그램과 시스템에 독립적인 언어이다. 잘 알려진 예로 HTML과 HTML의 인용 이름을 다는 <cite> 태그, SGML, XML, 그리고 마크다운 등이 있다.[1][4][5]
- 경량화 마크업(lightweight markup)
최근 웹 브라우저를 통해 형식화된 텍스트를 작성할 수 있도록 개발된 작고 표준화되지 않은 다수의 마크업으로, 그 예로 위키피디아에서 사용하는 위키 마크업이 있다.[6]
프로그래밍 언어와의 차이점
실제 책을 하나의 프로그램으로 생각해보면, 사람이 책에 볼펜으로 밑줄을 긋거나 볼펜으로 필기를 하는 행위는 마크업의 일종이라고 할 수 있다. 또는 그래픽 디자이너들한테 그래픽에 따른 자잘한 요청을 하는 것 또한 자연언어 기반 마크업 언어라고 할 수 있다. 만약 책에 프로그래밍 언어를 적용할 수 있다면 책을 펴는 날짜에 따라 내용이 달라지거나, 편 사람이 누군지에 따라서 다른 내용을 보여줄 수 있어야 하지만 현실에선 당연히 그게 불가능하다. 쉽게 말하면 마크업 언어는 현실의 아날로그적인 기록 매체와 유사한 역할을 하는데, 그 예로 책에서 한번 작성하면 누가 언제 보든 같은 모습을 보여준다는 점을 예로 볼 수 있다. 우리가 흔히 웹사이트에서 보는 로그인 시스템이나 계정에 따라 다르게 보이는 프로필 등은 모두 프로그래밍 언어가 조합된 웹사이트로, 일반적인 마크업 언어만으로는 이러한 기능을 구현하는 것이 불가능하다. 현실 상황에서 벗어나 컴퓨터상에서 실제 사례를 보자면 우선 한컴오피스 한글에서 수식 입력기를 들 수 있다. 한글의 수식 입력기에서는 마우스로 기호를 하나하나 찾아 골라서 클릭을 하는 식으로도 수식 입력을 할 수 있지만, 수식이 나타나는 화면의 아래 창에 몇 가지 명령어들을 규칙에 맞춰 직접 타이핑하며 마우스를 사용하지 않고도 여러 가지 수식들을 입력할 수 있다. 이때 사용되는 명령어들도 한컴오피스 한글 문서에서 수식 문자가 화면에 표시되는 모양과 형식을 결정하는 마크업 언어에 해당하는데, 한컴오피스의 수십 입력 마크업 언어는 LaTeX에서 따왔다. 위키를 작성하는 것 또한 마크업 언어를 활용하는 대표적인 사례로, 위키를 작성하기 위해선 하이퍼링크를 넣거나, 표를 그리기 위해 여러 기호를 사용하고 이를 통해 문서를 깔끔하게 작성할 수 있는데, 이는 위키 내에 통용되는 문법을 기초로 마크업을 한 것이다. 물론 위키에서 일부 매크로 문법을 지원하기 때문에 보는 시점에 따라 다른 내용을 보여주는 경우도 있긴 하지만, 이러한 일부 예외를 제외하면 프로그래밍적 요소는 없다.[5] 즉 다시 결론적으로 마크업 언어는 단지 페이지의 틀을 정의해주는 역할을 하며, 마크업 언어만으로는 페이지를 동적으로 움직이게 할 수 없는 반면, 프로그래밍 언어는 말 그대로 프로그램을 만드는 언어로 메모리를 할당하고, 사용자의 반응을 읽을 수도 있는 프로그램을 만든다는 차이점이 있다.[7]
활용
주요 마크업 언어
- SGML
SGML은 이기종 장치 및 시스템에 독립적으로 전자 텍스트를 표현할 수 있는 국제 표준 마크업 언어로, GML의 영향으로 문서의 시각적인 표현에 대한 고려를 배제한다. 또한 매우 강력한 표현력으로, 언어의 습득과 응용 시스템 구현이 어렵고 군사, 우주, 항공과 같은 특수분야에서 제한적으로 사용된다.[1] 사용자에 의해 임의 태그 정의가 가능하긴 하지만 일반적으로 마크업 언어 그 자체라기 보다는 다른 마크업 언어를 생성하는데 사용되는 표준으로 쓰인다.[2]
- HTML
- 웹페이지를 작성하기 위한 가장 기본적인 언어로, 문서 안에 정보가 어떻게 구조화되었는가를 지정하는 언어이다.[1] 또는 콘텐츠 내용 및 텍스트, 의미, 폰트 등과 같은 기타 서식 모두를 나타낼 수 있는 사용자 친화적 마크업 언어이기도 하며, 하이퍼텍스트의 사용이 강조되는 특징이 있다.[2]
- XML
SGML로부터 필요한 기능만 뽑아서 새롭게 정의한 언어로, 사용자가 임의로 태그를 만들어서 사용할 수 있어 확장성에 용이하다. 문서의 논리적 구조를 정의하는 언어이므로 문서 내용의 쉬운 이해 및 명확한 전달이 가능하다.[1]
- XHTML
- 단순하게 콘텐츠의 강조할 부분, 중요한 머릿말, 타 문서 참조 등과 같은 내용 및 의미만을 나타내는 다소 엄격한 마크업 언어이다.[2]
- SVG
- MathML
- MXML
- XAML
- TeX
- LaTeX
- PTeX
- SAMI
가벼운 마크업 언어
가벼운 마크업 언어는 간결한 문법을 가진 마크업 언어로, 가벼운 마크업 언어는 보통의 마크업 언어보다 문법이 간단하여 이해, 편집, 처리하기가 쉽다. 복잡한 HTML이나 XML을 대체하기 위한 다양한 종류의 가벼운 마크업 언어가 개발되고 있고, 이러한 가벼운 마크업 언어는 주로 전자 게시판이나 블로그, 혹은 위키 등에서 복잡한 HTML 대용으로 사용하며, 이는 사용자가 글을 읽을 때 HTML이나 XHTML로 변환되어 표시된다. 가벼운 마크업 언어의 종류는 다음과 같다.[8]
- 시각적인 표시 지향
- BBCode
- Markdown
- 위키텍스트
- 데이터 지향
- JSON
각주
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 HwiDoorumi, 〈[HTML html이란? html 개념잡기]〉, 《티스토리》, 2018-04-09
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 차재복, 〈Markup, Markup Language 마크업, 마크업 언어〉, 《정보통신기술용어해설》, 2019-12-29
- ↑ 〈마크업(markup)〉, 《사이언스올》, 2018-12-12
- ↑ 4.0 4.1 4.2 〈마크업 언어〉, 《위키백과》
- ↑ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 〈마크업 언어〉, 《나무위키》
- ↑ 6.0 6.1 6.2 6.3 6.4 Choi HyeSun, 〈[Markup Language 마크업 언어란?]〉, 《Sun's Blog》, 2019-09-08
- ↑ 평등, 〈11/29(목) 프로그래밍 언어 vs 마크업 언어〉, 《네이버 블로그》, 2018-11-30
- ↑ 〈가벼운 마크업 언어〉, 《위키백과》
참고자료
- 〈마크업 언어〉, 《위키백과》
- 〈가벼운 마크업 언어〉, 《위키백과》
- 〈마크업 언어〉, 《나무위키》
- 〈마크업(markup)〉, 《사이언스올》, 2018-12-12
- 차재복, 〈Markup, Markup Language 마크업, 마크업 언어〉, 《정보통신기술용어해설》, 2019-12-29
- HwiDoorumi, 〈[HTML html이란? html 개념잡기]〉, 《티스토리》, 2018-04-09
- Choi HyeSun, 〈[Markup Language 마크업 언어란?]〉, 《Sun's Blog》, 2019-09-08
- 평등, 〈11/29(목) 프로그래밍 언어 vs 마크업 언어〉, 《네이버 블로그》, 2018-11-30
같이 보기
- HTML
- 프로그래밍 언어