- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
제 웹사이트를 php 기반 호스팅에서 GitHub Pages로 이전했습니다.
지금까지 모니위키와 테터툴즈를 조합해서 사용했습니다. 테터툴즈가 너무 오래되어서 새 버전인 텍스트큐브로 업그레이드할 엄두가 안나더군요. 특히나 테터툴즈는 MySQL을 사용해야 하는데 이게 정말 부담스러웠습니다. 호스팅을 사용하다보니 백업을 하려면 호스팅 사이트에가서 DB 백업 버튼을 눌러야 합니다. (-_-;)
모니위키는 텍스트 파일 기반이라 매우 편리하게 사용했습니다. 서버에 분산형 버전 관리 시스템인 Mercurial(hg)을 설치해서 데이터도 백업하고 소스도 관리했었죠. 하지만, 관리를 안한지 너무 오래되서 구식 시스템이 되어버렸습니다.
달달이 돈을 내고 사용하는 호스팅의 최대 단점은 트래픽 차단입니다. 제 웹사이트는 트래픽이 넘쳐서 트래픽 차단 페이지가 자주 뜨곤 했었죠. 어떤때는 오후시간에 넘친 경우도 있었습니다. 매번 돈을내고 트래픽을 풀기도 뭐하고, 더 높은 사양의 호스팅을 쓰기도 애매하죠.
GitHub Pages
예전부터 GitHub를 쓰면서 정적(Static) 웹사이트 호스팅 기능인 GitHub Pages를 활용하여 웹사이트를 만들어 놓았는데요. 기존 웹사이트와 별개로 사용하다가 이번에 GitHub Pages로 완전히 이전하게 되었습니다. 하지만 아직 데이터를 전부 옮겨오지는 못했습니다. 마이그레이션 스크립트를 짜자니 귀찮고 그냥 손으로 옮기고 있습니다. 2014년 10월까지 기존 호스팅 기반 웹사이트를 유지할 생각이니 자료를 보실 분들은 http://pyrasis.cafe24.com/main에서 보시면 됩니다.
제가 GitHub Pages를 채택하게 된 이유입니다.
- DB를 사용하지 않는 파일 기반의 블로깅 시스템 Jekyll 지원
- 텍스트 처리 문법인 Markdown 지원
- permalink 설정 기능 지원
- DNS A 레코드 지원
- Git 저장소 제공(당황하지 않고 요리조리 사용해서 Git 자체로 백업 끝!)
- GitHub에 Push하면 HTML 파일 자동 생성
Git으로 파일을 관리할 수 있고, GitHub에 Push하면 알아서 HTML이 생성되니 손댈것이 없습니다. 백업 문제는 다 해결되었습니다.
GitHub는 웹사이트 개발에 Ruby를 사용하는 것으로 유명한데요. 정적 웹사이트 호스팅 기능도 Ruby로 구현된 Jekyll을 지원합니다.
꽤 오래전부터 서버에서 동적으로 HTML을 생성하지 않고, 템플릿 엔진으로 정적 페이지를 찍어낸 다음에 동적인 작업은 자바스크립트로 처리하는 것이 대세가 된 것 같습니다.
모니위키를 사용했던 이유는 위키 문법으로 문서를 만들어 낼 수 있어서 였는데요. Markdown 문법으로도 예전 문서들의 형태를 그대로 유지할 수 있었습니다. 특히 이전을 결정하게된 기능은 Jekyll의 permalink 설정 기능이었습니다. 예전 문서와 글의 URL을 그대로 유지할 수 있어서 사용자들이 들어오는데는 문제가 없어졌습니다.
GitHub Pages를 채택하기전에 여러가지 정적 웹 호스팅 서비스들을 조사해봤는데요. 다들 한가지씩 큰 단점이 있었습니다.
GitHub Pages 처럼 Bitbucket에도 정적 웹사이트 호스팅 기능이 있는데요. 결정적으로 DNS A 레코드 지원이 안됩니다. 즉 www.example.com이나 blog.example.com 처럼 서브 도메인만 연결할 수 있고 최상위 도메인인 example.com는 연결이 안됩니다. DNS 스펙상 최상위 도메인은 CNAME(ALIAS)를 사용할 수 없습니다. 그리고 Jekyll을 지원하지 않아서, 로컬에서 HTML 파일만 생성해서 Push해야 합니다.
구글 드라이브도 정적 웹사이트 호스팅을 사용할 수 있는데요. 최상위 도메인 연결도 되지만, HTML 파일은 자동 생성이 안되므로 그냥 올려야 됩니다. 그리고 구글 드라이브인 만큼 웹사이트 디렉터리 구조가 다 드러납니다.
속도
GitHub는 미국에 있는 만큼 까페24 호스팅의 접속 속도와는 비교가 안되게 느립니다. 이게 단점인데요.
저는 RequireJS로 자바스크립트와 CSS를 동적 로딩해서, 체감속도를 좀더 빠르게 하는 것으로 타협을 봤습니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.