불변성 관리

0

부트캠프 프로젝트

목록 보기
21/24

이번 포스트에서는 불변성관리를 알아보았다.

처음에 배울 때는 배열의 요소를 수정하거나 객체의 프로퍼티를 수정할 때, 기존에 변수를 건드리지 않고 spread연산자와 다른 state값을 사용해서 불변성 관리를 하면 되는 것인줄 알았다.

  • 불변성이란 : “단순히 변수를 재할당하지 않는다”는 개념이 아니고, 메모리 공간에 이미 담겨있는 값을 변경하지 않는 다는 것이다!

  • 값에 의한 호출: 외부스코프에서 함수에 인자로 변수를 넘길 때, 해당 변수가 가지고 있는 값 자체만 그대로 복사해서 함수에게 넘겨주는 방식을 의미한다. 메모리 공간에 있는 값을 함수 인자에 넘기는게 아니라, 그 값만 복사해서 새로운 메모리 공간에 저장후 넘기는 것이다. 자바스크립트에서 string, number, boolean 같이 원시 자료형을 사용하는 변수들은모두 값에 의한 호출방식을 사용함.

  • 참조에 의한 호출 : Array, Object는 참조에 의한 호출.

  • 불변성, 불변성 하는 이유:

    • 무분별한 상태변경을 막는다. 여기저기 무분별하게 해당 상태를 참조하거나 변경하는 경우, 코드가 어떻게 돌아가는지 파악하기 어렵다. 자바스크립트에서는 전역변수 사용을 금지하는 컨벤션이 추천됨.
    • 상태변경을 추적하기 쉬워진다.
profile
안녕하세요😄 비전공자의 웹개발자 도전기를 쓰는 중입니다! 수정/보완할 부분이 있다면 피드백 언제든 환영입니다!

0개의 댓글