불변성(Immutability)

wonway·2024년 3월 1일
0
post-thumbnail

요약

불변성은 데이터의 원본을 유지하는 것이다. 원본을 수정 불가 상태로 만드는 방법(Object.freeze(), const 사용)과 복사본을 만들어서 데이터를 다루는 방법(스프레드 연산자, 불변성을 유지하는 메서드 : map(), filter() 사용)이 있다.

불변성(Immutability)이란?

데이터의 원본을 유지하려는 개념이다.

불변성이 중요한 이유

  • 예측 가능성
    복사본을 생성하여 데이터를 다루므로 언제 어떻게 변화했는지 예측할 수 있다.

  • 버그 방지
    의도치 않은 변경을 방지한다.

  • 함수형 프로그래밍
    순수 함수와 같은 함수형 프로그래밍 개념과 잘 어울린다.

  • 동시성 제어
    여러 스레드가 동시에 읽어도 동일한 데이터를 유지하여 동시성 문제 해결에 도움이 된다.

  • 이력 관리 및 되돌리기 용이성
    상태 변경 이력을 저장하면 이전 상태로 되돌릴 수 있다.

불변성을 유지하는 방법

  • 데이터 복사

    스프레드 연산자를 사용한다.

    //배열
    const originalArray = [1, 2, 3];
    const copiedArray = [...originalArray]; // [1, 2, 3]
    
    //객체
    const originalObject = { name: 'John', age: 30 };
    const copiedObject = { ...originalObject }; // { name: "John", age: 30 }
    
  • 라이브러리 활용

    Immutable.js, Immer, Mori

  • 언어의 특성 활용
    const

    • 상수 선언을 하여 재할당, 재선언 불가능하게 만들어 사용한다.

    Object.freeze()

    • 객체를 불변 객체로 만든다.

    map(), filter() 등

    • 불변성을 유지하기 위해 새로운 배열이나 객체를 반환하는 메서드 사용
profile
문제를 컴퓨터로 해결하는 데서 즐거움을 찾는 프론트엔드 개발자

0개의 댓글