2016년 4월 10일 일요일

지킬(Jekyll): 워드프레스의 강력한 경쟁자

지킬(Jekyll)이란 사이트 개발 툴 들어보셨나요? 깃허브(Github)는 아마 들어보셨겠죠? 제킬은 개발자/연구자들이 가장 좋아하는 브랜드(?) 중 하나인 깃허브에서 개발한 사이트 개발 툴입니다. 사이트 개발 또는 블로그 툴이라면 역시 워드프레스(Wordpress)가 가장 유명한데요, 요즘 심심치 않게 워드프레스에서 지킬로 사이트를 이사했다는 이야기가 들려오고 있습니다. 특히 하드코딩에 익숙한 개발자/연구자들 사이에선 말이죠. 

빠르고 심플한 사이트 개발툴로 떠오르고 있는 지킬

저도 지금의 T-Robotics 구글 블로그를 워드프레스나 지킬로 옮길 생각입니다. 이게 그냥 막 쓰기엔 편하긴 한데, 사이트를 바꿀 수 있는 자유도도 적고, 또 무엇보다 너무 느리더군요. 글 쓰는 것도 가끔 자동완성기능 때문에 html이 지속적으로 깨져 불편하기도 하고... 그래서 옮겨타려고 합니다. 그렇다면 워드프레스의 아성을 위협하고 있는 지킬의 장점은 무엇일까요?

먼저 알아두셔야 할 점은 지킬은 static (정적인) 사이트라는 것입니다. 워드프레스가 대부분 dynamic (동적인) 사이트인 것이 비해서 말이죠. 뭔 말인지 아시겠죠?... 라고 하면 모르실 거란거 다 압니다ㅎㅎ 둘의 장단점을 비교해드리지요.

[Link] "Static Vs Dynamic websites – what’s the difference?"

[Static website의 장단점] (+) 개발하기가 쉽고 개발 비용도 싸다.(+) 용량이 적어 호스트 비용도 싸다.(-) 사이트를 업데이트 하기 위해선 전문가 지식이 필요하다. (-) 따라서 일반 유저가 접근하기 쉽지 않다.(-) 컨텐츠가 고립될 수 있다. 
[Dynamic website의 장단점] (+) 기능이 많고 전문지식 없이도 업데이트 하기 쉽다.(+) 새로운 컨텐츠가 사용자들을 다시 끌여들여 검색에도 유리하다.(+) 전문가/비전문가의 협업이 가능하다(-) 사이트가 느리고 개발비용이 비싸다.(-) 호스트 비용이 약간 더 든다. 
위 링크의 글에선 "지금까진 정적 사이트가 많았지만 점점 많은 사람들이 다이나믹 사이트를 애용하게 될 것이다"라고 밝히고 있습니다. 하지만 워드프레스(동적사이트)에서 지킬(정적사이트)로 옮기는 사람들은 그 반대의 움직임을 보이고 있죠. 이들이 본인의 웹사이트/블로그를 지킬로 옮기는 이유는 무엇일까요?


[Link] "WordPress vs. Jekyll: Why You Might Want to Switch"


일단 위의 글에서 필자는 8년 동안 워드프레스로 블로그를 해왔지만 늘 (1) 느린 블로그 환경, (2) 트래픽이 몰릴 때 다운되는 현상, (3) 멀웨어에 자주 공격을 당하는 상황에 힘들어 했다고 합니다. 특히 (3)에 대비해 여러 보안 플러그인도 설치하고 했지만 완벽히 방어할 수는 없었다고 했죠. (사실 워드프레스로 만든 로열모 사이트도 한번 멀웨어에 감염된 적이 있었습니다;;)

제킬은 정적 사이트이기 때문에 PHP 언어 등을 이용한 서버 소프트웨어 없이 HTML, CSS 등의 정적파일들 만으로 사용자의 컴퓨터에서 사이트 생성이 가능합니다. 따라서 매우 빠르고, 가볍죠. 특히 제킬은 Markdown이라는 온라인 문서 편집 표준 양식을 따르는데, 위키, 깃허브 ReadMe 파일 등을 작성하듯 글을 작성할 수 있습니다. 따라서 Markdown에 익숙한 사용자라면 기존 블로그보다 오히려 글 작성에 편안함을 느낄 수도 있을 것입니다. 

제킬은 일반 블로그들 처럼 웹에디터에서 글을 작성하는 방식이 아닌, Markdown과 같은 정적파일들을  미리 생성한 후 업로드(또는 서브밋!)하는 방식을 취하고 있습니다. 따라서 일반인들에겐 매번 코드를 서브밋해야하는 것이 번거롭고 어렵게 느껴질 수 있겠지만, 오히려 개발자/연구자들에겐 이것이 더욱 기분좋은 일일지도 모르겠습니다. (하지만 내 주변 연구자/개발자들은 여전히 이 방식이 불편하다고 하는 사람도 많았네요. 선택에 신중하시길...!)


(이하 내용은 위에 링크한 "WordPress vs Jekyll 글" 내용 요약)


1. 워드프레스는 과하다.

만약 다양한 기능을 모두 구현하고 싶은 유저라면 워드프레스가 좋을 것입니다. 하지만 오로지 "블로깅"만을 원한다면 가벼운 지킬을 추천합니다. 지킬은 딱 블로깅에 필요한 것들만 있기 때문이지요. 또한 글은 마크다운 파일을 업로드하는 방식이기 때문에 글 작성을 위해 당신이 선호하는 아무 에디터나(예를 들면 sublime text) 이용할 수 있답니다. 

2. 워드프레스는 과한 트래픽 약하다.

제킬은 비교적 가벼운 정적 페이지만을 로드하기 때문에 서버에 부담을 주지 않습니다. 따라서 서버가 느려질 일도 없고, 다운될 일도 없죠. 물론 여러분의 블로그가 이런 관심을 받을 일도 많지는 않겠지만(;;;) 그래도 밝은 미래에 대비합시다.

3. 워드프레스는 느리다.

워드프레스는 다이나믹 코드와 데이터베이스 콜에 의존하기 때문에 느립니다. 물론 이를 극복하기 위해 많은 최적화 방법들이 도입되고 있지만, 그래도 정적사이트에 비할 바는 아니죠. 결국 다기능과 심플함 사이의 선택이 될 것 같네요. 

4. 워드프레스는 해킹의 타겟이 되고 있다.

많은 사이트들이 워드프레스로 만들어지고 있습니다. 다시말해 해커들의 먹잇감이 워드프레스 플랫폼을 기반으로 하여 늘어나고 있으며, 따라서 더욱 많은 해커들의 노력(?)이 워드프레스 사이트 공격이 집중되고 있다는 뜻이지요. 따라서 이러한 위험을 피하는 가장 좋은 길은 아마도 다른 플랫폼을 이용하는 일일 것입니다. 지킬 같은 서비스를요. 

5. 워드프레스는 호스팅 비용이 비싸다.

필자는 그동안 외부 호스팅 사이트를 이용해 약 60달러/월의 비용을 지불하면서도 사이트 다운을 막을 수 없었다고 합니다. 하지만 지킬로 옮긴 이후에는 호스팅을 위해 Digital Ocean에 단 5달러만 투자하고 있다고 하네요. 만약 돈을 더 적게 내고픈 분이라면 사용량에 따라 유동적으로 과금하는 Amazon S3 호스팅도 괜찮을 것 같습니다.

아마존 S3의 호스팅 가격. 아마존 S3는 사용한만큼 돈을 지불한다.
이제껏 지킬을 옹호는 입장을 대변해보았는데요, 사실 제가 지킬에 관심을 갖은 계기는 딥러닝의 신성 Karpathy가 블로그를 워드프레스에서 지킬로 옮겼다는 글을 본 후였습니다. 지킬로 개인의 프로페셔널 사이트를 작성하면 왠지 개발자/연구자 면접에서도 플러스 점수를 받을 수 있을 것 같기도 하네요. (참고글: "프로그래머가 이력서 읽는 법").

여기선 지킬의 장점만 주르륵 써놨지만 사실 이것을 반대하는 여론도 만만치 않습니다. (저의 페이스북 글 참고) 코딩에 익숙하신 분들조차 '이거 너무 불편하다'란 의견들이었죠. 또한 만약 워드프레스로 사이트 개발을 배워놓으신다면, 나중에도 다양한 사이트 개발에 좋은 경험이 되실 수 있기 때문에 워드프레스를 공부하시는 쪽도 나쁘지 않을 것 같습니다.

여러분의 선택은 무엇인가요? 워드프레스인가요, 아니면 지킬인가요? 저는 오랫동안 연구할 사람이니 지킬에 마음이 더 기울어지고 있습니다만....