본문 바로가기
Frontend2026년 6월 9일2분 읽기

React 상태관리, Context·Zustand·Redux 언제 무엇을

YS
김영삼
조회 647
React 상태관리, Context·Zustand·Redux 언제 무엇을

핵심 요약

전역 상태가 자주 안 바뀌면(테마·로그인 정보) Context, 클라이언트 전역 상태가 자주 바뀌고 가벼움을 원하면 Zustand, 대규모·엄격한 추적·미들웨어가 필요하면 Redux Toolkit. 그리고 "서버 데이터"는 이 셋이 아니라 React Query/SWR로 따로 관리하는 게 맞다.

1. 선택 기준

도구적합주의
Context저빈도 전역값값 바뀌면 구독 전부 리렌더
Zustand가벼운 전역, 선택적 구독구조 자유라 규약 필요
Redux Toolkit대규모·미들웨어·devtools보일러플레이트

2. 핵심 구분

  • 서버 상태(API 데이터)는 React Query/SWR — 캐시·재검증·로딩을 대신해준다
  • 클라이언트 상태(모달 열림, 폼 단계)만 위 도구로
  • 둘을 한 store에 섞으면 복잡도 폭발

3. 함정

  • Context로 자주 바뀌는 값 공유하면 하위 전체가 리렌더 — selector 없는 게 약점
  • Redux에 서버 데이터를 통째로 넣는 옛 패턴은 지금은 비권장
  • 작은 앱에 Redux는 과설계 — useState/Context로 충분한 경우가 많다

자주 묻는 질문

Context만으로 충분한가요?

값이 자주 안 바뀌면 충분합니다. 다만 selector가 없어 값이 바뀌면 구독 컴포넌트가 모두 리렌더되니, 고빈도 갱신엔 Zustand 같은 선택적 구독이 낫습니다.

React Query도 상태관리인가요?

서버 상태 전용입니다. 캐싱·재검증·동기화를 담당하므로, 전역 클라이언트 상태 도구와 역할이 다릅니다. 둘을 함께 쓰는 게 일반적입니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록