idea: Distributed wiki

요즘 학교에 다니는지라, 이런저런 문서를 작업할 일이 많다. 뭐 회사다닐때도 많긴 했지만, 학교의 무선랜 환경이 그다지 좋지 않기 때문에 위키나 스프링노트에 문서작업을 하는 요즘에는 애로사항이 좀 많다. (다행히도 왠만한 강의실에서 무선랜이 다 되기 때문에 큰 문제는 없지만… 그래도 불안한건 사실이다! 간간히 넷이 끊겨 주시는데 정서 불안..)

이래서 생각난 것이 Mercurial과 유사한 형태의 저장 메커니즘을 가진 위키 시스템이다. 쉽게 말하면, 로컬에 위키 솔루션을 설치하고 원격에 있는 위키의 내용을 당겨(pull)와서 로컬에서 편집 및 저장을 자유롭게 하고, 네트워크가 사용 가능한 시점에 원격에 있는 위키에 밀어(push)넣는 방식이다. 중앙집중식 저장 메커니즘과는 달리 remote가 특정 서버가 아닌 설치된 위키 솔루션이라면 그 어느 것이든 상관이 없다는게 다른 점이랄까?

여기서 더 나아가, 데이터 뿐만이 아니라 위키 솔루션의 구현에 필요한 코드/이미지/데이터 역시 동일한 방식으로 관리할 수 있다. 즉, 집에 있는 위키솔루션을 업그레이드 하고 나서, 변경된 내용을 홈페이지에 있는 위키솔루션에 push를 하면 홈페이지에 있는 위키 솔루션이 업데이트가 되는거다. (물론 변경된 위키데이터들도 업데이트가 된다.) 그리고, 랩탑에 있는 위키솔루션에서 홈페이지에 있는 위키솔루션을 pull해오면 랩탑도 업데이트되는 거다.

이 정도로 생각을 해보니, 지금 사용하고 있는 Dokuwiki(혹은 RDB를 사용하지 않는 그 어떤 위키라도)에서 충분히 가능한 내용인듯 하다. 일단 각 노드에 php를 구동할 수 있는 웹서버를 설치해두고 위키 솔루션 전체를 Mercurial로 관리하는 거다. 그리고, 이런 작업을 위해 약간의 유틸리티 작업만 해주면 충분히 가능할 것 같다. (해보다가 뭣하면 이런 용도로 하나 만들지 뭐.)

음. 내친김에 Dokuwiki+hg로 한번 해볼까.