연초에 새해 다짐으로 기술 문서를 좀 쓰겠다고 생각했습니다. 짧더라도 자주 쓰는 게 좋을테니 블로그를 다시 열어야겠다고 생각했습니다.
어디다 블로그를 열까 잠깐 생각했습니다. 편하기로는 가입형이 좋겠지만 제게 맞는 서비스는 찾기 어려웠습니다. 기술 문서를 쓰려면 소스 코드 하일라이팅이 되어야 하는데 그걸 제공하는 데는 못봤습니다. 워드프레스 같은 설치형은 관리하기도 거추장스럽고 간단히 쓰기엔 거대한 물건입니다. 예전에 만들었던 블로그 엔진을 다시 돌려볼까 생각도 했지만 코드도 또 손봐야 하고 업그레이드도 계속 하자니 귀찮다는 생각만 들었습니다. 많은 기능이 필요하지 않은 간단한 시스템이면 좋겠다는 생각이 들어 그냥 정적 사이트 생성기를 쓰는 게 좋겠다는 생각이 들었습니다.
여기에는 Jekyll 이나 Middleman 같은 걸출한 도구들이 이미 있습니다. 하지만 이들은 문제가 있으니 Ruby나 Javascript로 만들어진 물건들이라는 점입니다. Python으로 만들어진 것까지 포함하여 이들은 관리하기가 여간 귀찮은 게 아닙니다. 소프트웨어도 유효 기간이란 게 있어서 제때 버전업하고 관리해주어야 합니다. 그런데 이들 환경의 개발 커뮤니티들은 호환성이란 걸 개뼈다귀만도 못한 걸로 인식하는지 버전업할 때마다 골치를 썩히는 걸로 유명합니다.
결국 고른 것은 Go 언어로 개발된 Hugo 라는 도구입니다. Go로 개발되었기 때문에 달랑 바이너리 하나로 배포가 되는 물건이라 관리가 편합니다. vm 버전이나 라이브러리 의존성 신경 쓸 필요가 없습니다. 최근에 만들어져서인지 기능도 충분히 갖춰져 있습니다. 정적 페이지 생성 속도도 빨라서 여러모로 좋은 도구라 생각합니다.
페이지 디자인은 제공되는 Theme 중에서 가장 간단하고 미니멀한 것(Hemingway2)으로 골랐습니다. 어차피 미감을 살리는 건 제게는 불가능한 미션이므로 간결한 모던 스타일을 추구하는 것입니다. :)
정적 사이트 생성기로 사이트를 관리하면 또 하나 편한 점이 git 같은 걸로 간단히 사이트 관리를 할 수 있다는 점입니다. 블로그 포스팅을 쓰고 사이트를 관리하는 것이 프로그래밍할 때와 비슷한 흐름입니다. 쓰기 편한 테스트 에디터를 써서 Markdown 포맷으로 포스팅을 작성하고 이를 git으로 관리합니다.
웹서버에 사이트를 전개하는 것도 git으로 합니다. 웹서버에다 원격 리포지터리를 두고 여기에 push되면 웹서버 document root로 checkout되게 post-update hook을 설정합니다. 이러면 로컬에서 Hugo로 생성한 정적 페이지들을 git으로 리포지터리로 push하면 웹서버 전개가 되는 것입니다.
우선은 블로그 포스팅 기능만으로 사이트를 열었습니다. 차차 Disqus 커멘트 기능도 연동하고, 검색 기능도 추가할 생각입니다. 무엇보다도 자주 글을 쓰고 포스팅하고자 합니다. :)