이 블로그를 지탱하는 기술들

- 4 mins

블로그 개설 기념으로 폭풍 포스팅!

블로그를 만들면서 고려했던 것들

이 블로그를 만들면서 하고자 했던 것들은

이 외에도 많은 것들이 있겠지만 세가지 사항이 주가 되었고, 그에 따라 필요한 기능들을 리스트업 할 수 있었습니다.

등의 요소를 놓고 보니 너무 바라는 것이 많은가 싶기도 하고 기존의 블로그 툴로 이런 것들이 가능할까 싶기도 해서 처음에는 직접 개발을 생각했습니다.

막상 개발을 해보니 혼자서 쓸 블로그를 개발하는 것임에도 요구사항이 너무나 많았고(…), 어느 정도 개발을 완료해도 요구사항은 더 많이 생기는(…) 문제가 있더군요.

나 같은 생각 하는 개발자가 백명은 더 있지 않을까 하는 생각에 블로그 서비스들을 더 찾아보게 되었고, 제법 맘에 든다 하는 서비스도 있었습니다. Medium, Brunch, Tistory의 글쓰기 기능은 훌륭했지만 그 외의 기능에 만족하지 못했고, 설치형 블로그 중에는 Wordpress라는 매우 훌륭한 서비스가 있었지만 결국 Jekyll을 최종 선택하게 되었습니다.

Jekyll과 함께 몇가지 기술 스택을 사용하게 되었는데 이 포스팅에서 선택 배경에 대해 설명하고자 합니다.


목록

  1. Jekyll
  2. uterances
  3. GitHub

Jekyll

Jekyll

Jekyll은 설치형 블로그 입니다. 설치형 블로그의 장점 중 하나는 서버 용량이 허용하는 한 파일을 무한대로 올릴 수 있다는 것이죠. 따라서 이미지 파일을 올릴 때 파일 개수나 용량을 걱정할 필요가 없습니다.

Jekyll은 ruby 기반의 프로젝트 입니다. 한 때 ruby를 주 언어로 사용한 적이 있어서 커스터마이징이 상대적으로 쉬울 것으로 생각했고, 실제로 원하는 기능을 구현하는데 큰 어려움이 없었습니다. 제약사항이 있긴 하지만 요구사항을 구현하 데에 있어서(…) 전혀 무리가 없었습니다.

Jekyll 소스를 GitHub에 올리기만 하면 자동으로 웹페이지가 생성됩니다. 설치형 블로그이지만 호스팅형 블로그 처럼 쓸 수 있습니다. 게다가 무료임. Jekyll로 GitHub Page를 만드는 방법은 다른 분들이 정리를 잘 해두셔서 굳이 여기서 적지는 않겠습니다.

또다른 설치형 블로그인 Wordpress는 PHP로 구현이 되어 있는데 PHP에 대한 경험적, 본능적인 꺼림직함(ㅋㅋ) 때문에 웬지 모르게 Wordpress를 기피하게 되었고, 성능 문제 또한 Wordpress 대신 Jekyll을 선택하게 된 이유 중의 하나입니다.

블로그를 만들면서 기존에 가지고 있던 도메인(kimsungyoo.com)에 연결을 하는 것이 목표 중 하나였습니다. 호스팅형 서비스에서는 이 기능이 가능한 것도 있고, 불가능한 것도 있었지만 설치형 서비스에서는 전혀 이상 없이 구현이 가능했습니다. 그리고 GitHub 호스팅을 하면서도 커스텀 도메인에 연결하는 것이 가능했고, 결국 이 방법으로 구현하게 되었습니다.

Jekyll은 Wordpress와 더불어 테마가 많기로 유명합니다. indigo theme는 깔끔하고 원하는 형태를 거의 갖추고 있어서 약간의 커스터마이징을 거친 후 바로 사용하고 있습니다.

서비스를 사용하는 도중 기술 지원이 중단되거나 서비스가 죽어버리는 일이 없게 하는 것도 고려사항 중의 하나였습니다. maintaining이 잘 되고 있거나 큰 단체에서 관리를 해주는 서비스를 선택하려 했고, GitHub에서 지원을 해주는 만큼 Jekyll은 앞으로도 지속적으로 관리가 잘 될 것이라고 생각합니다.

Jekyll의 단점으로는 CMS(글 쓰기 툴) 기능을 들 수가 있습니다. 호스팅형 블로그는 CMS 기능이 잘 구현되어 있는데에 비해 Jekyll은 jekyll-admin이라는 플러그인을 통해 글을 작성하거나, 텍스트 에디터를 통해 markdown 문법으로 글을 작성한 후에(지금 이 글을 작성하는 방법입니다.) 소스코드를 업로드 합니다. 이 방법이 번거롭긴 하지만 개발자인 나에게 있어 그닥 어려운 일은 아니어서 markdown 연습도 할 겸 Jekyll을 사용하기로 결정했습니다.

utterances

utterances는 댓글 플러그인입니다. 간단한 설정만 하면 복잡한 구현 없이도 포스팅에 댓글 기능을 만들어 줍니다.

블로그 댓글 서비스로 주로 사용하는 것은 Disqus이고, Facebook comment도 간혹 사용 하더군요. 하지만 Disqus는 기존에 사용한 적도 없고, 디자인도 그리 이쁘지 않다고 생각되어서 탈락. Facebook Comment 기능은 모르는 사람이 블로그에 들어왔다가 사적인 공간인 페이스북으로 들어오게 될 가능성이 있어서 탈락. (소심한 소시민입니다…)

그러던 차에 어느 블로그에서 utterances를 사용하는 것을 보았는데 처음에는 GitHub 댓글을 블로그에 달아두었나 했었는데, GitHub 이슈를 댓글로 만들어주는 플러그인이었습니다. repository를 public으로 설정해야 한다는 제약사항이 있긴 하지만 어차피 블로그는 소스코드까지 공개할 예정이므로 통과.

이 블로그에 올 사람들은 주로 개발자일 것이라 생각되어 GitHub 계정은 다들 갖고 있을 것이므로 댓글 쓰는 것도 무리가 없을 것이라 생각되어 utterances를 댓글 플러그인으로 사용하게 되었습니다.

GitHub

GitHub은 소스코드 저장소 및 호스팅 용도로 사용하고 있습니다. 기존에도 개발을 할 때 GitHub을 사용해 왔던 터라 소스코드 저장용으로 사용하는 것은 전혀 무리가 없었고, 호스팅은 DNS 설정만 하면 기존의 도메인에 연결까지 가능해서 채택하게 되었습니다.

원래는 서버를 만들고 깃헙에서 웹훅을 받아서 빌드를 하고 통과하면 배포까지 자동화하는 시스템 구성을 생각했으나 개발할 것들이 어렵지는 않으나 귀찮은 것이 많고(…) GitHub에서 도메인 연결까지 되는 마당에 뭐하러 직접 만드나(DRY를 신봉합니다!) 하는 생각에 계획을 수정하게 되었습니다.

게다가 GitHub 호스팅을 사용하면 커스텀 도메인을 연결해도 https 인증서를 발급받아 주더군요! 무료이고 원클릭으로 발급에서 적용까지 완료됩니다. 사용하지 않을 이유가 없습니다.


정리

개인용 블로그를 만들기에는 Jekyll + GitHub이 간편하고 훌륭한 서비스를 제공해 준다고 생각합니다. 더 큰 서비스를 구현하기에는 부족할 수도 있겠지만 개인 용도로는 무리없이 잘 사용하고 있습니다.

숙원사업인 블로그 만들기를 완료했는데 블로그 글쓰기가 더 힘든 일일 줄은 몰랐습니다.

긴 글을 읽어주신 분이 있다면 감사드리고 우리 고양이 사진 보고 가세요. (…)

yaong

kimsungyoo

kimsungyoo

소소한 저의 블로그에 와주셔서 감사합니다.

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora