다들 Github Pages를 이용한 간단한 포크형태의 jekyll블로그가 무료라고 해서 시작하시는 분들이 많다. 여러분들에게 충격적인 사실 하나를 알려드리자면 Github Pages는 마냥 무료가 아니다.

뭐 당연히 모든게 무료라고 생각하실분들은 얼마 없으리라 생각한다. Github는 자선사업가도 아니기 때문에, 그런점에 있어서는 사용자들이 감수하고 넘어가야 되지 않을까 생각한다.

트래픽 문제

Github Pages에는 트래픽 제한이 존재한다. 월 100GB. 모르면 직접 확인하시라

단순계산을 때려봤다. 현재 내 블로그 index 리퀘스트시 단순 Github Pages에서 리퀘스트되는 용량은 157kb가량. 그리고 월 용량 100기가로 나누면 약 667,882명의 월 순 방문자, 일간으로 치면 22,262명의 방문자까지 커버된단 이야기다. 이미지 어셋을 최대한 배제한 결과가 여기서 나오는구나 싶었다.

근데 이미지 하나가 100kb가량을 훌쩍 뛰어넘으니, 단순 계산을 한다 쳐도 지금의 157kb는 넘는다. 이미지가 포스트 하나씩 추가된다 치면 100kb씩 추가되고 방문자당 2개의 포스트를 최소한 읽는다치면 수용할 수 있는 리퀘스트는 1/3으로 반토막이 난다.

그래서 Github는 CDN 사용을 권장한다. 그래서 대안을 찾아보니 킹갓제네럴엠페러 Cloudflare가 있었다. 물론 그것만으로 끝나면 이것처럼 주구장창 글을 작성하지 않았을것이다.

용량 문제

Github의 저장소는 1GB를 넘어선 안된다. 물론 이는 비용을 사용하면 용량을 더 늘릴 수 있지만 매달 5달러씩을 내야지 월 50기가 파일 주고받기(대역폭), 50기가 스토리지등을 사용 가능하다.

물론 그냥 Github저장소로 되는건 아니고 LFS라는 Github에서 만든 별도 확장을 사용하는 저장소를 이용해야한다.

물론 나는 돈을 아끼려고 Github Pages를 사용하고 있는 상황이기 때문에, 이미지로만 1기가의 저장소를 꽉채우기 위해서 1개당 10MB의 이미지를 저장한다면 100개밖에 저장못한다.

그래서 위에 대안으로 CDN을 말하며 에시로 Cloudflare를 들었지만, Cloudflare는 이미지를 캐싱하여 저장하지 이미지를 저장하여 보관하진 않는다. 즉 쉽게 설명하자면 내 이미지를 올릴곳은 돈을 안낸다면 Github 저장소밖에 없단 이야기.

Jekyll first의 github Pages

알게모르게 정적 페이지 호스팅에서도 제약이 상당하다. jekyll을 베이스로 자동 빌드해주는 등의 기능들땜에 나처럼 VuePress등을 사용하는 사람들에게 제약이 걸린다.

그냥 html파일만 올려주면 되는데 빌드하는것으로 인식해서 일 4회정도만 배포가능하고, url 규칙들도 jekyll을 따라가서 폴더 혹은 파일명 앞에 underscore(_)가 존재하면 404를 띄워버린다.

배포 제약 외의 URL 규칙등을 해결하기 위한 해결법은 저장소 최상위에 .nojekyll 파일을 추가해주는것이 있다.

결론

정적페이지 쓰기는 요즘 참 많이 좋아졌다. netlify도 있고, zeit의 now도 있고, 여기 적진 않았어도 static page hosting 업체들이 상당수 존재한다고 알고 있다.

어디에서도 이런 내용들을 찾아볼 수 없었기에 블로그에 요약해서 적게 되었다. 나처럼 본격적으로 이미지 넣고 블로깅 하는 사람들을 위해서는 Github Pages는 맞지 않는다는 생각이 들지만, 나름 꼼수를 쓰고 해결하여 사용중에 있으니 그래도 괜찮다고 생각하는 중이다.