상태 관리란
프론트엔드 애플리케이션에서 상태(state)는 UI가 보여주는 데이터입니다. 40년간 UI 개발을 해온 저로서는 상태 관리가 복잡한 앱에서 필수라고 확신합니다. 컴포넌트가 늘어나면 상태 공유와 동기화가 어려워집니다. 상태 관리 라이브러리가 이 문제를 해결합니다.
Redux
Redux는 가장 유명한 상태 관리 라이브러리입니다. 단일 스토어, 불변성, 순수 리듀서가 핵심 원칙입니다. 예측 가능하고 디버깅이 쉽습니다(Redux DevTools). 하지만 보일러플레이트가 많습니다. Redux Toolkit이 이를 크게 줄여줍니다. 대규모 앱에 적합합니다.
MobX
MobX는 반응형(reactive) 상태 관리 라이브러리입니다. observable, action, computed를 사용합니다. 보일러플레이트가 적고 직관적입니다. 객체지향 스타일로 작성합니다. 상태 변경이 자동으로 UI에 반영됩니다. 마법처럼 동작해서 디버깅이 어려울 수 있습니다.
Zustand
Zustand는 경량 상태 관리 라이브러리입니다. 간단한 API로 빠르게 시작할 수 있습니다. 보일러플레이트가 거의 없습니다. React 훅과 자연스럽게 통합됩니다. 작은 프로젝트나 Redux가 과한 경우에 적합합니다. Jotai, Recoil도 비슷한 경량 대안입니다.
선택 기준
작은 앱에는 React 기본 상태(useState, Context)로 충분할 수 있습니다. 중규모에는 Zustand, Jotai 같은 경량 솔루션. 대규모, 복잡한 상태에는 Redux Toolkit. 팀이 OOP에 익숙하면 MobX도 좋습니다. 서버 상태는 React Query, SWR로 별도 관리하는 것이 좋습니다.
댓글
0