Web Basic · State

상태 관리 라이브러리 선택 기준

상태 관리 도구는 유명한 것을 붙이는 결정이 아니라, 상태의 수명·공유 범위·동기화 비용을 기준으로 고르는 설계 선택이다.

01

상태 분류

입력 폼, 로그인 사용자, 서버 목록, 필터 값을 서로 다른 범주로 나눈다.

02

공유 범위 확인

한 화면 안인지 여러 라우트인지에 따라 저장 위치가 달라진다.

03

동기화 방식 선택

서버 캐시는 stale, refetch, optimistic update 정책이 필요하다.

04

도구 적용

Context, Zustand, Redux, TanStack Query 중 문제에 맞는 도구만 쓴다.

Context
작은 전역 값 theme, locale, auth session 전달에 적합
잦은 갱신 상태는 렌더 비용
Zustand
가벼운 클라이언트 상태 선택자 기반으로 필요한 값만 구독
규칙을 팀에서 정해야 함
Redux
엄격한 이벤트 기록 큰 팀, 복잡한 도메인, 추적성 요구에 유리
보일러플레이트와 설계 비용 존재
Query
서버 상태 캐시 로딩, 에러, 재시도, 무효화를 표준화
클라이언트 상태 저장소 대체가 아님

중복 저장 · 파생 값 · 갱신 빈도 점검

중복 저장 API 응답을 여러 전역 저장소에 복사하지 않는다.
파생 값 계산 가능한 값은 저장하지 않고 selector로 만든다.
갱신 빈도 자주 바뀌는 값이 전체 앱을 다시 렌더하지 않는다.
무효화 서버 데이터 변경 뒤 어떤 캐시를 새로 받을지 정해져 있다.