Zustand의 간편한 상태 업데이트 방식은 깊은 중첩 구조를 가지는 상태를 업데이트할 때 문제가 발생할 수 있다.
배열이나 객체의 중첩된 상태를 업데이트할 때 불변성을 유지하지 않으면 상태 반영이 제대로 이루어지지 않아, 예상치 못한 오류가 발생 가능
Mutable 메서드 불변성 유지 X
Mutable 메서드는 원본 데이터를 직접 수정하여 변경된 데이터를 반환합니다. 이 방법은 간단하지만, 상태 변화 추적이 어려워져 버그 발생 가능성이 높아집니다.
Immutable 메서드 불변성 유지
원본 데이터를 변경하지 않고, 수정된 새로운 데이터를 반환합니다. 이를 통해 불변성을 유지하며, 상태 관리가 쉬워지고 예측 가능한 코드 작성을 돕습니다.
Immer는 JavaScript에서 상태를 쉽게 변경할 수 있게 해주는 라이브러리
원본 데이터를 변경하지 않고도 마치 직접 수정하는 것처럼 코드를 작성할 수 있으며, Immer가 자동으로 불변성을 유지한 새 상태를 만들어줌.