블로그 리뉴얼, 그리고 배포 고민

블로그 활동을 열심히 해보겠다는 각오로, 블로그를 리뉴얼했습니다. 이 글을 쓰는 것은 아직 배포 전이지만요. 이 글은 블로그 리뉴얼 후기와, 배포 고민들을 다루는 글입니다.

어떤 것을 사용했나요?

원래는 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 페이지일거에요. 곧 소스와 레포도 공개하겠습니다!

© Dohyun Jung