블로그를 시작하려고 다양한 블로그 서비스들을 알아보고 있었습니다.
흔하게 많은 사용자들이 쓰는 ‘네이버 블로그’, ‘티스토리’, ‘워드프레스 닷컴’ 등의 서비스형 블로그를 우선적으로 찾아보았고, ‘워드프레스’, ‘텍스트큐브’ 등 설치형 블로그에 대해서도 알아보았습니다. 두 가지 모두 각각 장단점이 있습니다.

서비스형 블로그의 경우 쉬운 접근성과 별도의 호스팅을 하지 않아도 되는 장점이 있고, 커스터마이징에 어느정도 제약과 어려움이 있다는 단점이 있습니다.
설치형 블로그의 경우에는 다양한 플러그인, 테마등으로 자유롭게 확장을 하거나 꾸미는 부분은 장점이지만 호스팅비용이 별도로 드는 점은 일반적으로 단점으로 작용하게 됩니다.

여러 면으로 비교해가며 저울질해가며 알아보던 중 정적페이지 기반의 블로그에 대해 접하게 되었습니다.

정적페이지 그리고 블로그

정적페이지란 하나의 완성된 html 파일로, 별도의 가공없이 클라이언트에게 제공하는 것으로 볼 수 있습니다.
반대로 동적페이지는 php, jsp 등의 서버사이드 언어로 구현된 파일로, 클라이언트의 요청이 있을 시 DB로부터 데이터를 받아 html 페이지를 생성해 보내줍니다.

최근 다양한 웹사이트들은 동적페이지로 구현된 사이트들이 대부분입니다. 일반적인 사이트들은 회원정보, 게시판의 게시글, 혹은 쇼핑몰의 판매물품 등의 데이터들을 가지고 페이지를 생성하기 때문에 이러한 동적페이지가 필요합니다.
하지만 블로그라는 환경에서 하나의 포스팅은 작성을 끝낸 시점에서 완성된 컨텐츠입니다. 매번 DB에서 정보를 가져와 생성할 필요가 없기 때문에 완성된 html로 저장을 하고, 그대로 클라이언트에게 보내주기만 하면 됩니다. 이러한 배경으로 정적페이지 기반의 정적블로그들이 생겨나기 시작했습니다.

대표적인 정적블로그 툴로 인기가 많은 ‘Jekyll’과 ‘Octopress’ 등이 있습니다. 조금 더 찾아보던 중 hexo라는 툴을 만나게 되어 지금 이 포스트를 작성하는 블로그를 hexo로 만들게 되었습니다.

다른 정적블로그 툴과 마찬가지로 마크다운을 지원하여 손쉬운 포스트 작성과, 깃허브의 GitHub-Pages를 이용한 호스팅을 지원하기 때문에 무료로 블로그를 이용할 수 있습니다. 또한 오픈소스 테마나 직접 수정하여 자유로운 커스터마이징이 장점으로 다가와 최종적으로 선택하게 되었습니다.

Hexo - Static Blog Framework

Hexo는 node.js 로 작성된 Framework로 npm을 통해서 간단하게 설치할 수 있습니다.
(npm은 Node Packaged Modules의 약자로 javascript package manager입니다. 여러 가지 패키지들을 손쉽게 설치 및 사용할 수 있도록 도와주는 툴로, 기본적으로 nodejs를 설치하면 같이 설치됩니다. nodejs 는 링크에서 본인이 사용하는 환경에 맞게 설치하면 됩니다.)

Hexo 공식 사이트에 간단한 설치방법과 사용법이 나와있습니다. 아래는 공식 사이트 메인에 나와있는 start 명령어에 주석을 더해 보았습니다.

1
2
3
4
5
$ npm install hexo-cli -g #hexo 를 설치하고
$ hexo init blog #./blog/ 에 hexo 기본 파일들을 생성
$ cd blog #blog 디렉토리로 이동
$ npm install #package.json을 참조하여 필요한 모듈 설치
$ hexo server #테스트용 server 구동(기본 포트: 4000)

다음 포스트에서 hexo를 이용해 포스팅하는 법에 대해 알아보겠습니다.