여러개의 스토어를 사용하는게 불가능한가? 그건 아니지만 권장하는 편은 안디ㅏ. 특정 업데이트가 빈번하게 일어나거나, 애플리케이션의 특정부분을 완전히 분리시키게 될때 여러개의 스토어를 만들수 있다. 하지만 그렇게 할 경우, 개발도구를 활용하지 못하게 된다.
기존의 상태는 건드리지 않고 새로운 상태를 생성하여 업데이트 하는 방식으로 할 경우, 개발자 도구를 통해 뒤로 되돌릴수 있고, 앞으로 돌릴 수도 있다.
리덕스에서 불변성을 유지해야하는 이유는 내부적으로 데이터가 변경되는 것을 감지하기 위해서 shallow equality
검사를 하기 때문이다. 이를 통해서 객체 변화를 감지할 때 깊숙한 안쪽까지 비교하는게 아니라 겉부분을 비교하여 좋은 성능을 유지하게 되는 것이다.
3번째 조건의 경우 실행할 때마다 다른 결과값이 나타날 수 있다. new Date()같은 현재 시간값을 반환하는경우, 무작위 값을 리턴하는 함수같은 경우, 네트워크의 요청을 하는 경우는 리듀서 바깥에서 처리해야하는데 이를 위해 리덕스 미들웨어를 사용한다.