불변성

HanHyuk·2024년 1월 5일

불변성

  • 데이터가 생성된 후 변경되지 않는다는 개념
  • 함수형 프로그래밍에서 특히 중요한 원칙으로 데이터의 안정성과 예측 가능성을 높이는 데 기여함

자바스크립트에서 불변성이 중요한 이유

  • 예측 가능한 코드 : 함수나 앱의 동작이 예측 가능해짐
  • 부작용 최소화 : 함수가 외부 상태를 변경하지 않으므로, side effect(부작용)이 줄어듬
  • 병렬 처리 용이 : 여러 스레드나 프로세스에서 동시에 데이터를 안전하게 읽을 수 있음
  • 버그 감소 : 데이터가 의도치 않게 변경되는 버그를 방지할 수 있음
  • 리액트 및 리덕스와의 호환성 : React, Redux는 불변성에 최적화 되어있음

불변성 유지 방법

  • 원시 값(Primitive Values) : 자바스크립트의 원시 값(숫자, 문자열, 불린)은 기본적으로 불변임
  • 불변 객체 생성 : 객체의 속성을 변경하는 대신 동결하여 속성 변경을 방지함, Object.freeze()로 객체를 동결하여 속성 변경을 방지, 또는 스프레드 연산자나 Object.assign()을 사용하여 새 객체를 만들어 속성을 복사함(기존 객체는 그대로 유지)
  • 함수형 프로그래밍 기법 : 순수 함수(pure functions)를 사용하여 외부 상태를 변경하지 않음, push,pop,splice 같은 변경 메서드보단, map,filter,concat,slice 같은 새 배열을 반환하는 메서드를 사용
profile
선한 영향력을 펼치는 개발자가 되겠습니다.

0개의 댓글