공식문서 정독 및 번역
https://ko.redux.js.org/tutorials/essentials/part-1-overview-concepts
: JS앱을 위한 예측 가능한 상태 컨테이너.
'액션'이라고 불리는 이벤트들을 사용해 애플리케이션의 상태를 관리하고 업데이트하는 패턴이자 도구. 애플리케이션 전역에서 필요한 상태들을 관리하기 위해 중앙화된 store(저장소?) 역할을 한다. 상태들이 예측가능한 상황에서만 업데이트되도록 보장한다.
: 애플리케이션의 여러 부분에서 필요한 상태들을 전역적으로 관리할 수 있다. 언제, 어디서, 왜, 어떻게 상태가 업데이트되는지 파악하기 용이.
: 리덕스의 단점으로는, 학습 내용 증가, 길어지는 코드, indirection 추가 (참조, In computer programming, an indirection (also called a reference) is a way of referring to something using a name, reference, or container instead of the value itself), 따라야 하는 제한 사항들을 들 수 있는데,
이러한 리덕스가 유용하게 사용되는 경우는 다음과 같다.
React-Redux
: 리덕스는 모든 UI 프레임워크와 통합될 수 있고, 리액트와 가장 자주 함께 쓰인다. React-Redux는 우리의 공식 패키지로, 상태들을 읽고 액션을 디스패칭해 스토어를 업데이트함으로써 리액트 컴포넌트들이 리덕스 스토어와 상호작용할 수 있게 한다.
Redux Toolkit
: 리덕스 로직 작성에 추천하는 접근법. 리덕스 앱 만들기에 필수적인 패키지들과 함수들을 가지고 있다. Redux Toolkit은 제시된 best practice로 빌드되고, 대부분의 리덕스 작업을 간단하게 하며 흔한 실수들을 방지하고, 리덕스 앱 코딩을 용이하게 해준다.
Redux DevTools Extension
: 리덕스 데브툴스 익스텐션은 시간 경과에 따른 리덕스 스토어 속 상태 변화 기록을 보여준다. 시간여행이 가능한 듯 효율적인 디버깅이 가능하다.