architecture
SSR, CSR, SSG, ISR.
렌더링 전략 4가지의 차이, Next.js 관점, 선택 기준
| 전략 | HTML 생성 시점 | 설명 |
|---|---|---|
| CSR | 브라우저 (JS) | 빈 shell + API fetch |
| SSR | 요청마다 서버 | always fresh, TTFB↑ |
| SSG | 빌드 시 | 정적 HTML, CDN |
| ISR | SSG + 주기적/온디맨드 재생성 | stale-while-revalidate |
💻 CSR (Client-Side Rendering)
- 초기 HTML 가벼움 → JS 다운로드/실행 후 UI
- SEO, FCP에 불리 (크롤러/사용자 모두)
- 대시보드, 로그인 후 영역에 적합
🖥️ SSR (Server-Side Rendering)
- 매 요청 서버에서 HTML → 최신 데이터, 서버 부하
- Next.js Pages:
getServerSideProps, App: dynamicfetchno cache
📦 SSG (Static Site Generation)
- 빌드 타임 HTML → CDN 배포, 매우 빠름
- 데이터 변경 시 재빌드 필요
- 블로그, 문서, 마케팅 페이지
♻️ ISR (Incremental Static Regeneration)
- SSG 페이지를 백그라운드에서 갱신
revalidate: 60— 60초마다 stale 허용 후 재생성- 트래픽 급증 + 자주 바뀌는 콘텐츠 타협점
🎯 선택 가이드
- 개인화/실시간 → SSR 또는 CSR + client fetch
- 거의 안 바뀜 → SSG
- 가끔 바뀜, 트래픽 큼 → ISR
- Next.js route별 전략 (이 블로그: posts SSG, API dynamic)
🔗 참고 자료
- React DOM Server — 서버에서 HTML을 생성하는 API 모음이다.
- hydrateRoot — SSR HTML을 클라이언트에서 인터랙티브하게 만드는 API다.
- renderToString — 동기 SSR HTML 생성 API다.
- Server-Side Rendering (SSR) — Vue SSR 흐름과 hydration을 설명한다.
