우연히 지킬(Jekyll)을 만났다. 내가 이것을 유심히 살펴보게 된 것은 “정적 페이지”를 생성한다는 말 때문이었다. 요즘같은 시대에 정적 페이지라니? 그런데 가만히 생각해보면, 글이라는 것은 일단 완성이 되면 그 이후 변하는 경우가 많지 않다. 변한다 하더라도 오타를 교정하는 정도로 작은 부분에 불과하다. 실제로 변하는 부분은 새로 달리는 댓글과 같은 것들이다. 본문 자체는 거의 변하지 않는 정적인 텍스트이다. 그러니 글을 쓴다는 것은 기본적으로 정적인 페이지와 관련된 것이다.

게다가 그 정적인 텍스트가 마크다운(Markdown) 형식이다. 허허, 이런 놀라운 도구가 존재할 줄이야. 그리고 또 하나가 있다. github로 지킬을 쓸 수가 있다. 참 놀라움의 연속이다. 내가 직접 설치하지도 않고1, 돈을 내지도 않으면서 이런 도구를 쓸 수 있다는 것은 정말로 놀라운 것이다.

“기계의 아름다움”이라는 책이 있다. 기술적 산물에 아름다움의 기준을 적용하는 내용을 담고 있다. 그리고 이 지킬이라는 도구는 그런 아름다운 기술 중 하나로 충분히 인정받을 수 있을 것이다. 지킬이 작동되는 원리과 구조를 확인하고 정말로 ‘우아하다’는 생각이 들었다. 단순하고 간결하지만 충분히 강력한 공학적 산물이었다. 누구나 간결하고 잘 정리된 코드를 좋아한다. 간결하고 명확하면서 기능에 충실한 알고리듬이 잘 정리된 코드의 형태로 구현되고, 그것이 예상했던 것처럼 완벽하게 작동하는 모습을 보면 누구나 거기에서 “아름다움”을 발견할 수 있을 것이다. 그리고 지킬이 바로 그러했다.

Image of Jekyll and Github

지킬이라는 이름은 유명한 소설 “지킬 박사와 하이드씨”에 나오는 그 지킬에서 가져온 것이다. 그럼 “하이드”는 어디에 있을까? 사실 하이드가 따로 있는 것이 아니라 지킬의 다른 쪽이 하이드였던 것처럼 지킬도 사소한2 실수나 문제 하나만으로도 순식간에 하이드로 변신한다. 간결하게 작성한 코드에는 어느 것 하나 허투루 쓴 것이 없고, 간단한 코드라고 해도 그것의 수행력은 대단히 크기 때문에 작은 실수가 언제든 사이트 전체를 날려버릴 수가 있다. 오늘만 내가 그렇게 두 번을 통째로 날렸다. 그래서 그런지 이제 지킬의 구조는 확실하게 이해하게 되었다. 물론 안다고 실제로 잘 하는 것은 아니지만 말이다.

아직은 여기저기 손댈 곳이 많다. 겉모습의 일부만 살짝 손댔을 뿐이다. 그래서 이 글에는 일부러 그림도 넣고, 각주도 넣고 여러 가지를 테스트해 보고 있다. 별 탈 없이 잘 굴러가길 바랄 뿐이다.

  1. 예전에는 내가 원하는 방식과 기능을 모두 직접 구현하는 것을 좋아했었지만, 시간이 지날수록 업데이트에 대한 부담으로 남이 만들어준 것을 서비스의 형태로 쓰는 것을 더 선호하게 되었다. 만약 지킬도 내가 직접 설치해야만 했다면 내가 과연 이것을 선택했을까 하는 의문이 든다. 

  2. 악마는 디테일 속에 숨어 있다고 했던가. 여기도 비슷한 것이 있다. 마크다운은 정말 강력한 문법 체계이지만 간단한 문제들이 의외로 잘 해결되지 않는 경우가 있다. 예를 들면, 이미지 가운데 정렬하기와 같은 것들이다. 방법이 없는 것은 아니지만, ‘마크다운’스러운 방법은 간단하지 않다. 본문에 있는 그림도 그다지 아름답지 않은 방법으로 가운데 정렬을 했다.