본문 바로가기
카테고리 없음

[React]상태관리는 불변성이 아니라 메모리 참조랑 관련있는 거임

by sighan 2024. 1. 9.
반응형

React에서 상태 업데이트를 감지하는 문제는 실제로 메모리 참조와 관련이 있습니다. "불변성"이라는 용어는 이러한 참조 기반 감지 메커니즘을 효과적으로 활용하기 위해 상태를 관리하는 방법론에 더 가깝습니다.

메모리 참조의 중요성

React는 상태의 메모리 참조가 변경되었는지를 기반으로 상태가 변경되었는지를 판단합니다. 즉, 상태 값, 객체나 배열의 메모리 주소가 변경되면, React는 새로운 상태로 간주하고 컴포넌트를 재렌더링합니다.

  • .push 같은 메서드를 사용하여 배열을 수정할 경우, 배열의 메모리 주소(참조)는 변경되지 않습니다. 따라서 React는 상태가 변경되었다고 인식하지 못합니다.
  • 반면, spread 연산자 (...)를 사용하여 새로운 배열을 생성하면, 새로운 메모리 주소를 가진 객체가 생성되므로, React는 이를 새로운 상태로 인식하고 컴포넌트를 재렌더링합니다.

불변성의 역할

불변성은 이러한 참조 기반 상태 관리 방식을 지원하는 개념입니다. 불변성을 유지한다는 것은 값, 객체나 배열을 직접 변경하지 않고, 상태 변경이 필요할 때마다 새로운 값, 객체나 배열을 생성함을 의미합니다. 이렇게 함으로써 React는 상태 변경을 효과적으로 감지하고 적절한 컴포넌트 업데이트를 수행할 수 있습니다.

결론

  • React에서 상태 업데이트의 감지는 메모리 참조의 변경에 의존합니다. 즉, 상태 값, 객체나 배열의 메모리 주소가 변경되면 상태가 변경된 것으로 간주됩니다.
  • 불변성은 이러한 메모리 참조 기반의 상태 관리를 위한 방법론이며, 상태를 직접 변경하는 대신 새로운 값, 객체나 배열을 생성하여 사용합니다.
  • 불변성을 유지하는 것은 React의 상태 변경 감지 메커니즘을 효과적으로 활용하고, 예측 가능한 컴포넌트 동작을 보장하는 데 중요합니다.

 

요약

React에서 상태를 업데이트할 때 기존 상태 변수에 새 값을 할당하는 것이 아니라, 새로운 상태 값을 가진 새로운 변수를 생성하고 이를 할당하는 방식을 사용합니다. 이 과정에서 "불변성" 원칙이 중요한 역할을 합니다.

반응형