마크다운 파일의 인코딩
테크니컬 라이팅에서 프로그램 개발로 나의 직무가 바뀌었다. 사내에서 이제까지 개발된 프로그램들과 스크립트들이 아주 많다. 그것들의 관리와 배포에서 여러 문제들이 있었다.
프로그램 파일들이 여러 서버에 흩어져 있었고, 심지어 개발자가 퇴사하면서 행방을 알 수 없는 소스 파일들도 있었다. 개발자들에게는 깃 서버가 편하겠지만, 그것을 통해 (다른 팀들의) 사용자들에게 프로그램들을 배포한다는 것은 환영받을 만한 방법이 아니다. 우리는 FTP 서버를 원격 드라이브처럼 사용해왔다. 각 팀은, 당연히, 자기 팀의 디렉토리에 대해서만 쓰기 권한을 갖고 있다. 문제는 누구나 모든 디렉토리에 접근할 수 있다는 것이다. 중요한 자산으로 여겨지는 프로그램들의 소스 파일들이 공개되지 않아야 한다는 윗분들의 생각과 별개로, 그리고 FTP 서버의 접근 권한을 세밀하게 조정하여 그런 문제점들을 해소할 수 있다고 해도, 파일질라를 탐색기처럼 사용하는 것이 마뜩하지 않았다. 여러 궁리 끝에 NAS의 DiskStation Manager가 제공하는 공유 링크 기능을 이용하기로 했다. 다른 팀들이 접근할 수 없는 디렉토리를 NAS에 추가하도록 관리팀에 요청했다. 그리고 링크 목록을 담은 마크다운 파일, index.md를 작성하였다. 그 파일에는 자신에 대한, http://10..../sharing/...과 같은 url이 포함되어 있어서, 그 파일을 갖고 있는 사람은 언제든 그 링크를 클릭하여 다시 내려받을 수 있다.
중요한 또 다른 문제는 프로그램들에 대한 문서들을 만들지 않았다는 것이다. 문서 작성을 좋아하는 사람은 없다. NAS와 연계하여 위키에 각 프로그램에 대한 페이지를 작성하는 것을 검토했다. 다른 팀에서 사용 중인 미디어위키를 살펴보았다. 무겁다. 개발자와 사용자, 작성자와 독자가 서로 만족할 수 있는 가볍고 용이한 접점을 찾아야 한다. 나는 개발자들에게 매뉴얼이나 다른 문서들도 모두 마크다운으로 작성하도록 지시했다.
미디어위키를 대신할 만한 것을 찾을 때까지 이 방법들을 유지하려 했으나, 곧 불만이 터져나왔다. 프로그램 목록이 어떻게 바뀌었는지 확인하기 위해 index.md 파일을 거듭 내려받는 것이 불편하다는 것이다. 부정할 수 없다. 웹 서버 중 하나에 디렉토리를 추가하고 index.md 파일을 올렸다. 그런데 내 컴퓨터에서 열 때와 달리 웹을 거치니 한글 문자들이 다른 것들로 바뀌어 나온다.

이 문제를 해결하는 데에 거의 한나절을 허비했다. 결론적으로 말하자면, 마크다운 파일을 BOM이 붙은 UTF-8로 인코딩해야 한다. 윈도즈에서 BOM 없는 UTF-8이 더 이상 문제가 되지 않은 지가 10 년은 되었을 것이다. 그러니 BOM이 문제가 될 것이라고 전혀 생각하지 못했다. 패킷에 싸여 데이터가 전달되다 보니, 웹 브라우저가 데이터 인코딩을 올바르게 짐작하지 못한 게 아닌가 싶다. BOM은 군더더기이고, 한때 그것이 윈도즈 텍 사용자들에게 문제가 되기도 했었다. 하지만 마크다운 파일에는 전혀 해가 되지 않을 것이다.
그래서 내가 작성한 마크다운 매뉴얼에 이렇게 추가했다.
