Web Basic · State Tools

상태 관리 도구를 상태 종류별로 고르기

상태 관리 라이브러리는 유명한 도구를 붙이는 결정이 아니라, UI 상태·앱 상태·서버 상태·파생값을 구분한 뒤 선택하는 설계다.

01

분류

입력값, 로그인 사용자, API 목록, 필터 결과를 서로 다른 상태로 나눈다.

02

범위

한 컴포넌트인지 한 화면인지 여러 route인지 공유 범위를 확인한다.

03

동기화

서버 데이터는 cache, stale time, invalidation 정책이 필요하다.

04

store 선택

Context, Zustand, Redux, TanStack Query를 문제에 맞춰 고른다.

Context
넓은 읽기 theme, locale, auth session처럼 깊게 전달되는 값
자주 바뀌면 분리
Zustand
가벼운 앱 상태 선택자 기반 구독으로 필요한 값만 읽음
팀 규칙 필요
Redux
엄격한 전이 큰 팀, 이벤트 추적, 복잡 도메인에 유리
설계 비용 존재
Query
서버 상태 로딩, 오류, 캐시, 재시도, 무효화 관리
클라이언트 상태 저장소 대체 아님

원본 · 파생값 · 갱신 빈도 점검

원본 같은 데이터를 여러 저장소에 복사하지 않는다.
파생값 계산 가능한 값은 selector나 memo로 만든다.
갱신 빈도 자주 바뀌는 값이 전체 앱을 깨우지 않는다.
무효화 서버 변경 후 어떤 cache를 새로 받을지 정해져 있다.