FAQFAQ 색인이 페이지에서Redux FAQ목차일반Redux를 언제 배워야 할까요?Redux를 언제 써야 할까요?Redux는 React에만 사용할 수 있나요?Redux를 사용하기 위해 특정한 빌드 도구를 사용해야 하나요?Do I need to have a particular build tool to use Redux?리듀서두 리듀서의 상태를 공유하는 방법은? CombineReducers를 사용해야 하나요?액션을 다루기 위해 switch 구문을 사용해야 하나요?상태 조직하기상태 전부를 Redux에 넣어야 하나요? React의 useState나 useReducer를 사용해도 되나요?함수나 Promise 같은 직렬화 할 수 없는 것들을 상태 저장소에 넣어도 되나요?중첩되거나 중복된 값을 상태에 넣어도 되나요?폼이나 다른 UI 상태를 저장소에 넣어도 되나요?저장소 준비저장소를 여럿 만들어도 되나요? 저장소를 바로 임포트해서 컴포넌트 안에서 사용해도 되나요?저장소 인핸서에 하나 이상의 미들웨어가 있어도 괜찮은가요? 미들웨어 함수 내에서 next와 dispatch의 차이가 무엇인가요?어떻게 상태의 일부만 구독하나요? 디스패치된 액션을 구독과 함께 가져올 수 있나요?액션액션 타입은 왜 문자열이거나 직렬화 할 수 있어야 하나요? 왜 액션 타입은 상수여야 하나요?리듀서와 액션은 항상 일대일로 대응하나요?AJAX 호출과 같은 "부수 작용"을 어떻게 나타내나요? 비동기 동작을 위해 "액션 생산자", "썽크", "미들웨어" 같은 것들이 필요한 이유가 뭔가요?어느 비동기 미들웨어를 사용해야 할까요? 썽크, 사가, 옵저버블이나 다른 미들웨어 중에서 어떻게 골라야 하나요?액션 생산자 하나에서 여러 액션을 연이어 디스패치해도 되나요?불변 데이터불변성이 가진 이점은 무엇인가요?Redux에서 불변성이 강제되는 이유는 무엇인가요?데이터 불변성을 다루는 방법으로는 어떤 것이 있나요? Immer를 사용해야 하나요?불변 작업을 위해 자바스크립트를 사용하는데 무슨 문제가 있나요?코드 구조파일 구조를 어떤 식으로 구성해야 하나요? 액션 생산자와 리듀서를 어떻게 묶어야 하나요? 셀렉터는 어디에 둬야 하나요?리듀서와 액션 생산자 사이에서 로직을 어떻게 나눠야 하나요? "비즈니스 로직"은 어디에 둬야 하나요?왜 액션 생산자를 사용해야 하나요?웹소켓 같은 영속적인 연결은 어디에 둬야 하나요?컴포넌트가 아닌 파일에서 Redux 저장소를 사용하려면 어떻게 해야 하나요?성능Redux는 성능이나 아키텍처 관점에서 얼마나 잘 "확장" 할 수 있나요?액션마다 "모든 리듀서"들을 호출하면 느려지지 않나요?리듀서에서 상태를 깊이 복사해야 하나요? 상태를 복사하다가 느려지지는 않을까요?저장소가 업데이트되는 횟수를 줄이려면 어떻게 해야 하나요?"하나의 상태 트리"를 가지면 메모리 문제가 생기지 않나요? 액션을 많이 디스패치하면 메모리를 차지하지 않나요?원격 데이터를 캐시하면 메모리 문제가 생기지 않나요?디자인 결정Redux는 왜 구독자들에게 상태와 액션을 전달하지 않나요?왜 Redux는 액션과 리듀서에서 클래스를 지원하지 않나요?미들웨어의 시그니처는 왜 커링을 사용하나요?왜 applyMiddleware는 디스패치를 위해 클로저를 사용하나요?왜 combineReducers는 각 리듀서를 호출할 때 세 번째 인자로 전체 상태를 포함하지 않나요?왜 mapDispatchToProps에서 getState()이나 mapStateToProps()의 리턴값을 사용할 수 없나요?React Redux왜 React-Redux를 사용해야 하나요?왜 내 컴포넌트가 다시 렌더링되지 않나요? 왜 내 mapStateToProps가 작동하지 않나요?왜 컴포넌트가 너무 자주 다시 렌더링되나요?mapStateToProps 속도를 더 빠르게 할 수는 없나요?연결된 컴포넌트에서 this.props.dispatch를 사용할 수 없는 이유가 뭔가요?최상단 컴포넌트만 연결해야 하나요? 아니면 트리 내에서 여러 컴포넌트를 연결해도 되나요?기타더 대규모의 "진짜" Redux 프로젝트가 있나요?Redux에서 인증은 어떻게 구현하나요?