01. Redux 소개
Redux?
- 앱 전체 상태를 쉽게 관리하기 위한 라이브러리.
- Redux의 많은 개념들이 Flux pattern에서 차용됨.
- 주로 React 앱과 같이 사용.
- redux.js.org에서 수많은 문서를 참고할 수 있고, 웹상에 Redux를 활용한 앱 구축 사례가 많음.
언제 사용??
- 앱 전체의 상태 관리가 필요할 때.
- 복잡한 비동기 처리가 있는 상태 관리가 필요할 때.
- 앱의 상태가 복잡하고, 이를 체계적으로 관리하고 싶을 때.
- 상태 관리 패턴을 도입하여, 여러 개발자와 협업하고 싶을 때.
- logger, devtool 등을 활용하여 상태를 관리할 필요가 있을 때.
원칙
- Single source of truth - Store는 단 하나이며, 모든 앱의 상태는 이곳에 보관됨.
- Immutability – 상태는 오로지 읽을 수만 있다. 변경하려면 모든 상태가 변경 되어야 함.
- Pure function – 상태의 변경은 어떠한 사이드 이펙트도 만들지 않아야 함.
02. Redux의구조
구조
- redux는 자유롭게 확장하여 사용할 수 있음.
- 내부적으로 action과 데이터가 어떻게 흐르는지 이해하고, middleware, enhancer 등을 이용하여 redux를 확장함.
middleware
- action은 dispatch 이후 모든 middleware를 먼저 통과한 후에 reducer에 도달.
- redux-thunk, redux-logger 등의 라이브러리를 적용.
enhancer
- action은 dispatch 이후 모든 middleware를 먼저 통과한 후에 reducer에 도달.
- redux devtools 등의 라이브러리를 적용.
04. Redux를 React에 연결하기
05. Redux를 이용한 비동기 처리