Redux
Store
: 애플리케이션의 상태를 보유하고 관리하는 하나의 공간
Action
: 애플리케이션에서 스토어에 운반할 데이터(객체 형태)
Reducer
: 현재 상태와 액션을 받아서 새로운 상태를 반환하는 순수 함수
→ 자바스트립트 상태 관리 라이브러리
- Single source of truth : 전체 상태는 하나의 중앙 저장소(단일 소스)에 저장된다.
- State is read-only : 액션이라는 객체를 통해서만 상태를 변경할 수 있다. (불변성 유지)
- Changes are made with pure functions : 변경은 순수함수로만 가능하다.
사용
- 전역 상태가 필요할 때
- 상태가 자주 업데이트 될 때
- 상태를 업데이트하는 로직이 복잡할 때
- 애플리케이션이 클 때
- 상태가 업데이트되는 시점을 관찰해야 할 때
장점
- 중앙 집중화된 상태 관리
- 불변성
- 시간 여행 디버깅
- 컴포넌트 간 데이터 공유
- 테스트 용이성
단점
- 복잡성 (작은 규모에 부적합)
- 설정 및 사용 코드 필요
- 오버헤드