도쿠위키를 통해서 네임스페이스라는 용어를 처음 접했기 때문에 이것은 위키 시스템에서만 쓰는 용어로 생각했었다(링크). 하지만 이것은 잘못된 기억이었다. 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의 글 배치 상황은 다음 그림과 같다.
처음에는 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을 북마크하였거나 자신의 웹문서에 넣었다면 나도 어쩔 도리는 없다. 내 위키 사이트 내에서는 되도록 헤드라인 레벨의 링크는 하지 말고, 그 섹션이 포함된 위키 페이지 자체를 내부적으로 링크하는 것이 좋을 것 같다.
댓글 없음:
댓글 쓰기