맨위로가기

닥북

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

닥북(DocBook)은 1991년 시작된 XML 기반의 마크업 언어로, 기술 문서를 작성하기 위해 설계되었다. SGML 및 XML 형식으로 제공되며, 구조적, 블록 수준, 인라인의 세 가지 범주로 나뉘는 다양한 의미론적 요소 태그를 제공한다. 닥북은 문서를 여러 형식으로 변환할 수 있으며, HTML, PDF 등 다양한 형식의 출력 파일을 생성하는 데 사용된다. Simplified DocBook은 닥북의 하위 집합으로, 단일 문서에 적합하게 설계되었다.

더 읽어볼만한 페이지

  • 소프트웨어 문서화 - GNU 자유 문서 사용 허가서
    GNU 자유 문서 사용 허가서는 자유 소프트웨어 재단에서 만든 카피레프트 라이선스로, 문서 저작물의 자유로운 사용, 수정, 배포를 보장하지만, 2차 저작물에도 동일한 라이선스를 적용하고 원저작자 표시 등의 조건을 요구하며, GPL과의 비호환성 등으로 비판받기도 한다.
  • 소프트웨어 문서화 - 마이크로소프트 독스
    마이크로소프트 독스는 마이크로소프트의 기술 문서 웹사이트로, 제품 및 기술별, 작업 단계별 콘텐츠 구성과 오픈 소스 방식 관리를 통해 사용자 참여를 유도하며, MSDN 및 TechNet 라이브러리 콘텐츠를 이전하여 2016년 6월에 공개되었다.
  • 마크업 언어 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • 마크업 언어 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • 오픈 포맷 - HTML
    HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다.
  • 오픈 포맷 - 오픈 소스
    오픈 소스는 제품 설계 및 재배포를 장려하는 모델로, 소프트웨어 개발에서 시작하여 개방형 협업을 장려하며 다양한 분야에서 활용되고 있고 오픈 소스 이니셔티브와 같은 단체가 운동을 지원한다.
닥북 - [IT 관련 정보]에 관한 문서
개요
종류마크업 언어
용도문서 작성을 위한 마크업 언어
확장자.dbk, .xml
MIME 형식application/docbook+xml
기반SGML, XML
표준5.2 (2024년 2월), 4.5 (2006년 10월)
소유OASIS
상세 정보
DocBook문서 작성을 위한 마크업 언어이다.
특징원래 SGML을 기반으로 설계되었으나, 현재는 XML 기반으로도 사용 가능하다. 기술 문서에 주로 사용된다.
버전5.2 (2024년 2월)
5.1 (2016년 11월 22일)
4.5 (2006년 10월 1일)
MIME 유형application/docbook+xml

2. 역사

DocBook은 1991년 유즈넷 토론 그룹에서 시작되었으며, HAL Computer Systems와 O'Reilly & Associates의 공동 프로젝트였다.[4] 1998년에는 자체 유지 관리 조직(Davenport Group)을 거쳐 SGML Open 컨소시엄으로 이동했으며, 이후 OASIS가 되었다.[4] DocBook은 현재 OASIS의 DocBook 기술 위원회에서 유지 관리하고 있다.[4]

초기에 핵심적인 소프트웨어 회사 그룹이 DocBook을 사용했는데, 이는 그들의 대표자들이 초기 설계에 참여했기 때문이다. 그러나 결국 DocBook은 오픈 소스 커뮤니티에 채택되었고, FreeBSD, KDE, GNOME 데스크톱 문서, GTK+ API 참조, Linux kernel 문서 (Sphinx/reStructuredText로 전환 중)[5][6], Linux Documentation Project의 작업 등 많은 프로젝트의 문서를 만드는 표준이 되었다.

3. 디자인

닥북은 XML 언어이며, 현재 버전(5.x)에서는 RELAX NG 스키마로 정의된다. 내용의 의미를 설명하는 의미론적 언어이며, 내용의 표현 방식은 외부 처리 도구나 응용 프로그램에 의해 결정된다.

닥북은 방대한 수의 의미론적 요소 태그를 제공하며, 구조적, 블록 수준, 인라인의 세 가지 범주로 나뉜다. 닥북 디자인의 핵심은 텍스트의 "구조"나 "의미"를 나타내는 것이지, "시각적 표현"이 아니라는 점이다. 따라서 하나의 닥북 파일에서 다양한 형식의 출력을 얻을 수 있으며, 출력 결과물은 모양이나 요소의 배치까지도 서로 다를 수 있다.

3. 1. 구조적 요소

닥북은 내용의 광범위한 특성을 지정하는 구조적 요소를 제공한다. 예를 들어, `book` 요소는 자식 요소가 제목, 장, 용어집, 부록 등 책의 부분을 나타낸다고 지정한다. 닥북의 구조적 태그는 다음을 포함한다.

  • `set`: 하나 이상의 `book` 또는 `article`의 제목이 지정된 모음으로, 다른 세트와 중첩될 수 있다.
  • `book`: `chapter`, `article` 및/또는 `part`의 제목이 지정된 모음으로, 선택적 용어집, 부록 등이 포함될 수 있다.
  • `part`: 하나 이상의 `chapter`의 제목이 지정된 모음으로, 다른 파트와 중첩될 수 있으며, 특별한 소개 텍스트가 있을 수 있다.
  • `article`: 제목이 지정되었지만 번호가 없는 블록 수준 요소의 모음이다.
  • `chapter`: 제목이 지정되었고 번호가 매겨진 블록 수준 요소의 모음이다. 장은 명시적인 번호가 필요하지 않으며, 장 번호는 XML 문서에서 이전 장 요소의 수에 1을 더한 것이다.
  • `appendix`: 부록을 나타내는 텍스트를 포함한다.
  • `dedication`: 포함된 구조적 요소의 헌사를 나타내는 텍스트이다.


구조적 요소는 다른 구조적 요소를 포함할 수 있으며, 닥북 문서에서 허용되는 유일한 최상위 요소이다.

3. 2. 블록 수준 요소

단락, 목록 등과 같은 요소이다. 순차적인 블록 수준 요소는 서로 "다음"에 렌더링되는데, 여기서 "다음"의 의미는 언어에 따라 다를 수 있다. 예를 들어, 한국어에서는 "다음"이 아래를 의미한다. 일본어에서는 단락이 종종 아래로 내려가는 열로 인쇄되며 열은 오른쪽에서 왼쪽으로 실행되므로, 이 경우 "다음"은 왼쪽을 의미한다. 닥북의 의미론은 이러한 종류의 언어 기반 개념에 완전히 중립적이다.

3. 3. 인라인 수준 요소

인라인 수준 태그는 강조, 하이퍼링크 등과 같은 요소이며, 블록 수준 요소 내에서 텍스트를 감싸는 형태로 사용된다. 이러한 요소는 단락 형식으로 렌더링될 때 텍스트가 줄 바꿈되지 않지만, 일반적으로 문서 프로세서가 글꼴, 크기 또는 유사한 속성을 변경하여 포함된 텍스트에 일종의 독특한 서지 처리를 적용하도록 한다. 닥북 프로세서가 `emphasis` 태그를 반드시 이탤릭체로 변환해야 하는 것은 아니다. 독자 기반 닥북 프로세서는 단어의 크기를 늘리거나, 텍스트 기반 프로세서는 이탤릭체 대신 굵은 글씨를 사용할 수 있다.

3. 4. 예제 문서

다음은 XML 형식의 간단한 닥북 문서 예제이다.







아주 간단한 책



제1장

안녕 세상!

당신의 하루가 훌륭하게 진행되기를 바랍니다!





제2장

안녕 다시 세상!







이 문서는 의미론적으로 "제목"이 있는 "책"이며, 각각 고유한 "제목"이 있는 두 개의 "장"을 포함한다. 이러한 "장"에는 텍스트가 있는 "단락"이 포함되어 있다. 마크업은 영어로 상당히 읽기 쉽다.

문서의 루트 요소는 `book`이다. 모든 닥북 요소는 XML 네임스페이스에 있으므로 루트 요소에는 현재 네임스페이스를 설정하는 ''xmlns'' 속성이 있다. 또한 닥북 문서의 루트 요소는 문서가 구축된 형식의 버전을 지정하는 ''version''이 있어야 한다. (XML 문서는 예시의 `id` 속성과 같이 여러 네임스페이스의 요소를 한 번에 포함할 수 있다.)

`book` 요소에는 `title` 또는 `title`을 포함하는 `info` 요소가 포함되어야 한다. 이는 자식 구조 요소보다 앞에 있어야 한다. 제목 다음에는 구조적 자식, 즉 이 경우 두 개의 `chapter` 요소가 온다. 각 요소에는 `title`이 있어야 한다. 여기에는 자유 텍스트와 첫 번째 장의 두 번째 단락에 있는 `emphasis`와 같은 다른 인라인 요소를 포함할 수 있는 `para` 블록 요소가 포함되어 있다.

닥북의 형식은 XML로 작성되어 있으며, 컴퓨터와 마찬가지로 사람도 읽을 수 있다. 이 형식은 "태그"(<book> 등)와 텍스트인 내용(Hello world! 등)으로 구성된다. 태그는 </book>와 같은 "닫는 태그"와 1:1로 대응된다. 문서 전체(book)는 두 개의 장(chapter)으로 구조화되어 있으며, 각 장은 하나의 제목(title)과 하나 이상의 단락(para)으로 구성된다. 이는 문서가 임의의 크기가 되더라도 성립한다.

주의해야 할 점은, 태그는 텍스트의 "구조"나 "의미"를 나타내는 것이지, "시각적 표현"이 아니라는 것이다. 즉, "이 단락을 굵게 하라" 또는 "가운데 정렬하라"와 같은 명령은 존재하지 않는다. 그런 설계인 것이다. 하나의 닥북 파일에서 여러 형식의 출력을 얻을 수 있지만, 각각 모양이 완전히 다르며, 심지어 요소의 배치조차 다를 수 있다.

3. 5. 스키마 및 유효성 검사

규칙은 닥북 XML 스키마에 공식적으로 정의되어 있다. 적절한 프로그래밍 도구를 사용하면 XML 문서(닥북 또는 기타)가 해당 스키마를 준수하는지 여부를 확인하기 위해 해당 스키마에 따라 문서를 검증할 수 있다. XML 편집 도구는 또한 스키마 정보를 사용하여 처음부터 규정을 준수하지 않는 문서를 만드는 것을 방지할 수 있다.

4. 저작 및 처리

DocBook은 XML 기반이므로 모든 텍스트 편집기나 전용 XML 편집기를 사용하여 문서를 만들고 편집할 수 있다. 스키마 파일을 제공하므로, 스키마 기반 내용 완성을 지원하는 XML 편집기에서 DocBook 편집이 가능하다. 표, 목록 항목 등은 DocBook 편집기에 복사 및 붙여넣기가 가능하며, DocBook XML 출력에 보존된다. XML 지원을 포함하는 모든 도구나 프로그래밍 언어를 사용하여 문서를 검증하고 처리할 수 있다.

5. 출력 형식

DocBook 파일은 DocBook XSL 스타일시트를 사용하여 HTML, PDF, XSL-FO 등 다양한 형식의 출력 파일을 생성하는 데 사용된다.[2] 이 스타일시트는 목차, 용어집, 색인 생성이 가능하며, 문서의 특정 부분을 선택하여 "튜토리얼" 또는 "퀵 레퍼런스 가이드"와 같이 여러 버전의 문서를 생성할 수 있다.

사용자는 자체 스타일시트나 프로그램을 작성하여 DocBook을 처리할 수도 있다. 노먼 월시(Norman Walsh)와 DocBook 프로젝트 개발팀은 HTML, PDF, RTF, man page, HTML Help 등 다양한 형식의 출력을 생성하기 위한 XSLT 스타일시트(및 DSSSL 스타일시트)를 유지 관리한다.

웹 도움말[2]은 DocBook XSL 스타일시트의 청크된 HTML 출력 형식으로, CSS 기반 페이지 레이아웃, 내용 검색, 축소 가능한 트리 형태의 목차 등의 기능을 제공한다. 검색 기능에는 어간 추출, 일치 강조 표시, 명시적 페이지 점수 매기기, 다국어 토큰 분석기가 포함된다. 검색 및 목차는 프레임셋 창에 나타나지만, 실제로는 div 태그와 쿠키로 구현된다.[8]

6. Simplified DocBook

DocBook은 초보 사용자에게는 다소 복잡하게 느껴질 수 있는 다양한 기능을 제공한다. 이러한 복잡한 기능들을 익히지 않고도 DocBook의 편리함을 경험하고 싶은 사용자를 위해 "Simplified DocBook"이 개발되었다. Simplified DocBook은 논문이나 기사와 같이 단일 문서 작성에 적합하도록 DocBook의 기능을 간소화한 버전이다 (즉, "책" 형태는 지원하지 않는다). Simplified DocBook DTD의 현재 버전은 1.1이다.[9]

7. 비판

오픈BSD의 mandoc 저자인 잉고 슈바르츠(Ingo Schwarzh)는 man 페이지에 사용되는 의미론적 ''mdoc'' 매크로에 비해 닥북이 열등하다고 여긴다.[10] 그는 닥북-mdoc 변환기를 작성하려 시도하면서(docbook-to-man과 같은 이전 변환기는 의미론적 요소를 다루지 않음), mdoc에서 다루는 요소에 비해 닥북의 의미론적 부분들이 "불필요하고, 중복되며, 동시에 불완전하다"고 생각한다.[10] 또한 슈바르츠는 닥북 사양이 태그 사용에 대해 충분히 구체적이지 않고, 언어가 버전 간에 이식성이 없으며, 세부 사항이 거칠고 전반적으로 일관성이 없다고 비판한다.[10]

참조

[1] 웹사이트 What is DocBook? http://docbook.org/w[...]
[2] 웹사이트 DocBook WebHelp Project http://blog.kasunbg.[...]
[3] 웹사이트 DocBook Editing https://www.oxygenxm[...] 2022-11-02
[4] 웹사이트 Getting Started with DocBook http://www.docbook.o[...]
[5] 웹사이트 Linux Kernel Documentation — the Linux Kernel documentation https://www.kernel.o[...]
[6] 웹사이트 Kernel documentation with Sphinx, part 1: How we got here [LWN.net] https://lwn.net/Arti[...]
[7] 서적 DocBook V5.0: The Transition Guide http://docbook.org/d[...] 2009-06-16
[8] 웹사이트 Web help documentation http://docbook.sourc[...]
[9] 웹사이트 Simplified DocBook http://www.docbook.o[...]
[10] 웹사이트 docbook2mdoc-1.0.0 released https://undeadly.org[...] 2019-04-19
[11] 웹사이트 The DocBook Schema Version 5.0 http://docs.oasis-op[...] OASIS 2019-08-27



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com