Redux에서는 이전 상태가 항상 보존되며 절대 변경되지 않습니다. 액션이 디스패치될 때마다 이전 상태 객체와 액션 객체에서 파생된 새로운 상태 객체가 리듀서 함수에 의해 반환됩니다.
이 새 상태 객체는 이전 상태 객체의 복사본을 만들고 액션 객체가 지정한 변경 사항을 적용하여 생성됩니다. 원래의 이전 상태 객체는 변경되지 않은 상태로 유지되므로 다음 디스패치에서 참조할 수 있도록 감속기 함수에서 사용할 수 있습니다.
따라서 Redux는 React의 setState 메서드와 같은 방식으로 이전 상태를 "기억"하지는 않지만, 이전 상태를 항상 감속기 함수가 사용할 수 있고 직접 변경하지 않도록 보장합니다. 이러한 접근 방식을 통해 Redux는 예측 가능한 상태 관리 시스템을 구현할 수 있으며, 상태 변경이 항상 일관되고 쉽게 추적 및 디버깅할 수 있습니다.
따라서, 리덕스는 이전 상태를 기억하진 않지만, 이전 상태를 참조하기때문에 불변성을 유지해야한다.