React 자습서에서 발췌한 내용입니다.
https://ko.reactjs.org/tutorial/tutorial.html#what-is-react
불변성은 왜 중요할까요?
일반적으로 데이터를 변경할 때는 2가지 방법이 있습니다.
2가지는 결과적으로는 동일하지만 2번째 방법을 사용하게 된다면 몇가지 이점이 생깁니다.
문서, 윈도우 등등 이전 행동을 취소하는 ctrl + z 기능을 예로 설명해보겠습니다. 만약 우리가 A 객체에 "가나다라" 라는 내용을 넣어놨다고 해봅시다.
ctrl + z 기능을 구현하려면 어떡해야할까요?
"가나다라"라는 기존 데이터를 다른 객체에 담아두면 되겠죠??
-> 나도 모르게 객체변경 없이 데이터를 수정하는 방법에 도달했네요.
처음 개발할때는 문제없더라도 새로운 기능을 확장을 하기 위해서는 다른 객체를 생성해서 데이터를 변경하는 것이 중요합니다.
불변 객체에서 데이터 변화를 감지하는 것은 상당히 쉽습니다. 참조하고 있는 불변객체가 이전 객체와 다른것만 확인하면 되니까요!
불변성의 가장 큰 장점은 순수 컴포넌트를 만드는데 도움을 줍니다. 변하지 않는 데이터는 변경에 대한 판단이 쉽고 이를 바탕으로 컴포넌트가 다시 렌더링할지 결정 할 수 있습니다.