[도쿠위키] 네임스페이스의 이해

사용환경

  • 운영체제 : CentOS 5.5 Final
  • 커널버전 : Linux 2.6.18-194.26.1.el5 i686 GNU/Linux
  • 아파치버전 : httpd-2.2.3-43.el5.centos.3
  • PHP버전 : php-5.1.6-27.el5_5.3
  • 도쿠위키버전 : dokuwiki-2010-11-07 “Anteater

연관포스트

  1. [도쿠위키] 도쿠위키 설치
  2. [도쿠위키] 문서생성
  3. [도쿠위키] 연습용 위키생성 및 템플릿 변경
  4. [도쿠위키] 단계별 헤드라인
  5. [도쿠위키] 문자처리 및 리스트 사용
  6. [도쿠위키] 링크 만들기

01. 시작하기 전에…

정말 오랜만에 도쿠위키에 대한 포스팅을 하는 것 같습니다. 도쿠위키에 대한 내용으로 다수의 포스트를 하면서 느낀 것인데 포스트를 작성하기 전에 미리 계획을 세우고서 작성을 했어야하는 후회가 듭니다. 사실 상 미리 계획을 세워두지 않아서 그런가 너무 내용이 산만한 것 같이 느껴집니다. 특히 네임스페이스와 관련된 내용이 조금 꺼림찍합니다. 별로 어려운 개념도 아닌데 미리 설명을 했어야하는 느낌이 들거든요ㅋ

어찌되었든 다시 도쿠위키에 대한 내용으로 포스팅을 시작하도록 하겠습니다. 요즘에 포스팅이 너무 뜸한 것 같아서 빨리 도쿠위키에 대한 포스팅을 마무리하고 워드프레스에 대한 내용을 포스팅해보려고 합니다.(아직도 워드프레스에 대해서 모르는 것이 너무 많아서요;;ㅋ) 그 이후에는 아무래도 CMS(Contents Management System) 중에서 phpBB나 MediaWiki에 대해서 공부를 해보기 위해서 설치를 해보고 관련된 내용을 포스팅할 것 같습니다.

02. 네임스페이스 = 디렉토리

도쿠위키의 가장 큰 특징으로는 DB를 사용하지 않는 파일기반의 위키라는 것입니다. 실제로 도쿠위키가 설치된 디렉토리 내에는 특정 페이지의 내용이 txt 파일로 보관되어 있습니다. 도쿠위키의 용어로 txt 파일하나는 page(페이지)에 해당합니다. 그리고 네임스페이스는 page들의 묶음으로 파일을 묶는 디렉토리로 표현됩니다. 간단하게 정리하면 아래와 같습니다.

페이지(page) = <strong>txt파일</strong>
네임스페이스(namespace) = <strong>디렉토리</strong>(페이지들의 묶음)

개인 서버 내에 예전 공개용 위키(http://wiki.simplism.kr/)를 백업해둔 data 디렉토리의 내용을 tree명령어로 출력해봤습니다.

경로를 보시면 도쿠위키를 설치한 디렉토리 내의 data디렉토리, 그 밑에 pages 디렉토리에 txt파일들이 보관됩니다. 각 txt파일들은 설정된 네임스페이스명으로 생성된 디렉토리로 묶여있음을 확인할 수 있습니다.

03. 네임스페이스 구분자

도쿠위키에서 네임스페이스를 구분하는 구분자는 콜론(:)입니다. 파일시스템 내에서는 슬래쉬(/)라는 구분자로 디렉토리가 구분되지만 도쿠위키에서는 콜론으로 네임스페이스를 구분을 합니다. 예를 들어서 설명을 해보도록 하겠습니다.

<strong>예</strong> : 서버관리/리눅스/우분투.txt
<strong>결과</strong> : 서버관리:리눅스:우분투.txt

사실 특별한 것은 없습니다. 단지 네임스페이스를 구분하는 단위가 콜론이라는 것뿐…

04. 네임스페이스 생성

네임스페이스를 생성하는 방법에는 아래처럼 두 가지가 있습니다. 사실 네임스페이스를 생성한다기 보다는 새로운 네임스페이스에 속한 새로운 페이지를 만드는 작업입니다.(즉, 네임스페이스명을 덧붙인 페이지를 생성하면 자동으로 네임스페이스와 페이지가 생성되는 것입니다.)

  1. 검색을 이용하는 방법
  2. 내부링크를 이용하는 방법

저의 경우에는 도쿠위키를 마치 트리처럼 작성하는 편이라서 검색을 이용하는 방법보다는 내부링크를 이용해서 네임스페이스와 페이지를 생성하는 편입니다. 내부링크를 이용해서 생성하는 방법으로 설명하겠습니다. 아래와 같은 예에 해당하는 내부링크로 페이지를 생성합니다.

: [[:서버관리:리눅스:우분투]]
결과 : {INSTALL_PATH}/data/pages/서버관리/리눅스/우분투.txt 파일이 생성됨
(마찬가지로 서버관리라는 디렉토리와 서버관리 하위에 리눅스 디렉토리가 같이 생성됩니다.)

위 처럼 결국 페이지를 생성하는 것이지만 콜론(:)을 이용해서 해당 페이지가 속할 네임스페이스를 지정해서 페이지를 생성하면 해당 네임스페이스가 없다면 네임스페이스(디렉토리)가 생성되고, 이미 존재한 네임스페이스라면 해당 네임스페이스(디렉토리)에 페이지(page)를 생성해줍니다.

05. 위키를 트리처럼 작성하기

제가 트리처럼 도쿠위키를 사용한다는 이야기는 조금 개인적인 팁입니다만, 아마 도쿠위키를 많이 사용해보신 분이라면 대부분 이렇게 활용하지 않을까 생각합니다. 도쿠위키의 첫 페이지인 start 페이지에는 내용은 없고, 단지 하위 네임스페이스의 페이지로 연결되는 것입니다. 설명이 조금 어렵지만… 그림으로 표현하면 아래와 같습니다.

주제별로 네임스페이스와 페이지를 생성하고, 각 네임스페이스별로 start 페이지를 두고서 내용을 담은 실제 페이지들을 링크만 해주는 식입니다. 이렇게 네임스페이스와 내부링크를 이용해서 트리구조로 문서를 작성하면(마치 디렉토리를 이용해서 파일을 정리하는 것처럼) 검색을 하지 않고도 자신이 찾으려는 문서를 쉽게 찾을 수 있습니다.

위와 같이 위키의 네임스페이스와 페이지를 구성하는 것은 개인적인 취향에 따라서 다를 수 있습니다. 네임스페이스를 사용하지 않고 루트네임스페이스에({INSTALL_PATH}/data/pages/) 계속 문서를 만들고 검색을 통해서 원하는 페이지를 찾을 수도 있습니다. 그렇지만 그렇게 위키를 구성하는 것은 개인적으로는 체계적이지 않아서 선호하지 않습니다.(실제로 검색을 통한다고해도 정확히 자신이 원하는 문서를 더 빨리 찾을 수 있는 것이 아니기 때문입니다.)

06. 마치면서…

아… 대충 작성을 완료하고서 문서를 한 번 읽어봤는데, 엉망입니다…ㅋㅋ 어느 누가봐도 이해가 잘 되는 문서를 작성하기는 너무 어려운 것 같습니다. 그래도 오픈오피스 프레젠테이션을 이용해서 그림까지 동원했음에도 쉽게 이해가 되는 문서는 아닌 것 같습니다. 아직도 글 쓰는 연습을 더 해야할 것 같네요…

07. 참고문서

  1. http://www.dokuwiki.org/ko:syntax