[Javascript] Mutable / Immutable Data Type

2021. 9. 11. 23:22자바스크립트

Mutable Data Type

- 값이 계속 변경될 수 있는 데이터 타입

- 자바스크립트에서 기본적으로 모든 object는 Mutable type이다.

let name = 'kim'; // 변수 name 값 'kim' 저장 
name = 'lee'; // name값 'lee'로 변경 가능

 

Immutable Data Type

- 값을 변경할 수 없는 데이터 타입

- Premitive type, Frozen objects

const name = 'kim'; // 변수 name 값 'kim' 저장 
name = 'lee'; // name값 'lee'로 변경 불가

 

Mutable Immutable
let const

 

 

 

<Immutable Data Type을 사용해야 하는 이유>

 

1. 보안(Security)

내가 저장한 데이터를 다른 해커들이 이상한 코드를 넣는 등 데이터 값을 변경하는 것을 방지한다.

2. 스레드 안전(Thread safety)

프로그램 실행 시 할당되는 프로세스 안에서 다양한 스레드가 동시에 돌아가면서 좀 더 빠르게 동작할 수 있도록 도와준다. 다양한 스레드들이 동시에 변수에 접근해 값을 변경할 수 있다. 그런데 동시에 값을 변경한다는 것은 위험한 것이다. 그래서 가능하면 값이 변경될 수 있는 것은 사용하지 않는 것이 좋다.

3. 실수 줄이기(Reduce human)

앞으로 값이 변경되어야 할 이유가 없다면 const를 이용하는 것이 바람직하다.

내가 코드를 추후에 변경하거나 다른 개발자가 변경할 때도 그 실수를 방지할 수 있다.