Provider와 SSG, SSR의 관계
작성일 : 2024.12.30
배경
최근 Next.js 프로젝트에서 Jotai Provider를 root layout에 적용하면서 SSG/SSR에 대한 의문이 생겼습니다. Provider를 사용하면 모든 페이지가 SSR로 강제되는 것이 아닌가 하는 걱정이 있었는데, 이에 대해 자세히 알아보았습니다.
Hydration이란?
Hydration은 정적 HTML에 JavaScript 기능을 주입하여 동적인 웹 앱으로 만드는 과정입니다. 서버에서 생성된 정적 HTML은 JavaScript가 로드되기 전까지는 단순한 마크업 상태입니다. JavaScript가 로드되고 Hydration이 진행되면, 이 정적인 HTML이 사용자와 상호작용이 가능한 동적인 웹 앱으로 변환됩니다.
// 정적 HTML 상태 (JavaScript 로드 전)
<button>클릭</button>
// Hydration 후
// - 버튼에 이벤트 리스너가 추가됨
// - 상태 관리 시스템 활성화
// - 사용자 상호작용 가능
<button onClick={handleClick}>클릭</button>