Redux 과부하 경험 → React Query + Zustand 분리 → 상태 위치 기준
상태 관리 복잡도는 전역 상태와 서버 상태를 같은 스토어에서 관리하려 할 때 급격히 올라간다고 경험했습니다. Redux로 서버 응답 캐시까지 전부 관리했는데, 캐시 만료·리패치·로딩 상태를 직접 구현하면서 보일러플레이트가 폭발적으로 늘었습니다. 서버 상태는 `React Query`로 분리하고 클라이언트 UI 상태만 전역 스토어에 남기는 구조로 바꾸니 코드가 절반 수준으로 줄었습니다. 팀과 Zustand로 전환하면서 스토어 슬라이스를 기능 단위로 나눴고, 한 기능 변경이 다른 기능의 상태에 영향을 주는 경우가 눈에 띄게 줄었습니다.
상태를 어디에 둘지는 데이터의 수명과 공유 범위로 판단하는 게 가장 실용적인 기준이라고 봅니다.