[javascript] 프로퍼티 디스크립터 사용 전략과 개발 스타일

자바스크립트에서는 객체의 프로퍼티를 정의하고 설정할 때 디스크립터(descriptor)를 사용할 수 있습니다. 프로퍼티 디스크립터는 프로퍼티의 속성과 동작을 정의하는 객체입니다. 이를 통해 우리는 프로퍼티의 가시성, 수정 가능성, 열거 가능성 등과 같은 속성을 설정할 수 있습니다.

프로퍼티 디스크립터 사용 전략

프로퍼티 디스크립터를 사용할 때 몇 가지 전략을 고려해야 합니다.

  1. 읽기 전용 프로퍼티 설정하기: 특정 프로퍼티를 읽기 전용으로 만들고 싶다면 writable 속성을 false로 설정합니다. 이렇게 하면 해당 프로퍼티는 수정할 수 없게 됩니다.

  2. 프로퍼티 삭제 방지하기: 특정 프로퍼티를 삭제할 수 없도록 만들고 싶다면 configurable 속성을 false로 설정합니다. 이렇게 하면 해당 프로퍼티는 삭제될 수 없게 됩니다.

  3. 프로퍼티 열거 방지하기: 특정 프로퍼티를 열거할 수 없도록 만들고 싶다면 enumerable 속성을 false로 설정합니다. 이렇게 하면 해당 프로퍼티는 for...in 반복문 등에서 나타나지 않습니다.

  4. 프로퍼티 값 변경 방지하기: 특정 프로퍼티의 값이 변경되는 것을 방지하고 싶다면 value 속성을 설정하고 writable 속성을 false로 설정합니다.

개발 스타일

프로퍼티 디스크립터를 사용할 때에는 명시적인 방식으로 설정하는 것이 좋습니다. 다음은 예시 코드입니다.

const obj = {};

Object.defineProperty(obj, 'readOnlyProp', {
  value: 'read only value',
  writable: false,
  enumerable: true,
  configurable: false
});

이렇게 코드를 작성하면 obj 객체의 readOnlyProp 프로퍼티는 읽기 전용이며, 열거 가능하며, 수정 및 삭제할 수 없게 됩니다.

참고 자료