state가 어디에 살지 결정하는 것은 가장 중요한 아키텍처 기술 중 하나입니다. 지침 원칙: 각 state 조각을, 그것이 필요한 모든 곳을 여전히 만족시키는 가장 좁은 범위에 두고 — 각 종류의 state를 올바른 도구에 맞추세요.
결정 프레임워크
text
1. 누가 이 state를 필요로 하는가?
- 하나의 컴포넌트 → local state(useState)
- 몇 개의 관련 컴포넌트 → 공통 부모로 끌어올림 / 작은 context
- 멀리 떨어진 많은 컴포넌트 → 글로벌 store 또는 context
2. 어떤 종류의 state인가?
- 서버/원격 데이터 → server-state 라이브러리(React Query/SWR)
- UI/클라이언트 state → useState / Zustand / Redux
- URL로 파생 가능(필터, 페이지) → URL(searchParams)
- 폼 입력 → 폼 라이브러리 또는 local state
3. 얼마나 자주 변하는가?
- 드물게, 널리 공유(테마) → Context면 충분
- 자주, 널리 공유 → 선택적 구독을 가진 store
