자바스크립트에서 불변 객체 만들기

자바스크립트에서 객체를 유지하면서 변경할 수 없는 불변 객체를 만들 수 있는 방법에 대해 알아보겠습니다. 불변 객체는 객체의 상태를 변경하지 않고 새로운 객체를 생성하는 방식으로 동작합니다. 이를 통해 예상치 못한 객체의 수정을 방지하고 코드의 예측 가능성을 높일 수 있습니다.

1. Object.freeze() 메서드 사용하기

Object.freeze() 메서드는 객체의 변경을 막고 객체를 불변으로 만듭니다. 이 메서드를 사용하면 객체를 수정할 수 없으며, 추가 및 삭제도 불가능합니다.

const myObj = { name: 'John', age: 20 };

// 객체를 불변으로 만들기
const immutableObj = Object.freeze(myObj);

// 객체 변경 실패
immutableObj.name = 'Jane';
immutableObj.age = 25;

위의 예제에서 Object.freeze() 메서드를 사용하여 myObj 객체를 불변 객체로 만들었습니다. 그러나 immutableObj 객체의 속성을 변경하려고 하면 실패하게 됩니다.

2. Spread 연산자로 새로운 객체 생성하기

Spread 연산자를 사용하여 새로운 객체를 생성하는 방법도 있습니다. 이 방법은 객체의 모든 속성을 기존 객체에서 복사하여 새로운 객체를 생성하므로, 원본 객체는 변경되지 않습니다.

const myObj = { name: 'John', age: 20 };

// 새로운 객체 생성
const immutableObj = { ...myObj };

// 객체 변경 실패
immutableObj.name = 'Jane';
immutableObj.age = 25;

위의 예제에서 myObj 객체를 immutableObj로 복사하고, immutableObj의 속성을 변경하려고 하면 실패하게 됩니다.

결론

자바스크립트에서 불변 객체를 만들기 위해 Object.freeze() 메서드나 Spread 연산자를 사용할 수 있습니다. 불변 객체를 사용하면 예기치 않은 객체의 수정을 방지하고 안정적인 코드를 작성할 수 있습니다. 불변 객체를 사용하는 것은 프로그램의 예측 가능성을 높이고 디버깅을 용이하게 만듭니다.

참고 자료: