1. 중앙관리되는 스테이트 (프롭 드릴링 방지)

2. 순수함과 예측가능성
- 순수함수 사용을 강요
- 순수 오브젝트 사용을 강요
- 한쪽으로만 흐르는 간결한 플로우로 예측가능성
(스테이트 -> 액션 -> 리듀서 -> 스테이트)

요 두개임


근데 당신의 어플리케이션이 정말 스토어가 필요한건지, 캐싱이 필요한건지는 진지하게 고민해야함

사실 리덕스 창시자인 댄 아브라모브도 그걸 고민하다 요즘은 react-cache 개념을 만드는중.

그리고 에어비엔비가 리덕스에서 migration apollo-client로 마이그레이션 중이라는데, 이것도 사실

단순히 서버 스테이트 캐싱이 많은 어플리케이션에서
리덕스는 오버킬이 아닌가? 에 대한 고민에서 비롯된 것임.

어쨌든 당신의앱이 사실은 서버 상태 캐싱이 주 로직인 앱이라면
캐싱 라이브러리를 선택하는걸 권하고,

Apollo-client는 graphql에만 국한되어 있음으로
Http rest api까지 캐싱해주는
React-query 패키지 추천함.

리덕스는 한마디로 복잡한 스테이트를 가지는 어플리케이션에서나 쓰는걸 추천함.