2021년 3월 23일 화요일

wiki.GenoGlobe.com 웹사이트 정리 - 네임스페이스를 활용한 체계적 글 작성

GenoGlobe.kr 위키 사이트에 있던 음악 관련 개인적인 글들을 wiki.GenoGlobe.com으로 이전하였다. 위키 사이트의 체계를 새로 구성하는 것과 맞물려 있어서 단순한 복사로 끝나지는 않았다. 몇몇 오류도 바로잡았고, 필요없는 정보는 제거하였다. 가장 큰 변화는 네임스페이스를 적극적으로 활용하게 된 것이다. 이전에는 접근 제어 목록(Access Control List, ACL)의 관리를 통해서 외부인의 접근을 차단할 사적인 페이지만을 특정 네임스페이스 밑에 두는 정도로 관리를 했었다. 사적인 페이지라고 해서 야릇한(?) 그림이나 글이 저장된 것은 아니다. 시스템 관리 및 설정과 관련해서 기억해야 할 정보가 있을 뿐이다.

도쿠위키를 통해서 네임스페이스라는 용어를 처음 접했기 때문에 이것은 위키 시스템에서만 쓰는 용어로 생각했었다(링크). 하지만 이것은 잘못된 기억이었다. Mastering Perl for Bioinformatics라는 책의 앞부분에서 package 선언과 함께 분명히 네임스페이스라는 용어를 보았던 것을 지금 막 기억해 냈다. https://flylib.com/books/en/3.329.1.17/1/에서 책 내용을 조금 인용해 보자.

1.3 Namespaces
A namespace is implemented as a table containing the names of the variables and subroutines in a program.
(중략)
The package declaration described in the next section is one way to assign separate namespaces to different parts of your code.

www.GenoGlobe.com의 글 배치 상황은 다음 그림과 같다.


왼편 사이드바 Topic 하위에 보이는 항목들은 전부 루트 네임스페이스에 있는 개별적인 위키 페이지에다. 빨간 네모로 표시한 Music on Linux는 말 그대로 [[Music on Linux]]로 표시된다. 대문자는 전부 소문자로 환원되고, 공백은 '_'로 바뀐다는 것은 상식이다. 이제 Music on Linux 위키 페이지를 작성한다고 가정하자. 이미지를 삽입한다고 해도 이는 전부 루트 네임스페이스에 존재한다. 글을 쓰다가 다소 분량이 길어질 것 같은 섹션을 하위 카테고리에 넣는 것이 좋겠다는 생각이 들었다. 그러면 비로소 문서 내에 [[music_on_linux:audacity를_이용한_녹음|Audacity를 이용한 녹음]]을 삽입하면 된다. 이제야 비로소 Music on Linux라는 네임스페이스가 생긴 것이다. Music on Linux는 루트 네임스페이스에 존재하는 독립 위키 문서이기도 하고, 같은 이름을 갖는 네임스페이스가 별도로 존재하는 것이다.

처음에는 Music on Linux라는 위키 문서 자체도 네임스페이스 하위에 존재해야 한다고 생각했었다. 그래서 사이드바의 항목을 [[Music on Linux:idx]]로 선언하고 글 작성을 시작했었다. 기술적으로는 아무런 문제가 없다. 그러나 위키 사이트 상단 부분의 이전 방문 페이지 목록에는 토픽의 구체적인 항목과 무관하게 전부 'Trace: • idx'로 표시되는 것이 아닌가? 도쿠위키로서는 당연한 행동이지만, 별로 효율적이지는 못하다. 그래서 도쿠위키의 원본 웹사이트를 관찰하면서 어떻게 구조를 짜는 것이 좋은지 고민하다가 지금과 같은 방식을 쓰기로 한 것이다. 정답인지는 모르겠으나 최소한 'local optimum'은 된다고 생각한다.

다음으로 생각해 볼 것은 위키 페이지 중간의 헤드라인을 링크로 이용하는 문제이다. '='의 수가 많을수록 상위 헤드라인다. 이것은 얄궂게도 '#'를 사용하는 마크다운 문법과는 정반대이다. 

출처: https://www.dokuwiki.org/wiki:syntax

헤드라인은 https://mydomain.com/thisPage#thisHeadeline과 같은 양식으로서 URL의 일부로 쓰일 수 있다. 이것은 참 좋은 기능인데, 나중에 헤드라인을 고쳐쓰게 되면 이 URL은 더 이상 유효하지 않게 된다. 페이지 타이틀처럼 실제 URL(혹은 위키의 파일 시스템 내부)에서 쓰이는 제목과 겉으로 드러나는 정보를 다르게 표현할 수는 없기 때문이다. 즉, [[thisPageTitle|실제로는 이렇게 보여주세요]]를 헤드라인에 대해서는 적용하지 못한다. 최소한 내가 알기로는 그렇다. 따라서 나중에 헤드라인을 수정하게 되면 이를 인용하는 다른 웹문서에서 접근 문제가 생길 수 있음을 알아야 한다. 어쩌면 헤드라인(또는 웹문서 내의 서브섹션)을 외부에서 링크하게 만드는 것은 바람직하지 않은 버릇일 수도 있다.

헤드라인에 대한 링크는 그 문서 자체에서 TOC(목차)를 통해 빠른 접근을 하는 경우에만 활용을 하는 것이 좋은 습관일 것이다. 외부 방문자가 내 위키문서의 헤드라인에 대한 URL을 북마크하였거나 자신의 웹문서에 넣었다면 나도 어쩔 도리는 없다. 내 위키 사이트 내에서는 되도록 헤드라인 레벨의 링크는 하지 말고, 그 섹션이 포함된 위키 페이지 자체를 내부적으로 링크하는 것이 좋을 것 같다. 

댓글 없음: