이곳은 민구홍, 즉 내가 운영하는 위키다. (어떤 이름을 붙이는 게 좋을까? ‘민구홍 위키’? ‘민구홍 백과’? 아니면 ‘체리 농장’? 내게는 이름이 중요하다. 하지만 적당한 이름을 정하기 전까지는 그냥 ‘이곳’으로 쓰고 부를까 한다. 하지만 이름을 정해야 관련 문서를 만들 수 있다.) 이곳은 매순간 흩어지려는 생각과 말을 문자로 붙잡아 문서로 치환해 하이퍼링크를 통해 서로 연결하는 곳이다. 알랭 로브그리예의 질투(La Jalousie) 속 주인공처럼 끊임없이, 이따금 자폐적으로 중얼거리는 곳이다. 매일 한두 문장, 아니 한두 구절, 아니 한두 단어, 아니 한두 글자, 아니 한두 문장부호라도 덧붙여보려 하는 만큼 일지일 수도 있겠다. 거기서 작게나마 뭔가 배웠을 (또는 배우려 했을) 테니 TIL도 맞겠다. 어떤 대상에 관한 풀이라는 점에서 나만의 사전이거나 그 대상은 모두 내게서 비롯한다는 점에서 나에 관한 긴 주석일지도 모르겠다. 단순하지만 표준화된 형식을 갖춘 문서로 정리된다는 점에서 인덱스카드, 또는 그 카드를 정리한 뚱뚱한 인덱스카드 한 장에 가까운 한편, 그 자체로 웹사이트인 만큼 웹을 둘러싼 크고 작은 (문자와 기호가 대부분인 만큼 특히 타이포그래피에 관한) 기술을 미리 적용해보고 실패해보는 실험실이기도 하다. (슬기와 민 웹사이트의 푸터에 자리한 문장처럼 이곳 또한 그렇게 “영원히 제작된다.”) 어쨌든 나에 관한, 순서가 중요하지 않은 목록이자 어제의 추억과 기억을 오늘과 내일의 하이퍼링크로 만들려는 작지만 큰 시도이자 나의 취향과 야심을 부끄러움을 잊고 드러내는 곳이자 안팎으로 ‘나’라는 함수를 통과한, 즉 나를 비롯해 나를 중심으로 나를 둘러싼 거의 모든 것에 새로운 질서를 부여한 결과물이라는 점만큼은 분명하다.
그나저나 굳이 이런 걸 만든 까닭은? 글쎄? 이럴 때 나는 다른 사람의 말을 뒤적거리고, 거기서 해답 또는 해답 비슷한 것을 찾으면 맹신하고 맹종하는 편이다. 자주 인용하곤 하는 와이어드의 초대 편집장 케빈 켈리는 이렇게 말했다.
올해 도전할 가장 가치 있는 목표는 1년 전에는 어쩜 이걸 몰랐을까 싶은 것을 배우는 일입니다.
매년 자신의 생일에 그가 자신의 블로그에 게시해온 조언 가운데 하나인데, 자기 계발서에서나 읽을 법한 이 문장이 나를 그저 이끈 것 같다. 그를 좋아하는 까닭이다. 생각해보면 모든 시작은 참 사소하고 보잘것없다.
처음에는 편하게 기존 위키 엔진 가운데 하나를 선택해 사용하려 했다. 하지만 여러 엔진을 하나하나 테스트해보니 한두 가지씩 발목을 잡았다. 글을 쓸 노트를 한 권 마련하는 데 지나치게 까탈스러운 꼴이랄까. 위키백과에 사용되는 미디어위키는 지나치게 무거웠고, 도쿠위키는 특유의 독자적인 마크업 언어가 마음에 들지 않았다. 깃허브 등에 공개된 수많은 오픈소스 엔진들은 더 이상 업데이트되지 않거나 내 입맛에 맞추기 복잡했다. (즉, 코드를 이해하기 어려웠다.) 무엇보다 모두 불필요한 기능이 너무 많았다. 물론 각 엔진을 만든 사람들의 마음을 충분히 이해한다. 엔진을 사용할 ‘모두’를 위해 뭔가를 계속 마련하고 싶었을 테지만, 안타깝게도 나는 그 ‘모두’에 해당하지 않았다. 내게 필요한 기능은 훨씬 단순했다. 결국 케빈 켈리의 말을 되새기며 핸드메이드 웹의 정신에 따라 나만의 노트, 즉 나만의 위키 엔진을 만들어보기로 마음 먹었다. 다음 조건을 만족하는…
- PHP로 동작한다.
- 텍스트 파일 데이터베이스를 사용한다. 즉, 모든 문서는 서버에 텍스트 파일로 저장된다.
- 문서의 내용을 마크업하는 데는 마크다운을 사용한다. 이를 활용해 각 문서를 연결하는 하이퍼링크를 손쉽게 만들수 있다.
- 로그인한 사용자만 새 문서를 만들거나 기존 문서를 편집할 수 있다.
- 문서의 내용을 지우면 해당 문서가 삭제된다.
그렇게 두어 달에 걸쳐 주말 오후를 고스란히 투자한 끝에 내게 최적화한 위키 엔진을 만들고 말았다. 민구홍 매뉴팩처링의 도움을 받아 백지 상태에서 PHP를 공부하는 동시에 한 줄 한 줄 코드를 써나가며. 그 과정은 내가 늘 이야기하듯 글쓰기와 다르지 않았다. 큰 얼개를 잡고, 문장, 즉 코드를 쏟아내고, 편집하고, 퇴고하고, 퇴고하고, 퇴고하고, 또 퇴고하고. 주요한 코드만 살펴보면 왜 진작 시도해보지 않았을까 싶을 만큼 단순했다. 언젠가는 공개하고 싶다. (그때는 반드시 이곳뿐 이곳을 가능하게 한 위키 엔진을 가리키는 이름까지 필요해진다.) 그전까지는 새로운 질서에서 활용해볼 수도 있겠다.
내 바람대로 서버의 특정 폴더에 저장된 텍스트 파일은 다시 마크다운 파서와 스마티팬츠(SmartyPants)까지 거쳐 완벽에 가까울 만큼 깔끔한 HTML로 렌더링된다. 데이터베이스가 텍스트 파일인 덕에 다루거나 백업하기 쉽고, 경우에 따라 서버에서 직접 텍스트 파일을 만들거나 수정할 수 있는 한편, 마크업 언어로 마크다운을 사용할 수 있게 된 덕에 내가 즐겨 사용하는 iA 라이터에서도 바로 활용할 수 있다. 결국 이 위키 엔진은 PHP 파일 몇 개로 작동하는 텍스트 파일의, 텍스트 파일에 의한, 텍스트 파일을 위한 콘텐츠 매니지먼트 시스템인 셈이다.
저술 및 편집 지침을 마련한 한편, 몇 가지 기능이 추가되기도 했다. 그 가운데 하나가 위키에 필수적인 역링크(backlink)다. 즉, 문서의 제목을 클릭하거나 터치하면, 해당 문서가 언급된 문서를, 정확히는 해당 문서의 제목을 렌더링한다. 그렇게 각 문서는 서로 (게다가 자동으로) 어깨동무하며 나조차 생각지 못한 새로운 질서를 만든다.
한편, 이곳에 사용한 글자체는 프리텐다드, 글자색은 웹 안전색 가운데 하나인 snow
, 배경색은 midnightblue
다. 꼬마 때 즐겨 본 미국 드라마 천재 소년 두기는 주인공 두기 하우저가 컴퓨터 앞에서 일기를 쓰는 장면으로 모든 에피소드가 끝난다. 그 장면이 내 추억 속 어딘가에 자리한 것 같다.
그렇게 독자는 이곳에서 두서 없는 문장과 이따금 그 문장 속 구절이나 단어를 감싼 (다소 딱딱해 보이는) 하이퍼링크와 마주한다. 그리고 하이퍼링크는 밤하늘(midnightblue)의 눈(snow)처럼 반짝인다. 게다가 녹지도 않고, 그래서 신발을 축축하게 더럽히는 흙탕물을 만들지도 않으며.
주소는 다음과 같다.