검수요청.png검수요청.png

마크업

위키원
(Markup에서 넘어옴)
이동: 둘러보기, 검색

마크업(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]

활용[편집]

주요 마크업 언어[편집]

SGML

SGML이기종 장치시스템에 독립적으로 전자 텍스트를 표현할 수 있는 국제 표준 마크업 언어로, GML의 영향으로 문서의 시각적인 표현에 대한 고려를 배제한다. 또한 매우 강력한 표현력으로, 언어의 습득과 응용 시스템 구현이 어렵고 군사, 우주, 항공과 같은 특수분야에서 제한적으로 사용된다.[1] 사용자에 의해 임의 태그 정의가 가능하긴 하지만 일반적으로 마크업 언어 그 자체라기 보다는 다른 마크업 언어를 생성하는데 사용되는 표준으로 쓰인다.[2]

  • HTML : 웹페이지를 작성하기 위한 가장 기본적인 언어로, 문서 안에 정보가 어떻게 구조화되었는가를 지정하는 언어이다.[1] 또는 콘텐츠 내용 및 텍스트, 의미, 폰트 등과 같은 기타 서식 모두를 나타낼 수 있는 사용자 친화적 마크업 언어이기도 하며, 하이퍼텍스트의 사용이 강조되는 특징이 있다.[2]
  • XML : SGML로부터 필요한 기능만 뽑아서 새롭게 정의한 언어로, 사용자가 임의로 태그를 만들어서 사용할 수 있어 확장성에 용이하다. 문서의 논리적 구조를 정의하는 언어이므로 문서 내용의 쉬운 이해 및 명확한 전달이 가능하다.[1]
    • XHTML : 단순하게 콘텐츠의 강조할 부분, 중요한 머릿말, 타 문서 참조 등과 같은 내용 및 의미만을 나타내는 다소 엄격한 마크업 언어이다.[2]
    • SVG : 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 파일 형식으로, 1999년 W3C(World Wide Web Consortium)의 주도하에 개발된 오픈 표준의 벡터 그래픽 파일 형식이다. SVG 형식의 이미지와 그 작동은 XML 텍스트 파일들로 정의 되어 검색화·목록화·스크립트화가 가능하며 필요하다면 압축도 가능하다. SVG 형식의 파일은 어도비 일러스트레이터와 같은 벡터 드로잉 프로그램을 사용하여 편집이 가능하다. XML 형식으로 되어 있으므로 메모장과 같은 문서 편집기로도 편집이 가능하다.[7]
    • MathML : XML 응용 중 하나로 수학 수식을 표현하고, 그 구조와 내용을 파악하기 위한 마크업 언어이다. 월드 와이드 웹 페이지 및 다른 문서들에 수식을 통합하는 것을 목적으로 한다. W3C 매스(math) 워킹 그룹의 권고이며 HTML5의 일부이다.[8]
    • MXML : 2004년 3월 매크로미디어사가 도입한 XML 기반의 사용자 인터페이스 생성 언어이다. 웹 애플리케이션 개발자들은 액션스크립트와 같이 MXML을 사용하여 리치 인터넷 애플리케이션을 개발한다. 주로 애플리케이션의 화면 레이아웃을 선언하는 데 사용된다. 그리고 복잡한 업무 로직이나 리치 인터넷 애플리케이션 작업에 사용할 수 있다. 중괄호({)를 사용하게 되면 컴퓨터로 하여금 해당 부분을 변수로 인식하게 하는 것이나 점 표기법(dot notation)을 통해 객체의 다양한 변수와 메소드에 접근하는 것과 같은 일반적인 문법을 따라간다.[9]
    • XAML : 마이크로소프트(Microsoft)가 구조값과 객체를 초기화하는 데 사용하려고 만든 선언형 XML 기반 언어이다. 마이크로소프트의 기술개시선언(Open Specification Promise)을 통해 사용할 수 있다. XAML은 닷넷 프레임워크 3.0 기술 중 특히 윈도우 프레젠테이션 파운데이션(WPF), 윈도우 워크플로 파운데이션(WF)에 널리 쓰인다. WPF에서 XAML은 사용자 인터페이스 마크업 언어로 쓰이면서 사용자 인터페이스의 요소, 데이터 바인딩, 이벤트 등의 기능을 정의한다. 윈도우 워크플로 파운데이션에서 워크플로는 XAML을 사용하여 정의할 수 있다.[10]
TeX

TeX는 수식용 문서 편집 프로그램이다. 1980년 경 미국 스탠포드 대학교의 교수이며, 수학자이자 전산과학자인 도널드 커누스(Donald E. Knuth)에 의해 개발된 프로그램으로, 수학과 같이 많은 기호를 포함하는 문서를 편집하는데 적합하며, 비교적 쉽게 수식 문서를 작성할 수 있는 프로그램이다. 정해진 문법에 따라 텍스트 편집기로 문서를 작성한 후, 컴파일하고 프린터 등의 출력 장치를 제어하여 인쇄하면 문서에 삽입된 제어 명령에 따라 문서를 편집하여 프린터로 찍어주므로 복잡한 수식이 포함된 문서도 쉽게 작성하고 출력할 수 있다. 특히 수학식이 많이 포함된 책이나 논문을 인쇄하는 데 적합하다. TeX 계열의 언어에는 LaTeXPTeX가 있다.[11] LaTeX는 문서 조판에 사용되는 프로그램이다. 1984년에 레슬리 램포트(Leslie Lamport)가 도널드 커누스가 만든 TeX을 쉽게 사용하기 위하여 만든 매크로이다. TeX를 직접 사용하기는 어렵기 때문에, LaTeX를 이용하여 문서를 만드는 경우가 많다.[12]'

SAMI

SAMI는 마이크로소프트가 1998년에 발표한 미디어 접근 제안이다. 마크업 언어로 구조화되어 있으며, 개인용 컴퓨터에서의 미디어 재생용 자막을 간단히 만들 수 있도록 하는 데 중점을 두고 설계되어 방송용으로는 적합하지 않다. SAMI 문서는 문자열로 되어 있으므로 어떠한 문서 편집기로도 기록하고 수정할 수 있다. 또, SAMI 문서를 전문적으로 만들어 주는 유틸리티도 존재한다. 파일 확장자는 .smi 또는 .sami이며, SMIL 파일의 확장자와 충돌 가능성이 있어 .smi가 보통 쓰인다. 각 SAMI 문서는 하나 이상의 언어를 담을 수 있으며 대한민국에서는 지배적으로 이 자막 포맷을 사용한다.[13]

가벼운 마크업 언어[편집]

가벼운 마크업 언어는 간결한 문법을 가진 마크업 언어로, 가벼운 마크업 언어는 보통의 마크업 언어보다 문법이 간단하여 이해, 편집, 처리하기가 쉽다. 복잡한 HTML이나 XML을 대체하기 위한 다양한 종류의 가벼운 마크업 언어가 개발되고 있고, 이러한 가벼운 마크업 언어는 주로 전자 게시판이나 블로그, 혹은 위키 등에서 복잡한 HTML 대용으로 사용하며, 이는 사용자가 글을 읽을 때 HTML이나 XHTML로 변환되어 표시된다. 가벼운 마크업 언어의 종류는 다음과 같다.[14]

시각적인 표시 지향
  • BBCode : 전자 게시판에 글을 작성하는데 쓰이는 가벼운 마크업 언어이다. BBCode는 HTML과 거의 같은 역할을 하며 이들의 문법도 유사하다. 다만, BBCode는 대괄호를 사용하여 태그를 나타낸다.[15]
  • 마크다운 : 일반 텍스트 기반의 경량 마크업 언어이다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용된다.[16]
  • 위키 마크업 : 위키 웹사이트에 페이지를 기록하는 데 쓰이는 가벼운 마크업 언어이다. 또, HTML을 단순히 대체하거나 중재하는 역할을 한다. 최종 목적은 위키 소프트웨어를 HTML로 변환하여 웹 브라우저에서 다루도록 하는 것이다. 표준 위키 마크업 언어는 존재하지 않는다. 문법, 구조, 기능, 표제어 등은 웹사이트에 쓰이는 위키 소프트웨어에 따라 달라진다. [17]
데이터 지향
  • JSON : 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성·값의 쌍 형태로 표현하는 형식의 마크업 언어이다. 자바스크립트(JavaScript) 토대로 개발되었다. 여러 프로그래밍 언어에도 사용할 수 있어 독립형 언어이며 텍스트로 기술하여 사람도 쉽게 읽고 작성할 수 있다. 웹 브라우저와 웹 서버 간 비동기 통신, 웹 서버 간의 데이터 교환 등에 주로 사용된다.[18]

프로그래밍 언어와의 차이점[편집]

실제 책을 하나의 프로그램으로 생각해 보면, 사람이 책에 볼펜으로 밑줄을 긋거나 볼펜으로 필기를 하는 행위는 마크업의 일종이라고 할 수 있다. 또는 그래픽 디자이너들한테 그래픽에 따른 자잘한 요청을 하는 것 또한 자연언어 기반 마크업 언어라고 할 수 있다. 만약 책에 프로그래밍 언어를 적용할 수 있다면 책을 펴는 날짜에 따라 내용이 달라지거나, 편 사람이 누군지에 따라서 다른 내용을 보여줄 수 있어야 하지만 현실에선 당연히 그게 불가능하다. 쉽게 말하면 마크업 언어는 현실의 아날로그적인 기록 매체와 유사한 역할을 하는데, 그 예로 책에서 한번 작성하면 누가 언제 보든 같은 모습을 보여준다는 점을 예로 볼 수 있다. 우리가 흔히 웹사이트에서 보는 로그인 시스템이나 계정에 따라 다르게 보이는 프로필 등은 모두 프로그래밍 언어가 조합된 웹사이트로, 일반적인 마크업 언어만으로는 이러한 기능을 구현하는 것이 불가능하다. 현실 상황에서 벗어나 컴퓨터상에서 실제 사례를 보자면 우선 한컴오피스 한글에서 수식 입력기를 들 수 있다. 한글의 수식 입력기에서는 마우스로 기호를 하나하나 찾아 골라서 클릭을 하는 식으로도 수식 입력을 할 수 있지만, 수식이 나타나는 화면의 아래 창에 몇 가지 명령어들을 규칙에 맞춰 직접 타이핑하며 마우스를 사용하지 않고도 여러 가지 수식들을 입력할 수 있다. 이때 사용되는 명령어들도 한컴오피스 한글 문서에서 수식 문자가 화면에 표시되는 모양과 형식을 결정하는 마크업 언어에 해당하는데, 한컴오피스의 수십 입력 마크업 언어는 LaTeX에서 따왔다. 위키를 작성하는 것 또한 마크업 언어를 활용하는 대표적인 사례로, 위키를 작성하기 위해선 하이퍼링크를 넣거나, 표를 그리기 위해 여러 기호를 사용하고 이를 통해 문서를 깔끔하게 작성할 수 있는데, 이는 위키 내에 통용되는 문법을 기초로 마크업을 한 것이다. 물론 위키에서 일부 매크로 문법을 지원하기 때문에 보는 시점에 따라 다른 내용을 보여주는 경우도 있긴 하지만, 이러한 일부 예외를 제외하면 프로그래밍적 요소는 없다.[5] 즉 다시 결론적으로 마크업 언어는 단지 페이지의 틀을 정의해주는 역할을 하며, 마크업 언어만으로는 페이지를 동적으로 움직이게 할 수 없는 반면, 프로그래밍 언어는 말 그대로 프로그램을 만드는 언어로 메모리를 할당하고, 사용자의 반응을 읽을 수도 있는 프로그램을 만든다는 차이점이 있다.[19]

각주[편집]

  1. 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. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 차재복, 〈Markup, Markup Language 마크업, 마크업 언어〉, 《정보통신기술용어해설》, 2019-12-29
  3. 마크업(markup)〉, 《사이언스올》, 2018-12-12
  4. 4.0 4.1 4.2 마크업 언어〉, 《위키백과》
  5. 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 마크업 언어〉, 《나무위키》
  6. 6.0 6.1 6.2 6.3 6.4 Choi HyeSun, 〈(Markup Language) 마크업 언어란?〉, 《깃허브》, 2019-09-08
  7. 스케일러블 벡터 그래픽스〉, 《위키백과》
  8. MathML〉, 《위키백과》
  9. MXML〉, 《위키백과》
  10. XAML〉, 《위키백과》
  11. 테크〉, 《네이버 지식백과》
  12. LaTeX〉, 《위키백과》
  13. SAMI〉, 《위키백과》
  14. 가벼운 마크업 언어〉, 《위키백과》
  15. BBCode〉, 《위키백과》
  16. 마크다운〉, 《위키백과》
  17. 위키 마크업〉, 《위키백과》
  18. 제이슨〉, 《네이버 지식백과》
  19. 평등, 〈11/29(목) 프로그래밍 언어 vs 마크업 언어〉, 《네이버 블로그》, 2018-11-30

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 마크업 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.