Blogware, Diary

WordPress를 버리고 Jekyll로

WordPress를 버리다

지난번에 잠깐 네이버로 옮길 때처럼 임시로 버리고 이런게 아니라 그냥 더 이상 사용하지 못할것 같았다. 아울러서 온갖 종류의 CMS도 솔직히 더 이상 사용하기가 힘들다는 느낌이다. 정확하게는 사용하기 힘들다기보다 내 입맛에 정확하게 맞는 CMS가 없다.

이전까지 사용하고 있던 워드프레스 블로그. 그래도 나에겐 여태까지 가장 좋은 블로그툴이었다.
이전까지 사용하고 있던 워드프레스 블로그. 그래도 나에겐 여태까지 가장 좋은 블로그툴이었다.

WordPress는 그동안 내 취향에 가장 걸맞는 CMS였다. 최근들어 모바일 어플리케이션이 나오면서는 더욱 그랬다. 댓글이 달리거나 유입이 많이 늘거나 하면 알람으로 알려주고, 다른 WordPress 사이트를 구독하기도 편리했다. WordPress 자체도 많은 기능이 업데이트 되면서 점점 더 편리해지는 게 눈에 보였다. 최근에 자동 업데이트 기능이 만들어지고 나서부터는 도대체 원리가 어떻게 되는지 궁금할 지경이었다.

그런데 이런 걸 다 떠나서 WordPress는 내게 있어 중대한 몇가지를 만족시키지 못하고 있었다.

WordPress를 버리게 된 썰

얼마전에 Cafe24에서 VPS 호스팅을 하나 얻었다. 현재 Seeko Mobile 앱에 사용하는 서버 비용이 한달에 2만 2천원씩 나가고 있는데 솔직히 너무 비싸다는 생각이 들었기 때문에, 차라리 내가 직접 관리를 해야 하는 귀찮음이 있더라도 한달 5천원짜리 VPS로 가는게 낫지 않을까 싶었다. (돈도 돈이지만 VPS가 제공하는 램 용량이 훨씬 많다.)

Cafe24 VPS 호스팅 사양. 나는 램 512MB짜리인 일반형을 사용중이다. 이전에 사용하고 있던 JSP 호스팅은 2만 2천원에 JVM 256MB이었다.
Cafe24 VPS 호스팅 사양. 나는 램 512MB짜리인 일반형을 사용중이다. 이전에 사용하고 있던 JSP 호스팅은 2만 2천원에 JVM 256MB이었다.

이왕 서버를 옮기는 김에 PHP 모듈을 설치해서 내 워드프레스 블로그도 거기로 옮겨서 1개 서버에서 전부 처리하게 하면 좋지 않을까 싶은 생각이 들었다. 해서 Tomcat은 냅두고 일단 nginx와 php-fpm, MySQL을 설치해서 구동을 좀 시켜봤다.

그런데 워드프레스 파일을 옮기면서 드는 생각이, “개인 홈페이지인데 이렇게 거창하게 워드프레스 써야되나?” 하는 것이었다. 최근 워드프레스가 굴러가는 걸 보면 개인블로그보다는 오히려 기업을 위한 CMS쪽으로 발전하는 것 같은 모양새이기도 하고, 기능은 분명 많은데 신경써야 할게 너무 많다는 생각이 들었다. SSH로 서버간에 파일 복사하는데 php 파일 갯수만 3000개를 넘나드는 걸 보면서 그냥 한숨만 나왔다.

Wordpress는 점점 무거워지고 있다. 결코 가벼운 블로그 툴이 아니다.
WordPress는 점점 무거워지고 있다. 결코 가벼운 블로그 툴이 아니다.

두번째로 MySQL을 VPS에 깔고나서는 PHP 호스팅 쓸때는 미처 알지 못했던 것을 알게 되었다. MySQL은 절대 가볍지 않다. 엄청 무겁다. 홈페이지 이동 작업 하고 일주일은 커녕 하루만에 MySQL 때문에 메모리 스왑 일어나면서 내 홈페이지 페이지 리프레시 하는데 거의 30초 가까이 걸릴 때는 정말이지 뒷목잡고 쓰러지고 싶었다. 서버 관리자 일을 하는 친구에게 SOS를 쳐서 도와달라고 했기에 망정이지. 그렇다고 도로 호스팅을 쓰자니 용량도 부족하고 트래픽도 모자라며, VPS의 가격을 생각해보면 성능/기능 대비 가격이 너무 비쌌다.

Ncity 호스팅을 샀는데 뭐가 걱정일까 싶지만, 사실 NCity 호스팅은 나를 너무 괴롭혔다. VPS로 워드프레스를 옮겼던 이유 중에 하나가 NCity였다. 특히 권한문제가 아주 속을 썩였는데, 이것때문에 나는 수동으로 폴더를 생성해서 이미지를 업로드하곤 했다. FreeBSD 기반이고 내부적으로도 일반적인 호스팅하고는 다르다는 건 전부터 알고 있던 문제였지만, 워드프레스를 사용하기엔 너무 힘들었다. 솔직히 말해 일주일도 안돼 포스팅을 하는 걸 포기하다시피 했다.

그리고 백업의 문제. 워드프레스를 백업하는 건 쉬운일이 아니었다. 일단 파일 하나라도 빠지면 구동이 안되는게 일상 다반사인데다가 워드프레스를 새로 설치하고 데이터를 export/import 하는 것은 더욱 힘든일이라, 결국 플러그인, 이미지, 워드프레스 모듈 파일들을 전부 백업해놔야 하는데, 이게 파일 숫자가 상상 초월이었다. 앞에서도 말했지만 php 파일 갯수만 천단위고, 이미지 파일의 경우는 용량 최적화랍시고 이미지 하나마다 리사이징을 한 6~7번은 해놔서 전체 파일 갯수는 대략 5천개 정도였다. 이것뿐이면 말도 안한다. MySQL도 데이터베이스 이전시켜야 하고 데이터베이스 내부를 직접 건드려서 수정을 좀 해줘야 서버 이전이 완료된다.

이쯤 되니까 그냥 “테마는 어느정도 선 이상이면 됐고, 그냥 한없이 가볍고 글쓰는데 집중할 수 있는 블로그 툴 없을까” 하는 생각이 들기 시작했다.

생각해본 대안들

우선 내가 대안으로 생각한 것은 ghost라는 이름의 Node.js 기반의 블로그툴과 하루프레스란 이름의 HTML 생성기였다. 특히 후자는 데이터베이스가 필요없다고 하길래 매우 마음에 들었었다.

Free, Open, Simple을 모토로 하는 이른바 Just a blogging platform인 ghost. kickstarter에서 시작한 프로젝트로 현재 Ver 0.3.3까지 나와있고 WordPress.com과 같은 호스팅 서비스를 준비중이다.
Free, Open, Simple을 모토로 하는 이른바 Just a blogging platform인 ghost. kickstarter에서 시작한 프로젝트로 현재 Ver 0.3.3까지 나와있고 WordPress.com과 같은 호스팅 서비스를 준비중이다.
웹 서버와 데이터베이스가 필요없다는 Haroopress. 사실 웹서버가 필요없다는 건 Github Pages를 이용한다는 말이다. 제작자가 Markdown 편집기인 Haroopad 제작중이라 바쁜지 2012년 Ver 0.9.2를 마지막으로 업데이트가 되고 있지 않다.
웹 서버와 데이터베이스가 필요없다는 Haroopress. 사실 웹서버가 필요없다는 건 Github Pages를 이용한다는 말이다. 제작자가 Markdown 편집기인 Haroopad 제작중이라 바쁜지 2012년 Ver 0.9.2를 마지막으로 업데이트가 되고 있지 않다.

그런데 ghost는 Node.js 기반이라 너무 생소했다. 커스텀이고 뭐고 일단 Node.js 자체에 익숙하질 않다보니 삽질만 하다가 끝나버렸다. ghost를 Service로 실행시키는데에 실패함을 끝으로 ghost에 대한 관심을 접기로 했다.

하루프레스는 Markdown 텍스트만 작성하면 그걸 기반으로 HTML을 자동 생성해주니 그걸 FTP나 Github Pages에 집어넣으면 된다고 하길래 처음에는 아주 큰 매력을 느꼈다. 거기에다 한국인 개발자가 만든거라 알아먹기도 쉬웠고. 헌데 문제는…… 테마였다.

Twitter Bootstrap을 기반으로 한 테마라면서 “개발자스러움”을 강조하고 있길래 처음에는 오오!? 하면서 들어가봤다가 그냥 포기하고 나왔다. 그냥 내 취향이 아닌 테마들 뿐이었다. 그리고 사용해보려고 하니 이것도 로컬에 설치한 Node.js를 이용하는 녀석이라 깔끔하게 포기. 하지만 다행히 아무 수확이 없었던 건 아니고 하루프레스에서 한가지 키워드를 얻었다. Octopress가 그것이었다.

Octopress. 해커들을 위한 블로깅 프레임워크라고 소개하고 있다. Haroopress처럼 Github Pages를 기본적으로 이용하려 하는 Ruby 기반의 정적 HTML 생성기이다.
Octopress. 해커들을 위한 블로깅 프레임워크라고 소개하고 있다. Haroopress처럼 Github Pages를 기본적으로 이용하려 하는 Ruby 기반의 정적 HTML 생성기이다.

하루프레스와 비슷하지만 Node.js가 아닌 Ruby로 만든 정적 HTML 생성기라는 것이다. 사용해봤더니 기본 테마도 아주 괜찮고 써먹을만 해 보였다. 하지만 결국 이것도 포기할 수밖에 없었는데, 외국에서 만들어진 거라 한글로 블로깅하기엔 너무 어려웠다. 별의 별짓을 다 해봐도 발생하는 Encoding Error에 결국 이것도 포기하고 말았다.

포기하려고 마음 먹을 때 쯤, Octorpess가 Jekyll이란 것을 사용하기 좋게 포장한 것이란 이야기를 Stackoverflow.com에서 보았다. 그럼 Jekyll은 뭐지 하고 찾아봤더니 Octopress와 거의 동일한 녀석이었다. 원조답게 Jekyll은 Octopress보다 훨씬 사용자가 많았고 문서화도 잘되어 있었다. 무엇보다 이건 한글이라고 해도 Encoding Error가 없었다! Jekyll 예시 사이트 목록에 중국인이 몇몇 보인다 했더니 UTF-8 지원을 제대로 해주고 있었던 모양이다.

그리하여 본격적으로 Jekyll을 사용하기 시작했다.

Jekyll을 사용해보니 좋은 점

Jekyll. Octopress의 원조가 되는 녀석 되시겠다. Octopress와는 달리 UTF-8 지원이 잘 되서 한글을 사용하는데에 문제가 없었다. 상당히 많은 개발자들이 사용하고 있는지라 유저들이 만든 플러그인이나 테마가 상당히 많다.
Jekyll. Octopress의 원조가 되는 녀석 되시겠다. Octopress와는 달리 UTF-8 지원이 잘 되서 한글을 사용하는데에 문제가 없었다. 상당히 많은 개발자들이 사용하고 있는지라 유저들이 만든 플러그인이나 테마가 상당히 많다.

Jekyll은 일단 로컬 작업이 기본이다. 그래서 Dropbox에 Jekyll 관련 폴더를 집어넣어 놓고 사용하는데 Jekyll 모듈 자체는 Ruby 설치 경로에 설치되는지라 Dropbox에 들어가는건 html 파일 몇몇과 markdown 파일, 이미지 파일 정도였고 다 합쳐도 용량이 50MB가 안됐다. (앞으로 이미지를 첨부할 일이 많으면 이것도 많아지겠지만) 작업하고 세이브할 때마다 저장하게 만들어놓으니 백업 걱정이 없다. 구조도 간단해서 이 파일이 뭐하는 파일인지 알기도 쉽다.

무엇보다 평생계정으로 신청해놨던 NCity를 다시 사용할 수 있게 되었다. PHP의 권한 문제는 더 이상 겪을 필요가 없으니 더 이상 호스팅 비용이 들지 않는 NCity로 가는게 당연한 이치니까.

글 작성은 markdown을 이용하는데 현재 사용하고 있는 편집기는 Sublime Text 2 이다. 어쩌다보니 알게된 에디터인데 엄청 좋아서 반할거 같다. 곧 구매할 예정인데 구매하고 나면 리뷰를 한번 써볼 예정. Markdown을 이용해서 글을 쓰는 것은 위지윅 에디터를 이용하는 것보다 훨씬 더 집중하기 좋은 환경을 제공해 주었다.

테마의 경우는 기본적으로 들어있는 테마가 너무 심플하니 마음에 들어서 조금만 수정해서 사용하기로 했다. 시간이 나면 조금씩 더 꾸며볼 생각이지만 아직은 이정도 선에서 만족.

기타 설정

댓글 시스템은 DISQUS를 사용했다. 뭔가 다루기 귀찮게 되어 있어서 워드프레스 사용할 때는 사용하지 않았는데 대안이 없어 사용해보니 더 좋은 것 같다. 내친 김에 좀 고생해서 네이버 블로그에 있던 댓글까지 강제로 긁어와서 DISQUS에 밀어넣었다. (DISQUS가 네이버 블로그 댓글 가져오기를 지원하는게 아니다. 내가 수동으로 복사 붙여넣기 해서 긁어온 다음 WXR 파일 양식에 맞춰서 직접 Import용 XML 파일을 작성했다.)

이미지 캡션 다는 문제는 caption.js를 가져다 사용했다. 워드프레스의 경우는 Shortcode를 사용해서 이미지 캡션을 만들었지만 caption.js은 img 태그의 alt 정보를 읽어와서 캡션으로 만들어준다. Markdown 가독성 면에서도 아주 좋아지니 일석 이조인듯. 모바일에서 이미지 크기가 고정되는 문제가 있길래 수정을 좀 해야 했지만.

검색 기능은 정적 HTML만 사용하는 시점에서 포기해야 하기 때문에 어쩔 수 없다고 생각하지만, 누가 내 블로그를 와서 검색할것 같진 않아서 그냥 쿨하게 포기하기로 했다. 나중에 구글 검색창 정도는 달아줘야겠다.

결론 : Jekyll 쓰세요. 두번 쓰세요.

가장 귀찮은 웹 언어는 HTML이다. 그런데 가장 빠른 웹 언어 역시 HTML이다. php나 jsp 등은 데이터베이스로부터 데이터를 읽어와서 이걸로 페이지를 만드는 연산시간이 있기 때문에 HTML보다 빠를 수가 없다. 그럼 HTML을 편하게 자동으로 작성해주는 툴만 있으면 좋은 것이 아닐까. 그리고 Jekyll은 이걸 충분히 만족시킨다고 생각한다.

Jekyll은 업데이트 속도도 빠르다. 최근 3~4주에 1회 꼴로 업데이트가 진행되었고 곧 2.0.0 메이저 업데이트가 있을 예정이라고 한다.
Jekyll은 업데이트 속도도 빠르다. 최근 3~4주에 1회 꼴로 업데이트가 진행되었고 곧 2.0.0 메이저 업데이트가 있을 예정이라고 한다.

Jekyll은 콘솔 환경이 필수적이라 솔직히 말해 진입장벽은 높은 편이고, 실제로 Jekyll을 사용하는 사람들은 대부분 개발자인지라 아예 아무것도 모르는 사람이 사용하기에는 힘든게 단점이고, Github pages를 사용하지 않으려는 나에겐 매번 FTP 업로드를 해야하는 귀찮음도 분명 있지만 (Github Pages를 사용할 경우 그냥 git push 명령이면 장땡이다.) 그래도 아직까진 워드프레스 환경보다 많은 장점을 느끼고 있다.

본래 워드프레스 관련 포스팅을 좀 해볼 생각이었는데 이젠 Jekyll 홍보대사를 자처해야 할것 같다.

Published by AlphaFactory

프로그래밍을 좋아하는 건축공학도입니다. 블로그는 프로그래밍과 IT쪽으로 현재 운영중이지만 앞으로 건축관련 내용도 다뤄보려고 합니다. 원래 Android 및 Java를 주력으로 다뤘지만 최근에는 개인 프로젝트로 인하여 C#을 주력으로 다루고 있습니다.

18 thoughts on “WordPress를 버리고 Jekyll로”

  1. kalkin7 (칼킨) says:

    Jekyll이 참 좋은 것 같은데, 역시 진입장벽이 꽤 큰 것 같기는 합니다.
    그런데 FTP 업로드는, 윈도우즈를 쓰신다면 Goodsync를 사용하면 해결될 것 같습니다. Goodsync에 업로드할 폴더를 지정한 후 변경된 파일만 업로드하도록 하면 쉽게 블로그 업데이트가 가능하지 않을까 생각합니다.

    1. AlphaFactory says:

      Jekyll이 참 좋긴 한데 Ruby를 설치해야하고 콘솔창에서 빌드해야 하는 것 등 귀찮은 점이 많고 개발자가 아닌 사람들에게는 생소한 점이 참 많긴 하죠. GUI 기반의 프로그램이 있다면 그나마 좀 더 괜찮을텐데 말이죠.

      그리고 안그래도 FTP 지원되는 괜찮은 싱크 프로그램이 없나 찾고 있던 참이었습니다. Filezilla로 일일히 수동업데이트를 하곤 했는데 Goodsync 한번 사용해봐야겠군요. 좋은 프로그램 추천 감사드립니다. ^-^

  2. Jiheon Seo says:

    그리하여… 새로운 주소는요??

    1. AlphaFactory says:

      지금 보시는 이 홈페이지가 Jekyll 기반으로 만들어진 홈페이지입니다. 🙂

  3. openhiun says:

    요즘에는 prose.io와 같은 서비스들이 나와서 지킬 빌드및 푸쉬 과정을 줄여주네요

    1. AlphaFactory says:

      prose.io는 요즘 저도 아주 잘 써먹고 있습니다. 🙂

      1. openhiun says:

        넵 혹시 prose.io에서 YAML frontmatter 에러나 이미지가 첨부 안되는건 해결하셨나요?? 전 잘 안되네요 ㅠㅠ

        더불어서 SEO문제는 어떻게 해결하시는지도 그냥.. 궁금하네요. 제 블로그는 검색 엔진에 이상하게 안잡혀셔요.. ㄷ

        1. AlphaFactory says:

          음… 저는 수동으로 로컬에서 마크다운 문서를 작성하고 push 하여 새 글을 작성하고 prose.io는 간단한 수정용도로만 사용하고 있어서…

          SEO는 그냥 구글 쪽에만 신경쓰고 있습니다. 네이버나 다음쪽에 rss를 등록해두긴 했는데 제대로 돌아가고 있는지 체크도 안하고 있네요 ㅋㅋㅋ

  4. Coder says:

    외람되지만 가장 위에 워드프레스 테마가 뭔지 알 수 있을까요?

  5. 서울비 says:

    글 잘 봤습니다. 그런데 현재 테마의 메뉴열기 버튼이 눌러도 반응이 없네요. 아이폰5 ios8.1 사파리입니다

    1. AlphaFactory says:

      아직 모바일 최적화는 진행중이라 어쩔수 없네요. ㅠ_ㅠ

  6. Yuniati says:

    혹시 Drupal 7은 써보셨어요?

    1. AlphaFactory says:

      Drupal 7은 사용해보지 않았습니다.

  7. Hyecheol Jang says:

    깃허브 거치지 않고도 jekyll로 포스팅 가능하다는 말씀이신가요?
    티스토리에서 블로깅하다가 Jekyll로 갈아타려고 하는데, 깃허브 때문에 안그래도 복잡한게 더 복잡해지는거 같아요 ㅠㅠ
    HTML generator면 그냥 아무 FTP에 올리고 돌리면 될 것같긴 한데, 실제 구현한건 못봤네요 ㅛㅠㅠ

    1. AlphaFactory says:

      네 깃허브는 그냥 플랫폼일 뿐이고, 서버만 있다면 얼마든지 가능합니다.

  8. 타브리스 says:

    Jekyll기반의 깃허브 블로그를 사용하고 있는데요,
    글 검색기능이 없어서 기능을 넣을까 하고 찾고있다가 이 블로그를 보게되었습니다.

    검색기능이 괜찮아 보이는데,
    어떻게 만드셨는지 여쭤봐도 될까요?

    1. AlphaFactory says:

      이 글은 작성한지 꽤 오래된 글입니다. 현재는 워드프레스로 돌아오게 되었습니다.
      Jekyll에서 검색기능을 구현하시려면 아마 ajax를 이용하여 자바스크립트로 구현하셔야 할 것입니다.

댓글은 블로그 운영에 힘이 됩니다!