블로그 활동을 열심히 해보겠다는 각오로, 블로그를 리뉴얼했습니다. 이 글을 쓰는 것은 아직 배포 전이지만요. 이 글은 블로그 리뉴얼 후기와, 배포 고민들을 다루는 글입니다.
어떤 것을 사용했나요?
원래는 Laravel + SSR 기반을 사용하려고 했었어요. 기술 블로그인데 특별하게 뭐가 필요할까 싶어서요. 하지만 급격하게 찾아온 귀찮음으로 인하여 불과 4시간만에 Gatsby로 방향을 틀었답니다.
Gatsby는 React와 GraphQL을 기반으로 하는 정적 사이트 생성기들 중 하나에요.
근데, 왜 Gatsby를 선택했을까요?
-
Single Page App (최신 기술)의 도입 욕심
- 처음에는 Vue.js으로 구성하다가, React에 적응이 되어버렸어요.
- Git의 강력한 버전 관리
- 디자인의 귀찮음
- 추후 React로 전향할 계획이 있었음.
물론 Gatsby만 있는 것은 아니지만요. Next.js 등을 사용할 수도 있었지만, 정적 페이지에 최적화되어 있는 커뮤니티 플러그인때문에 Gatsby를 선택하였습니다.
왜 이렇게 늦게? 그리고 쓴 글이 없잖아요.
개발 관련된 글들을 남긴 적이 많이 없기 때문에, 쓴 글이 없는 것은 부정할 수 없네요.
사실 블로그 리뉴얼 계획은 꽤 오래 전에 세우기 시작했어요. 역시 귀찮음이라고 볼 수 있겠네요. 이 리뉴얼 된 블로그는 오픈소스 레포를 하나 포크해와서, 수정하는 데에 2시간 정도 소요되었어요.
배포하자 배포
어디에서 호스팅할 것인가...
정적 페이지 호스팅 서비스는 무료 기준으로도 넘치고 넘칩니다. 이제 여기 서비스들에서 더욱 빠른 곳들을 선택해서 배포하는 것이 관건인데...
선택 스코프를 좁히기 위해, 조건을 세워봅시다.
-
FAST (충분히)
- 빠름의 기준은, 사용자가 불편을 느끼지 않으면 됩니다.
-
CDN
- 속도와 직관되어 있고, 최근엔 사실 대부분 지원해줍니다. 국내에 리전이 있는 곳이면 더 좋겠네요.
-
Easy Deploying
- 배포가 간단해야 합니다. GitHub Action이나 Travis CI 등으로 처리 후, 간단하게 업로드 되면 좋겠네요.
이 조건에 맞으면서, 무료인 곳이 존재합니다 (!!)
ZEIT
ZEIT이라는, CI/CD에 호스팅 서비스까지 연동만 끝내면 원큐에 끝내줍니다. 추가적인 CI 작업도 필요없습니다. 또한 Serverless 구조의 장점을 활용하여 커밋 (푸시) 및 브랜치마다 주소를 만들어줍니다.
이러한 장점때문에 평소에도 테스트 배포용으로 사용중이였는데, 이번에는 실제 서비스에 적용해볼까 합니다.
다만 사용하면서 주의하셔야 할 점은, Lambda 함수가 포함된다면 TTFB가 꽤 깁니다. 그렇기에 Express 등에서 SSR이 처리되거나 한다면 TTFB 시간이 조금 길어질 수 있습니다. 이 부분은 Serverless의 한계로 보여지기 때문에...
하지만 Gatsby 사용에는 문제가 없어 보입니다. Gatsby는 미리 페이지를 빌드해주고, 변경되는 데이터도 없으니 그런 것 같아요.
그리고 ICN이라는 이름으로 리전 (Edge)이 존재합니다. 아마 AWS인거 같아요. 제 집 기준으로 핑이 5ms
나오네요!
결론은, ZEIT 으로 결정.
마치며
아마 이 글을 보고 계시다면, ZEIT 위에서 동작하는 Gatsby 페이지일거에요. 곧 소스와 레포도 공개하겠습니다!