Redux 상태관리의 주요 개념
Store: Redux에서 어플리케이션의 전체 상태를 저장하는 객체. 어플리케이션에는 하나의 스토어만 존재해야 한다.
Action: 애플리케이션에서 스토어에 보내는 정보 패키지. 모든 액션은 type 속성을 가져야 하며, 그 외에 필요한 추가 정보를 담을 수 있다.
Reducer: 액션에 의해 애플리케이션 상태가 어떻게 변경될지를 결정하는 함수. 리듀서는 이전 상태와 액션을 받아서 새로운 상태를 반환한다.
Redux의 흐름은 다음과 같다.
- 액션을 통해 어떤 변화가 필요한지 시스템에게 알린다.
- 액션이 스토어로 전달되면, Redux는 해당 액션을 처리할 리듀서를 찾는다.
- 리듀서는 액션을 받고, 이전 상태와 함께 호출되어 새로운 상태를 생성한다.
- 새로운 상태는 스토어에 저장되며, 변화를 구독하고 있는 컴포넌트들은 새로운 상태를 받아 업데이트된다.
Redux는 MobX, Context API와 같은 다른 상태관리 도구와 비교했을 때, 몇 가지 차이점이 있다.
MobX: MobX는 더 자유로운 상태 변화를 허용하며, 자동으로 상태의 변화를 감지하여 반영한다. Redux는 비교적 엄격한 규칙을 가지고 있어, 애플리케이션의 상태 변화를 좀 더 명확하게 관리할 수 있다. 반면에 MobX는 코드가 더 간결하고, 학습 곡선이 덜 가파르다.
Context API: React가 기본적으로 제공하는 Context API는 Redux와 같은 전역 상태 관리를 제공하지만, 복잡한 상태 로직을 관리하기에는 부족할 수 있다. Redux는 미들웨어 지원, 상태 변경 로깅 등의 추가적인 기능을 제공한다.