우리가 만드는 사이트 대부분은 요청 시점에 서버가 필요하지 않다. 그걸 알아차리면 전부 미리 그려서 파일로 내보낸다.
무엇과 무엇을 맞바꾸나
정적으로 내보낸 사이트는 요청마다 돌아야 하는 것을 포기한다. 사용자별 렌더링, 온디맨드 재생성, 서버 액션 같은 것들이다. 그 대가로 다른 방법으로는 얻기 어려운 성질을 가져온다 — 죽을 것이 없다. CDN 위의 파일에는 콜드 스타트도, 커넥션 풀도, 고갈될 런타임 의존도 없다.
회사 사이트나 문서 사이트, 제품 소개 페이지라면 이 거래는 거의 언제나 남는 장사다. 로그인 뒤의 대시보드라면 아니다.
일찍 정한다
이 결정의 비용은 나중에 뒤집기 어렵다는 것이다. 요청 시점 서버가 필요한 기능은 조용히 들어온다 — 여기 이미지 최적화 하나, 저기 미리보기 모드 하나. 그때마다 사이트는 정적 경로에서 한 걸음씩 밀려난다.
그래서 시작할 때 정하고, 적어두고, 선을 지킨다. 요청 시점 서버가 필요한 기능이라면 사이트 전체를 정적 렌더링에서 끌어내릴 만한 이유를 스스로 대야 한다.
오해하지 말 것
정적 렌더링은 변하지 않는 사이트라는 뜻이 아니다. 콘텐츠는 여전히 바뀐다. 다만 요청 시점이 아니라 빌드 시점에 바뀔 뿐이다. 커밋이 빌드를 부르고, 빌드가 새 파일을 만들고, 그 파일이 이전 것을 대신한다.