tool selection

상태 관리 도구는 데이터 출처와 변경 빈도로 선택한다

모든 상태를 전역 저장소에 넣기보다 서버 상태, 화면 상태, 장기 공유 상태를 분리하면 도구 선택이 단순해집니다.

nearby

가까운 UI 상태

모달, 입력값, 탭처럼 한 화면에서만 쓰이는 값은 가장 가까운 컴포넌트에 둡니다.

useState
tree

트리 단위 공유

테마와 사용자 정보처럼 Provider 아래에서 함께 쓰는 값은 Context가 적합합니다.

Context
client store

독립적인 전역 UI

장바구니, 필터, 사이드바 상태처럼 여러 곳에서 자주 바뀌는 값은 가벼운 스토어로 나눕니다.

Zustand, Jotai
remote

서버 응답 캐시

API 결과, 재시도, stale 상태, 뮤테이션 후 갱신이 중요하면 서버 상태 도구를 씁니다.

TanStack Query
policy

엄격한 변경 규칙

액션 로그, 미들웨어, 시간 여행 디버깅이 필요한 큰 앱은 정형화된 패턴을 선택합니다.

Redux Toolkit
선택 원칙

먼저 로컬 상태로 시작하고, 공유 범위와 비동기 복잡성이 실제로 커질 때 도구를 한 단계 올립니다.