기본적으로 전역 store에 손을 뻗기보다는, state의 종류에 도구를 맞추세요. 대부분의 "전역 상태" 문제는 사실 잘못된 도구 선택입니다.
결정 가이드
text
로컬 UI state (토글, 입력) → useState / useReducer
공유, 저빈도 (테마, 사용자) → Context
서버/API 데이터 → React Query / SWR (전역 store 아님)
복잡한 전역 client state → Zustand / Jotai / Redux Toolkit
URL 공유 가능 state (필터, 페이지) → URL (search params)
가장 중요한 통찰: 서버 상태 ≠ client 상태
API에서 온 데이터는 여러분이 소유하는 state가 아니라 원격 데이터의 캐시입니다. 이를 Redux에 넣으면 로딩, 캐싱, refetch, 무효화를 수동으로 처리해야 합니다 — 고통스럽고 버그가 많습니다. 서버 상태 라이브러리는 그 모든 것을 합니다:
jsx
{ data, isLoading } = ({ : [], : getTodos });
