𝝅번째 알파카의 개발 낙서장

[Jekyll] GitHub Pages를 이용해 나만의 블로그 만들기 - 1. Jekyll이란?

posts

Jekyll

※ 본 게시물은 Jekyll 시절의 게시글을 토대로 복원한 게시물입니다.

개요 🔗

대형 포탈이나 크고 작은 플랫폼을 통해 자신만의 블로그를 만들 수 있다. 이러한 플랫폼을 통한 블로그는 연동된 계정과 버튼 클릭 몇 번으로 만들 수 있을 정도로 쉽고 간편하다. 하지만 이와 같은 블로그는 페이지의 기본 프레임이 정해져있고, 자유로운 커스터마이징이 제한된 편이다. 자신만의 색이나 가치관을 담은 블로그를 만들기 위해선 소위 "기성품"이 아닌 방법을 찾아야하는데, 이는 곧 자신이 직접 웹 페이지를 제작하고 퍼블리싱, 호스팅까지 전반적인 웹 서비스 자체를 구축해야하는 큰 작업으로 이어진다. 어찌어찌 페이지를 제작한다 하더라도, CSS를 통한 디자인이나 JavaScript같은 부가기능은 프레임 제작 이상으로 어렵다. 여기까지는 어떻게 자력으로 했다고 하더라도, 호스팅은 돈이 든다. DB까지 연동한다면 금액은 더욱 커지게 된다. 내가 원한건 단순한 블로그였는데.

GitHub Pages를 활용하면 위와같은 문제의 대부분을 해결할 수 있다. GitHubGitHub Pages 프로젝트를 통해 특정한 이름을 가진 Repository 내부의 파일들을 github.io 도메인으로 퍼블리싱해준다. 즉, 무료로 웹 호스팅을 제공받을 수 있는 셈이다. GitHub Pages가 제시하는 방법에 따라 Repository를 만드는 것만으로도 유일하게 비용이 필요한 호스팅이라는 큰 산이 하나 사라진다.

Repository: GitHub에서 관리하는 프로젝트의 단위로, 각 계정마다 여러개의 Repository를 마음대로 생성, 수정, 삭제할 수 있다.

안타깝게도 이는 호스팅과정을 라이트하게 만들어준 것일 뿐, 실제 페이지를 퍼블리싱하기 위해선 어쩔수 없이 웹 코딩 지식이 필요하다. 이를 위해 GitHubJekyll(지킬)이라는 프레임워크를 통해 사용자들이 블로그 테마를 쉽게 만들고 이를 활용할 수 있는 환경을 제공하고 있다.

필자는 어느정도 웹 관련 지식이 있음에도 불구하고 RubyJekyll이라는 다소 생소한 환경때문에 이를 이해하는데 다소 시간이 소요됐다. 이번 주제를 통해 웹에 있어서 나와 비슷하거나, 전무한 지식을 가진 사람들에게 내 블로그 구축기를 공유하고자 한다. 이 글은 Jekyll이라는 개념을 처음 접하는 이들이 가급적 쉽게 이해함에 초점을 맞춘다.

Jekyll(지킬)이란? 🔗

지킬 앤 하이드의 그 지킬 맞다. JekyllGitHub의 설립자 중 하나인 Tom Preston-Werner가 Ruby언어를 통해 개발한 프레임워크다. GitHub 자체적으로 Jekyll CMS(Contents Management System)을 내장하고 있어서 Jekyll 호스팅에 매우 적합하다.(물론 굳이 Jekyll 기반이 아니여도 호스팅엔 문제가 없다.)

웹을 나누는 구분 중에 정적(Static) 웹과 동적(Dynamic) 웹이 있다. Jekyll 정적(Static) 웹 환경을 위한 프레임워크다.

정적 웹

  • 요청에 따라 미리 저장된 페이지를 응답
  • 웹 서버가 필요하지 않으므로, 서버 사양에 대한 영향이 적음
  • Back-end 코드가 없어 제작이 간편함
  • 속도가 빠름
  • 복잡한 로직이 필요 없는 소규모 사이트(블로그 등)에 적합함

동적 웹

  • 요청에 따라 웹 서버가 데이터를 가공하여 전달
  • DB연동을 통한 데이터 CRUD가 가능
  • 동일한 페이지도 요청에 따라 다양한 내용을 응답
  • 웹 서버 사양에 따라 속도 저하의 우려 있음
  • 복잡한 로직이 필요한 비즈니스 사이트(쇼핑몰 등)에 적합함

우리가 사용하는 대부분의 사이트는 동적 웹의 형태가 대부분이다. 자체적인 회원가입 시스템, 간단한 게시판 등이 존재한다면 대부분 동적 웹으로 봐도 무방하다. 회원가입이나 게시판에는 반드시 DB가 필요하고, 이는 곧 DB와 사이트 간의 동작을 제어할 서버가 필요하다는 의미이기 때문. DB의 존재로 인해 실시간 데이터 CRUD가 가능하다. 사용자가 페이지에서 무언가 의미있는 컨텐츠 활동을 할 수 있다면 동적 웹이다.

반대로, 정적 웹은 단순히 저장된 파일을 요청에 맞게 보여만 주므로, 사용자는 단순 사이트 관광객 그 이상 그 이하도 아니다. 블로그의 경우 로그인 같은 사용자 인증이 전혀 필요 없으며, 소유자외의 작성자가 필요하지 않기 때문에 정적 웹 형태로도 얼마든지 서비스를 제공할 수 있다. Jekyll은 사용자가 작성한 코드를 하나의 웹 프로젝트 형태로 빌드한다. Jekyll은 이러한 정적 웹 방식을 채택함으로써 빠른 속도를 확보하고 백엔드 코드에 대한 부담감을 없앴다.

사용하기에 앞서, Jekyll블로그 퍼블리싱의 주체가 자기 자신에게 있다. 즉, 페이지 하나하나를 세세하게 컨트롤 할 수 있으며, 그래야만 한다. 이러한 자유도는 누군가에겐 강력한 장점이지만, 누군가에겐 없는게 나은 단점이 되기도 한다.

Jekyll은 이런 분들께 적합해요!

  • 판에 찍힌 블로그보다 자신만의 감각이 들어간 블로그를 만들고 싶은 사람
  • 웹에 대한 기초적인 지식이나 그에 준하는 센스를 가진 사람
  • 다양한 기능을 구현하고 싶은 사람
  • 위의 모든 사항을 재미로 느낄 수 있는 사람

Jekyll은 이런 분들께 나빠요...

  • 어찌됐든 안정적인 블로그를 얻고싶은 사람
  • 이런저런 난잡한 일에 시간을 투자하기 어려운 사람
  • 지금 당장 블로그를 시작하고 싶은 사람
  • 복잡한 것을 지양하는 사람

Jekyll은 하나부터 열까지 본인이 직접 구성해야한다. 그 흔한 댓글 기능조차 플러그인을 사용해서 구성해야한다. 즉, 통상 사이트 혹은 블로그라면 응당 존재해야할 기능조차 본인이 스스로 구성하지 않으면 안 된다. 원한다면 내 블로그에 무엇이든 구현할 수 있지만, 반대로 아무것도 구현하지 않은 단순한 페이지조각에 그친다. 기타 카테고리나 태그를 만들 때도 마찬가지. 이런걸 하면서 재미를 느끼지 못 한다면 개인적으로 별로 권하고 싶지 않다.

물론 아름다운 테마를 적용할 수 있는건 독보적인 강점이지만, 이미 Tistory 정도만 가도 플랫폼 형태이면서 강력한 커스터마이징을 제공하기도 한다. 그럼에도 불구하고 Jekyll을 선택한다면, Jekyll은 당신에게 그 어떤 블로그에서도 접해보지 못한 색다른 경험을 제공해줄 것이다.