Github pages에 custom domain을 연결했습니다.

아이폰을 쓰기 시작하면서 내 생활에서 많은 것이 바뀌었는데 가장 많이 바뀐 것 중 하나가 종이 성경책을 더이상 가지고 다니지 않게 된 것이다.

20대를 거의 교회에서 보내서 그런지 가방엔 늘 성경책이 있었다. 전공책이 너무 무거워서 어떻게든 무게를 줄이고자 했을때는 포켓 성경책을 가지고 다녔었다. 그런 내게 아이폰은 혁명과도 같은 것이었다. 책을 아이폰안에 넣고 읽을 수 있다니!

물론 처음부터 그렇게 된 것은 아니다. 아이폰에 뭔가를 넣으려면 앱을 만들어야 하는데 난 아이폰 개발을 할 줄 모른다. (지금도...) 어쩔 수 없이 내가 할 수 있는 유일한 방법인 웹으로 이걸 해결하고자 했다. 당시엔 웹사이트를 모바일에 최적화하는 것이 겨우 시작되고 있었는데 나도 이렇게 하나 만들고 싶었다.

구글 앱엔진, AppFog

나혼자 볼거라서 적은 트래픽은 무료로 제공하는 구글 앱엔진에서 시작했다. 데이터 소스는 holybible.or.kr 였는데 요청이 올때마다 웹페이지를 읽어다가 파싱해서 모바일에 맞게 뿌렸다. 잘 나왔다. 그런데 문제가 있었다. 너무 느렸다. 어떤 구절로 바로 진입을 하고 싶지만 느려서 도저히 종이책 속도를 따라갈 수가 없었다.

요청 수를 줄여보고자 자체 DB를 만들기로 했다. 근데 구글 앱엔진에서 제공하는 data store 사용법을 잘 몰랐다. 빨리 만들어서 속도를 비교해보고 싶은데 그럴 수가 없다. 내게 익숙한 php + mysql을 제공하는 appfog란 곳에서 빨리 만들어보기로 했다.

그렇게 holybible.joostory.net은 시작했다. 한동안 잘 써먹었다. 조금이라도 더 빠르게 하려고 manifest로 캐싱도 해보고 ajax로 주고받는 데이터도 줄여보고 했다. (local storage는 저장할 수 있는 용량이 적어서 실패. 성경 텍스트가 이렇게 용량이 많다니 ㅠㅠ)

웹버전 안녕~

그 뒤에 안드로이드를 쓰게 되면서 안드로이드용 성경앱도 만들어보고 다시 아이폰을 사용하면서 ebook으로 만들어보기도 하면서 웹버전의 성경앱은 점점 사용하지 않게 되었다. 게다가 appfog가 대대적인 개편을 했는데 이걸 제대로 따라가지 못하면서 웹버전은 더이상 접속도 안되는 상태가 되었다.

사실 별 상관 없다고 생각했다. ebook이나 안드로이드앱이 있는데 굳이 웹버전은 있을 필요가 없다고 생각했다.

Github pages

요새 한동안 웹을 떠나 있어서 웹페이지 만드는 것에도 관심이 떨어졌었는데 블로그를 다시 시작하고, react, nodejs에도 손을 대면서 다시금 관심이 생겼다. 만들어보고 싶은 것도 몇몇 생겼다. 먼저 연습할 겸 성경 웹버전을 다시 살려보기로 했다. 혼자서 즐기는 건 또 별로라서 요즘 핫한 Github pages를 통해서 만들어보기로 했다.

holybible.github.io 같은 url로 만들면 되겠다 싶었다. 근데 저걸 만들려면 holybible이란 계정이 있어야 한다. 당연히 누군가가 쓰고 있다. 내가 쓸 수 있는 방법은 이미 확보한 joostory.github.io의 하위 디렉토리인 joostory.github.io/holybible같은 것이다. 근데 이건 좀 맘에 안든다. 좀 더 나은 방법이 없나 생각해보니 github pages는 custom domain 연결을 지원한다. 이걸 써보기로 했다.

custom domain을 연결하기 위해서는 일단 두가지만 하면 된다. 아주 간단하다.

  1. 원하는 도메인의 DNS CNAME에 사용자 github주소를 넣어준다. (자세한 안내)
  2. github pages repository root/CNAME에 연결한 도메인 주소를 넣는다. (자세한 안내)

이렇게 holybible.joostory.net을 연결했다. 이제 Jekyll과 React로 예전앱을 다시 만들면 된다. 다시 만들면 되는데... 벌써 새벽 1시가 넘었다. 오늘은 못하고 내일부터 해야겠다.

+ Jekyll은 local로도 테스트가 가능한데 생각보다 아주아주 편하고 좋다. (자세한 안내)

댓글
댓글쓰기 폼
«   2020/04   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30