Skip to main content

회사에서 진행하고 있는 프로젝트가 왜 SSG로 구현이 되어있을까?

· 2 min read
고현림
프론트엔드 | 블록체인 Developer

개요

회사에서 쿠폰몰과 관련된 프로젝트를 진행함에 있어서 SSG 기반의 프로젝트임을 인지하고 프로젝트에 참가했어요.

하지만 SSG가 정작 사이트 생성기라는 개념과 학교 동아리 홈페이지를 개발하는 과정에 있어서 서버에서는 만들어진 html을 제공하기 때문에 효율적이다라는 개념 + API가 없이 정적인 데이터만 보여주면 되기 때문에 괜찮지만, 왜 현업에서 SSG가 사용되는지 이해하고자 해당 글을 작성하였습니다.

나의 생각

정확하게 이해를 하지 못했던 저의 처음 생각은 api 호출을 하면 어차피 거기서 거기 아닌가? 였어요. 학교 동아리 홈페이지를 개발 할 때는 모든 데이터가 정적 데이터였기 때문에 SSR과 SSG를 순수히 정적 데이터를 기반으로 구분했던 것이 잘못된 생각이었어요.

하지만 이는 명확하게 달랐습니다.

내용 이해

  • SSR은 NextJS에서 html을 생성을 하고 이를 클라이언트에게 보내줍니다.

    • 여기서 API 호출과 같은 부분은 Next JS 서버에서 호출을 하기 때문에 트래픽이 몰리면 Next JS 서버 자체에 과부하가 생길 수 있어요.
  • SSG는 빌드에서 HTML을 생성하고 이를 "static file storage"로 그대로 서빙해요. 그래서 트래픽이 몰려도 Next JS의 서버 부하가 일어나지 않아요.

    • API 요청을 서버에서 부담을 하기 때문에 가격 측면에서 이점을 가질 수 있어요.

즉 모든 요청이 NextJS 서버에서 거치는 SSR은 캐시백 쿠폰몰과 같이 사람들이 정말 많이 몰리고 API를 계속 요청해야하는 프로젝트에서는 되려 비용 부담이 배로 발생하는 점을 알게 되었어요. 추가적으로 해당 프로젝트는 웹 뷰 형태로 제공이 되게 때문에 SEO를 최적화 하는것이 중요한 부분이 아니었어요. 따라서 SSG를 사용하는 것을 이해했습니다.

그러면 무조건 SSG만 쓰는게 메리트가 있는건지?

위 내용을 보면 무조건 SSG + CSR 구조가 더 메리트가 있어 보이는 점 때문에 왜 SSR이 있는거지라고 생각을 할 수 있어요.

하지만 최신성과 개인화 그리고 보안이 필요한 경우에는 반드시 SSR을 사용해야하요. 즉 어떠한 상황에 놓여있는지 그리고 중요하게 생각하는 가치가 무엇인지에 따라서 기술을 선택하는 것이 보다 중요하다는 것을 알게 되었습니다.