
프론트 마지막 세션
데이터의 흐름이 복잡하기 때문에 데이터의 흐름을 제약할 필요가 생겼습니다.
그래서 상태 변화가 일어나는 시점과 형태에 제약을 두어서 상태 변화를 예측 가능하게 만들고자 시도을 한 것입니다.
단방향 데이터 바인딩을 하는 Flux패턴의 자바스크립트 구현체 입니다.

1) View에서 유저가 일으키는 행동에 맞게 Action 객체가 생성되고,
2) Action은 Dispatcher를 통해 Reducer로 전달되고,
3) Action의 type에 따라 Reducer 내에 미리 정해져 있던 로직이 Store를 변경하고,
4) 변경된 Store의 내용이 View로 반영되는 패턴이라고 요약할 수 있음.
기본 React의 기능만으로 대응하기 힘들 정도로 애플리케이션의 상태 관리가 복잡해졌다고 판단이 되었을 때. 진정한 필요성을 느꼈을 때만 쓰는 것이 좋습니다.
1) 진실은 하나의 소스로부터
2) 상태는 읽기 전용이다.
dispatch를 호출하는 것 (마치 setState)뒤로 감기만 하면 된다. 시간여행이 가능하다.
3) 변화는 순수 함수로 작성되어야한다.
fetch (순수하지 않다. 언제 바뀔지도 모르니까) 등의 비동기 로직, new Date(), Math.random()은 같은 input에 다른 return ⇒ 유닛 테스트 불가1) 전역 상태 관리
2) props drilling
3) 편하려고
ProvideruseSelector (state)useDispatch (setState)