위키위키위키: 텍스트 파일 기반 PHP 위키 엔진
안녕하세요. 자타공인 위키 마니아 민구홍입니다. 꽤 오래 전부터 친구들을 만나면 늘 하던 말이 “요즘 위키 엔진 만들어요.”였습니다. 위키 엔진을 만드는 게 오랜 숙원이었거든요. 그동안 소문으로만 무성하던 위키 엔진 위키위키위키(WikiWikiWiki)를 기쁜 마음으로 소개합니다.
위키위키위키는 텍스트 파일 기반 PHP 위키 엔진입니다. 데이터베이스 없이, 복잡한 설정 없이, 바로 쓸 수 있는 위키를 표방합니다.
https://github.com/minguhong/WikiWikiWiki
처음에는 편하게 기존 위키 엔진 가운데 하나를 선택해 사용할까 했습니다. 그런데 여러 엔진을 하나하나 테스트해보니 한두 가지씩 발목을 잡았죠. 글을 쓸 노트를 한 권 마련하는 데 지나치게 까탈스러운 꼴이랄까요? 예컨대 위키백과에 사용되는 미디어위키(MediaWiki)는 지나치게 무거웠고, 도쿠위키(DokuWiki)는 특유의 독자적인 마크업 언어가 마음에 들지 않았습니다. 깃허브(GitHub) 등에 공개된 수많은 오픈 소스 엔진들은 더 이상 업데이트되지 않거나 제 입맛에 맞추기 복잡했고요. (즉, 코드를 이해하기 어려웠습니다.) 무엇보다 모두 불필요한 기능이 너무 많았죠.
- 텍스트 파일
- 마크다운
- 문서 간 쉬운 연결
제게 필요한 것은 이 정도가 전부였거든요. 위지위그 에디터나 이미지 첨부 같은 기능은 애초에 생각도 없었고요. 결국 추억 속에 자리한 케빈 켈리(Kevin Kelly)의 말(“올해 도전할 가장 가치 있는 목표는 1년 전에는 어쩜 이걸 몰랐을까 싶은 것을 배우는 일입니다.”)을 되새기며 핸드메이드 웹의 정신에 따라 저만의 노트, 즉 저만의 위키 엔진을, 즉 저만의 새로운 질서를 만들어보기로 마음먹었습니다. 파주타이포그라피배곳에서 강의하던 2017년 무렵이었죠.
그리고 2022년 무렵부터일까요? 조금씩 느긋하게 주말 오후를 투자한 끝에 제게 최적화한 위키 엔진을 만들고 말았습니다. 민구홍 매뉴팩처링의 도움을 받아 백지 상태에서 (제가 유독 사랑하는) PHP를 다시 공부하는 동시에 한 줄 한 줄 코드를 써나가면서요. 그 과정은 글쓰기와 다르지 않았습니다. 큰 얼개를 잡고, 문장, 즉 코드를 쏟아내고, 편집하고, 퇴고하고, 퇴고하고, 퇴고하고, 또 퇴고하고… 결국 몇 년에 걸쳐 제가 만든 것은 소프트웨어라기보다 영원히 베타 버전인 한 편의 글이 아닐까 싶습니다.
글쓰기에는 형용사와 부사는 반드시 필요하지 않다면 과감히 빼라는 금언이 있죠. 그런데 제가 위키 엔진을 만들면 즐겁게 사용할 주변 사람들을 하나둘 생각하다 보니 기능이 조금씩 늘어나고 말았습니다. 이때는 37시그널스의 모토(“어설픈 기능 열 개보다 확실한 기능 세 개.”)를 곱씹으며 무언가를 더하려는 욕망과 싸우고, 더하는 것보다 빼는 게 더 어렵다는 점까지 체감했고요.
다음은 그 결과물, 즉 위키위키위키의 주요 기능입니다.
- 간편 설치
- 마크다운 지원
- 문서 연결(
[[문서 제목]]), 문서 연동(![[문서 제목]]), 해시태그(#태그), 리다이렉트 - 문서 둘러보기 및 검색
- 편집 이력 관리
- 동시 편집 충돌 방지
- 문서 내보내기
- RSS, 사이트맵, llms.txt, llms-full.txt, 읽기 전용 API
- 사용자 관리
- 편집 권한(공개, 비공개) 설정
- 테마 추가
- 다국어(한국어, 영어)
- 다크 모드
- …






위키위키위키는 혼자 사용해도 좋고, 또 친구들과 함께 사용하면 더 좋습니다. 특히 학교, 동아리, 회사 등 사람과 생각이 모이는 곳에는 위키가 필요하다고 믿습니다. 미술 및 디자인계는 물론이고요. 위키위키위키로 누군가 미술 또는 디자인 관련 위키를 만들고 운영하는 모습이 벌써 눈 앞에 선합니다.
- 학교 위키
- Laurel Schwulst Wiki
- David Kim Wiki
- KAIST 시각도구연구실 위키
- 민구홍 위키
- 민구홍 매뉴팩처링 위키
- 새로운 질서 위키
- 위키위키위키 위키
- …
작고 단순한 위키가 필요한 분들은 모쪼록 한번 사용해보시고 편하게 말씀해주시면 감사하겠습니다. 어떤 말씀이든 환영합니다. 특히 “이 기능은 빼도 될 것 같은데요?” 같은 말씀이라면 더 즐거울 것 같습니다. 위키위키위키의 다음 버전은 지금보다 더 단단하고 날씬해질 수 있도록이요.
그런데 왜 이름이 ‘위키위키위키’냐고요? 워드 커닝햄(Ward Cunningham)이 만든 최초의 위키인 ‘위키위키웹’에서 ‘웹’을 떼어낸 자리에 그저 ‘위키’를 하나 더 덧붙인 결과물입니다. 무엇보다 좋은 것은 적어도 세 번 이상 반복할 필요가 있다고 생각합니다.
다음은 버드콜에서 열린 ‘위키위키위키 토크토크토크’ 발표 자료입니다.
