지난 시간 짚어준 포인트중 하나가 불변성을 지킨다는 것이었다.

그런데 왜 불변성(immutable)을 지켜줘야 하는가…?

Untitled

결론부터 말하자면 참조타입인 객체들은, 원시타입과 달리 기본적으로 불변성을 유지하지 않기 때문에 개발자가 코드를 불변성을 유지하도록 작성하자는 것임.

왜 참조타입의 불변성을 지켜야 하는가?

  1. 참조 타입의 값이 변하면 이 원본 데이터를 참조하고 있는 다른 객체에서 예상치 못한 오류가 나타날 수 있다.

  2. 그것보다, 리액트에선 디핑할때 이전 스냅샷과 비교해서 변경된 사항을 확인한 후 업데이트 하기 때문임..

    참조 타입에선 값을 바꾸면 주소는 유지하는데 heap메모리내 값만 바꿔주므로 변경되었는지 모른다.

    따라서 아예 다른 주소를 가진 객체로 변경해버려야 한다…

    이를 위해선 아예 새로운 배열을 반환하는, 스프레드 문법, map, filter, slice, reduce등의 메서드를 이용한다.