Markup Language

Development/XML 2012. 1. 27. 18:48

Markup Language

마크업 언어(markup 言語, markup language)는 태그 등을 이용하여 데이터의 구조를 명기하는 언어의 한 가지이다.

프로그래밍 언어와 구별하여 일반적으로 데이터 언어라고 하지만, {\mathrm{T\!_{\displaystyle E} \! X}}처럼 프로그래밍이 가능한 것도 있기 때문에 명확하게 구분되지는 않는다.

마크업은 그 파일이 프린터로 출력되거나 화면에서 어떻게 보여야할 것인지를 나타내기 위해, 또는 그 문서의 논리적인 구조를 묘사하기 위해서, 텍스트나 워드프로세싱 파일의 특정 위치에 삽입되는 일련의 문자들이나 기호들을 말한다. 마크업에 사용되는 표지를 흔히 "태그"라고 부른다. 예를 들어 다음의 태그는 문단을 나누는데 사용된다.

<p>

문서의 구조에 관한 마크업 정의 표준은 SGML에 있다. 마크업은 문서 작성자가 부호를 직접 쳐 넣거나, 편집기를 사용하여 미리 마련된 마크업 부호들(키보드를 덜 칠 수 있도록)을 사용하거나, 또는 그 문서가 실제로 나타낼 모양 그대로 만들 수 있는 보다 정교한 편집기(흔히 이를 WYSIWYG 편집기라고 한다)를 이용함으로써, 삽입될 수 있다.

====================================================================================


마크업 언어 (태그 조짐 미,  : markup language )는 컴퓨터 언어 의 일종으로, 문장 의 구조 (단락) 또는 모양 (글꼴 크기)에 대한 지정을 문장과 함께 텍스트 파일 에 기술하기위한 언어이다 . 문장에 대한 그들의 지정 마크업 ( markup )라고 태그를 설명하는 문자열 을 태그 (tag )라고 부른다.

현대에서 가장 유명한 마크업 언어는 World Wide Web 기반 기술의 하나이다 HTML 것이다. 원래 "markup"라는 단어는 출판 업계에서 저자, 편집자, 인쇄들에게 지시를 전하는 방법을 의미하고 있었다 ( 어원 참조).

목차

  [ 숨기기 ] 

특징 편집 ]

마크업 언어에는 여러 가지가 있지만, 대부분의 공통적인 특징은 텍스트와 마크업 명령을 하나의 파일에 혼합이다. 여기에서는 예로 HTML에서 짧은 절을 나타낸다.

 < h1 > 간카모과 < / h1 > 
 < p >
 간카모과에는 오리, 거위, 백조가 포함되지만
 그들은 < em > 아주 가까운 종이라는 것은 아니다 < / em > .
 < / p >

HTML에서 <이렇게> 괄호 안에 써있는 부분이 태그 라는 태그 명령이고 그들의 명령 사이에있는 부분이 실제 문서 내용이다. 이 예제에서는 "간카모과"부분이 h1 요소의있는 의미를 가지고있다는 것을 보여준다.

분류 편집 ]

마크업 언어는 일반적으로 3 가지로 분류된다. 시각 태그 절차 마크업 의미 마크업이다.

시각 태그 편집 ]

시각 태그 와 텍스트의 "단서"에서 문서 구조를 추론하려는 시도이다. 예를 들어, 텍스트 파일 은 문서의 제목 앞에 어떤 개행 을 내고, 공간 을 내거나 수 있고, 이들은 행간 조정 및 가운데 맞춤을 암시하고있다. 워드 프로세서 , 전자 출판 소프트웨어 몇 가지 텍스트 편집기 에는 이러한 종류의 관습에서 구조를 추론하는 것이있다. 그러나 위키 의 이러한 종류의 (일반 텍스트의) 관습이 매우 많은 것을 올라갈 수 있듯이 이것은 지금도 해결되지 않은 문제이다.

절차 마크업 편집 ]

절차 마크업 또한 텍스트의 모양을 문제 삼고 있지만, 시각 태그가 사용자에게 암시였다 반면 텍스트 파일을 편집하는 사용자에게 명시적인 것이다. 절차 마크업 파일의 출현 순서로 처리 계 해석된다. 제목 서식을 마련하기 위해 형식의 명령 ( 지시 )를 제목 문장 직전에 질질 끄지 않고들과 나란히 처리 계에 가운데 모드로 이동, 그리고 서체 를 크게 굵게 시키는 등의 지시를 내린다. 제목 문장 다음에 그 효과를 무시 명령이 나란히하게된다. 매크로 및 스택 모델 같은 고급 시스템이라면이 번거로움은 경감된다. 대부분의 경우 절차 마크업 능력은 튜링 전체 적인 프로그래밍 언어 에 해당한다. 절차 마크업 처리 계의 예로는 nroff, troff , TeX , Lout 가있다.

의미 마크업 편집 ]

의미 태그 는 반드시 특정 모양 등의 처리에 의미를주지 않고 텍스트 조각을 표를가는 것이다. 예를 들어, Atom 신디 프로그램 언어는 updated 타임 스탬프 를 기록하는 마크업이 정보 항목이 마지막으로 언제 업데이 트했는지 게시자가 표현하는데 사용된다. Atom 표준은 updated 의 의미에 대해 논하고 있으며, 그 마크업 형식에 대해서도 규정되어 있지만, 그것이 사용자에게 어떻게 표시되는지, 또 원래 나타날 것인가에 대해서는 어떤 규정도 없다. 이 태그는 처리 계마다 다양한 용도에 사용되며 그 중에는 Atom 언어 설계자들이 예상도하지 않은 것이 많이 포함되는 것이다. SGML 과 XML 은 의미 마크업 언어의 설계를 지원하기 위해 설계된 사양 ( 메타 언어 )이다.

이상은 개념적 분류이며, 실제로는 모든 시스템에서 다른 종류의 마크업이 공존하고있다. 예를 들어 HTML 에서는 순수한 절차 마크업 (굵은위한 B )와 순수한 의미 마크업 (BLOCKQUOTE 및 HREF 속성)이 공존하고있다. HTML에 더 PRE 요소가 시각 마크업 영역을 둘러싸고 텍스트를 입력대로 표시할 수도있다.

태그 요소와 그 사용에 대한 규칙은 보통 특정 기업이나 커뮤니티마다 다양한 종류의 문서에 대응하기 위해 표준화 단체 에 의해 개발된다. 최초 기의 예로는 CALS 가 있고, 미군 에서 기술 설명서에 이용되고 있었다. 빨리 큰 문서를 관리해야하는 기업이 이것에 이어 그러나 항공기, 통신, 자동차, 컴퓨터 하드웨어 설명서의 태그 군이 개발되었다. 이것은 이러한 설명서의 대부분이 전자적으로 배포되는 계기가되어, 기업은 하나의 (의미 마크업의) 원본에서 인쇄, 온라인, CD 버전 등을 일으킬 수 있었다. 주목할만한 예제는 썬 마이크로 시스템즈 이며, 죤보삿쿠 ( en )이 SGML을 여러 매체를위한 문서 배포에 채용하고 상당한 비용 절감을 달성했다.

현재는 많은 마크업 언어가 존재한다. 잘 알려진 것도 DocBook , MathML , SVG , Open eBook , TEI , XBRL 등이있다. 많은 텍스트를위한 것이지만 다른 용도로 사용되는 전문화된 언어도있다.

범용 마크업 은 의미 마크업의 별명이다. 현재 대부분의 의미 마크업 시스템은 문서를 트리 구조 로 구조화한다. 동시에 문서의 부분을 문서의 다른 위치에서 참조하는 (상호 참조) 수단을 제공하고있다. 구조는 소프트웨어가 문서 구조 ( BLOB 이 아닌 것으로) 파악할 수 있고, 문서는 데이터베이스 로 취급할 수있게된다. 관계형 데이터베이스 가 가지고있는 같은 엄격한 스키마 를 가지지 않기 때문에, " 반구 조화된 데이터베이스 (semi - structured database) "라고 불린다.

2000 년 지나서 때부터 나무 구조 이외의 문서 구조에 대한 큰 관심이 나타나고왔다. 예를 들어, 고대 종교 문학은 문학 구조 (책, 장, 절, 문장) 외에도 수사학 구조 와 산문 구조가 널리 사용된다 ( 스토리 , 인용章句 , 단락 등). 이 문서 단위는 본문에서 종종 교차하기 때문에, 쉽게 나무 구조의 태그 시스템에서 데이터화할 수 없습니다. 이러한 구조를 지원하는 문서 모델링 시스템은 MECS ( 비트 겐슈 타인 의 작품을 전자 화하기 위해 개발된), TEI Guidelines 의 일부 LMNL , CLIX , 등이있다.

의미 태그의 첫 번째 장점은 그 자유도라고 간주되고있다. 텍스트 조각이 "어떻게 나타날 것인가"가 아니라 "무엇인가?"이라는 표시되고 있었다면, 그 언어의 설계자가 예상치 않은 편리한 용도로 그 조각을 처리하는 처리 계 이 제작 될지도 모른다. 예를 들면, HTML의 하이퍼 링크 는 원래 링크를 따라 사람의 손으로 사용되기 위하여 설계되었지만, WWW 검색 엔진 에 의해 색인 것이다 새로운 자원을 발견하기 위하여, 또한 웹 리소스 의 인기를 측정하기 위해서도 이용되고있다.

의미 태그는 또한 필요할 때 문서의 모양을 변경하는 작업도 단순화한다. 이것은 문서의 모양과 내용이 밀접하게 결합되어 있지 않기 때문에이다. 예를 들어 기울임 강조와 외국어임을 나타내기 위해 사용한다. 여기에서 모두 단순히 기울임과 (시각적으로 또는 절차적으로) 태그 되었다면 두를 가리는 것이 곤란하게된다. 만약 나중에 외국어를 기울임하지 않기로 결정 고치면 모든 이탤릭체 부분을 검토하여 하나씩 가릴 수밖에 없다. 그러나 처음부터 두 경우가 다른 태그 (의미적으로) 마크업되어 있었다면 서로 간섭하는 것이 아니라 모양 변경이 가능하게된다.

역사 편집 ]

어원 편집 ]

"markup"(태그)라는 용어는 전통적인 출판 작업 과정이다 원고 의 "marking up"에서 파생했다. "marking up"은 원고지 여백에 인쇄 지침 기호를 쓰고 추가이다. "markup men"및 교정라는 전문가가 문장의 각 부분에 어떤 스타일, 글꼴 크기를 적용할지 등을 담고 조판 담당자에게 문서를 전달하는 작업이 몇 세기에 걸쳐 행해지고 있었다. (교정 기호에 대한 자세한 내용은 교정 과 Proofreading (영어) 외부 링크이다.)

초기 편집 ]

마크업 언어의 아이디어는 1967 년 의 회의에서 미국 출판계의 거물이었던 William W. Tunnicliffe ( en ) [1] 에서 "generic coding"라는 이름에서 아마 처음 발표된 [1 ] . 그 다음에 GenCode라는 표준 사양의 책정에 출판 업계에서 중심적인 역할을하게된다. 1960 년대 말, 책 디자이너였던 Stanley Fish 또한 유사한 아이디어를 발표하고있다. Brian Reid ( en )은1980 년 에 카네기 멜론 대학 의 학위 논문에서 실용되는 의미 마크업 시스템의 이론 및 구현을 개발했다.

그러나 IBM 의 연구자인 찰스 골드 씨랑 가 지금은 널리 "마크업 언어의 아버지 '로 알려져있다. 골드 씨랑은 IBM GML 의 개발에 큰 역할을, 그리고 처음 통용되는 의미 마크업 시스템이다 SGML을 개발한 ISO 의위원회 의장을 맡았다. 골드 씨랑은 정확한 날짜는 기록에 없지만, 신문의 워크플로우 의 전산화에 관한 초기의 프로젝트에서 일할 때, 그 기본적인 아이디어를 내놓았다. 후에 Tunnicliffe와 Fish 발표를 알고 또한 Reid 이야기를 초기에 들었어요, 그의 관심사에 더 불이 붙는 것으로되었다.

의미 마크업의 초기 역사에 대한 자세한 내용은 격렬하게 논의되고있다는 것을 언급해야한다. 하지만 그 개념이 1970 년대 동안 (60 년대 말기도 포함할 수있다) 여러 번 독립적으로 발명되고있는 것은 확실하고, 80 년대 말에는 업무의 중요한 일부가되었다 요청 출처 ] .

출판 업계 외부에서 사용 가능한 초기 마크업 언어의 예는 UNIX 에서 조판 소프트웨어이다, troff 와 nroff 가있다. 이러한 시스템에서는 서식 지정 명령은 문서의 텍스트에 삽입되고 조판 처리 계는 텍스트를 이용자의 지정대로 출력할 수 있었다. 이것은 제대로 인쇄되지 문서를 얻기위한 시행 착오 의 반복적인 과정이었다. WYSIWYG ( what you see is what you get )을 실현한 DTP 소프트웨어의 등장으로 캐주얼 사용자의 대부분은 이러한 언어에서 떨어져 갔다가 고급 출판의 현장에서는 텍스트의 보이지 않는 구조를 지정하는 데 아직 태그를 이용하고있다.

TeX 편집 ]

TeX 로고

출판의 또 다른 주요 표준은 TeX 이다. TeX은 도널드 크누스 가 개발하고 1970 년대부터 80 년대에 걸쳐 지속적으로 개선했다. TeX은 수학 서를 업무 품질 파트너가 텍스트와 글꼴 에 관한 심층적인 레이아웃 기능을 목표로하고있다. 이 목표를 위해, 크누스 상당한 시간을 조판 기술의 조사에 소요야만했다. TeX 사용자에게 높은 능력을 요구하기 위해 주로 학술 분야에서 사용되어 이수 계 압박 논문 등에서는 사실상 표준 이되고있다. TeX 매크로 패키지이다 LaTeX 은 TeX에서 의미 마크업 시스템을 구축하고 널리 이용되고있다.

SGML 편집 ]

구조와 모양을 명확하게 구분하는 최초의 언어는 Brian Reid가 개발하고 1980 년 그의 박사 논문에서 밝혔다 Scribe 였다 [2] . Scribe 많은 점에서 획기이며, 마크업 문서에서 스타일을 분리한다는 아이디어뿐만 아니라 의미 요소의 사용을 통제하는 문법 (일종의 스키마)도 가지고 있었다. Scribe는 IBM GML (후 SGML)의 개발에 영향을 미치고 또한 HTML과 LaTeX의 직접 조상이되기도했다.

1980 년대 초기에 마크업은 문서의 구조면에 전념하고 시각적인 표현에 관해서는 처리 계에 맡겨야한다라는 사상에 의해 SGML 이 탄생했다. 이 언어는 골드 씨랑가 의자위원회에 의해 개발되어 여러 연구 프로젝트 (Tunnicliffe의 GenCode)에서 성과를 수중에 있었다. Sharon Adler와 Anders Berglund, James D. Mason도위원회의 주요 멤버였다.

SGML은 문서에 태그를 포함 구문과 어떤 태그가 어디에서 사용할 수 있는지 등을 설명하는 구문 ( DTD )을 규정하고 있었다. 이를 통해 제작자는 원하는 태그를 가장 의도에 가까운 것이나 모국어로 이름이 ​​가진 것들, 무엇이든 만들고 이용하는 수 있었다. 따라서 SGML은 제대로 메타 언어 이고 많은 구체적인 마크업 언어가 그것에서 파생 갔다. 80 년대부터 현재에 이르기까지 대부분의 새로운 마크업 언어는 SGML에 기초한 것이었다. TEI 와 DocBook 등이 그 예이다. SGML은 1986 년 에 ISO 8879으로 국제 표준됐다.

SGML은 매우 큰 규모의 문서를 취급하는 현장에서 널리 받아들여지고 사용되었다. 그러나 일반적으로 기억할 것이 번거롭고 어렵다고 여겨진다. 이것은 다채로운 너무 기능과 너무 높은 유연성을 제공하는 부작용이다. 복잡한 사양의 예로 SGML에서는 종료 태그 (또는 시작 태그 또는 둘 다)가 문맥에 의해 선택되고 있지만, 이것은 과로 기색 지원 직원이 태그를 수동으로 같은 경우 키 입력 절약이 요구되고 있다고 배려에 의한 것이다.

HTML 편집 ]

HTML 소스 코드 예제

1991 년 되면 SGML이 상용 데이터베이스 용도로 밖에 사용되지 않는 경향이 강해지고왔다. 한편, (문서를 독점 바이너리 형식으로 저장)WYSIWYG 도구 기타 문서 처리 용도에서는 받아들여지고 있었다.

이 상황이 변화하는 것은 CERN 에 근무하고 있던 팀 버너스 리 가 동료 Anders Berglund들로부터 SGML의 존재를 알고, SGML 구문을 사용하여HTML 을 만들 때이다. HTML은 다른 SGML 기반 태그 언어와 비슷하지만보다 간단한 것으로 탄생 처음에는 형식적인 DTD를 가지고 있지 않았다. DeRose은 HTML의 의미 마크업 (SGML)를 사용 웹 유연성과 확장성을 이끌어 내고 성공의 유력한 요인이되었다고 주장하고있다 [3] (다른 요인은 URL 의 개념과 브라우저 무료 배포 등이있다). 현재 HTML은 아마 세계에서 가장 널리 사용되는 마크업 언어 것이다.

그러나 HTML을 마크업 언어라는 사실에 대해 이의를 제기 연구자도있다. 그 이론은 HTML 태그의 배치를 제한하고, 태그에 다른 태그 안에 중첩 될 것으로 문서의 루트 태그가 되기에 모두 요구하고있다는 것이다. 따라서 이러한 연구들은 HTML은 계층형 데이터 모델 에 따라 "컨테이너 언어"가 아닐까 말했다.

XML 편집 ]

또 하나 현재 널리 이용되고있는 마크업 언어 XML 이다. XML은 W3C 의 죤보삿쿠가 출범 의장위원회에 의해 개발되었다. XML의 기본 목적은 대상을 인터넷 상의 문서에 특화하여 SGML을 단순화한 부분 집합을 만들기위한 것이다 [4] . XML은 SGML과 같이 메타 언어이다. 또한 ( "extensible"라는 이름대로) 이용자가 필요한 요소를 추가하거나 네임 스페이스를 사용하여 복합 문서 를 만들거나 확장하는 것이 용이 할 수있다.

네임 스페이스 등을 사용하지 XML 문서는 SGML 문서이기도하므로, XML에 환승은 그리 어렵지 않고 기존의 SGML의 이용자 및 소프트웨어는 비교적 쉽게 XML로 전환할 수 있었다. XML은 SGML의 많은 복잡한 기능을 생략하고, 학습 및 구현을 용이하게하고있다. 다른 개선 사항은 다국어 환경에서 SGML의 문제점을 수정한 것이나, 스키마가없는 문서에서도 이용을 가능하게 한 것 등이있다.

XML은 원래 문서 및 출판물 등 반 구조 데이터를 위해 설계된 것이다. 그러나 그 단순함과 유연성의 균형 장점에서 다른 용도로도 급속히 받아들여지고 갔다. 예를 들어, 응용 프로그램 간에 데이터를 교환하기 위해 사용되거나 응용 프로그램 구성 파일 구조로 이용되기도하고있다.

XHTML 편집 ]

2000 년 1 월부터 HTML에 대한 모든 W3C 권고는 SGML이 아닌 XML에 따라 결정되었다. Ex tensible H yper T ext M arkup L anguage 을 줄여서 XHTML 한다. (X는 Ex 발음에서.)

HTML과 XHTML의 차이 현저한 중 하나는 "모든 태그는 닫아야한다"이다. <br> 같은 "빈"HTML 태그 "닫기"필요가있다. XHTML 1.0 권고의 Appendix에있는 HTML Compatibility Guidelines [5] 에서는 <br /> 와 같이 요소 이름 뒤에 공백과 슬래시를 넣어 닫기 형태를 권장하고있다. 게다가 시작 태그에서 모든 특성 값은 인용 부호를해야한다는 점이있다. 또한 HTML과 달리 대소문자를 엄격하게 구별된다.

다른 용도로 사용 편집 ]

마크업 언어의 아이디어는 텍스트 문서에 관한 것으로서 태어 났지만, 벡터 그래픽 , Web 서비스 , 웹 신디 리케이션 , 시맨틱 웹 , 사용자 인터페이스 등의 분야에서의 이용도 늘고있다. 이들의 대부분은 XML 응용 프로그램이다. XML을 사용하여 여러 마크업 언어를 합성하는 것이 가능하다. 예를 들어, XHTML + SMIL 과 XHTML + MathML + SVG 가있다.

각주 편집 ]

도움말 ]
  1. ^ Charles F. Goldfarb The SGML Handbook p. 567. ISBN 0198537379
  2. ^ Reid, Brian. "Scribe : A Document Specification Language and its Compiler"Ph.D. thesis, Carnegie - Mellon University, Pittsburgh PA 또는 Technical Report CMU - CS - 81 - 100.
  3. ^ DeRose, Steven J. "The SGML FAQ Book"Boston : Kluwer Academic Publishers, 1997. ISBN 0-7923-9943-9
  4. ^ http://www.w3.org/TR/2004/REC-xml11-20040204/ Extensible Markup Language (XML)
  5. ^ http://www.w3.org/TR/2000/REC-xhtml1-20000126/ # guidelines

관련 항목 편집 ]

외부 링크 편집 ]

'Development > XML' 카테고리의 다른 글

xml namespace  (0) 2012.03.24
XML, DTD, XSD, XSL 관계  (0) 2012.02.13
XML DOM(Document Object Model)  (1) 2012.01.23
XSD(XML Schema Difinition)  (0) 2012.01.18
XML 창시자 - 팀 브레이  (0) 2010.12.14
Posted by linuxism
,