[javascript] 프로퍼티 디스크립터를 활용한 객체 검증 및 유효성 체크

자바스크립트에서 객체의 속성을 검증하고 유효성을 체크하는 방법은 여러 가지가 있습니다. 그 중 하나는 프로퍼티 디스크립터를 활용하는 것입니다. 프로퍼티 디스크립터는 객체의 속성에 대한 정보를 담고 있는 객체입니다.

프로퍼티 디스크립터는 주로 Object.defineProperty() 함수를 사용하여 정의됩니다. 이 함수는 새로운 속성을 객체에 추가하거나 이미 존재하는 속성을 수정할 수 있습니다. 또한, 속성의 유효성을 체크하는데 유용하게 활용할 수 있습니다.

아래는 프로퍼티 디스크립터를 사용하여 객체의 속성을 검증하고 유효성을 체크하는 예시 코드입니다.

const person = {};

Object.defineProperty(person, 'name', {
  value: 'John',
  writable: false,
  enumerable: true,
  configurable: false
});

console.log(person.name); // 출력: John

person.name = 'Jane'; // 에러: Cannot assign to read only property 'name' of object '#<Object>'

delete person.name; // 에러: Cannot delete property 'name' of object '#<Object>'

위 예시에서 Object.defineProperty() 함수를 사용하여 person 객체에 name 속성을 정의하였습니다. 이때, value 속성에 ‘John’ 값을 할당하고, writable 속성을 false로 설정하여 값을 변경할 수 없도록 설정하였습니다. 또한, enumerable 속성을 true로 설정하여 속성이 열거 가능하도록 만들었고, configurable 속성을 false로 설정하여 속성을 삭제할 수 없도록 하였습니다.

위 코드를 실행하면, person.name을 출력한 결과는 ‘John’이 나오게 됩니다. 그리고 person.name 값을 변경하려고 하거나 delete person.name을 실행하면 에러가 발생합니다. 이렇게 프로퍼티 디스크립터를 사용하여 객체의 속성을 검증하고 유효성을 체크할 수 있습니다.

이 외에도 프로퍼티 디스크립터를 활용하여 객체의 속성을 검증하는 다양한 방법들이 있습니다. 참고할 만한 자료로는 MDN 문서를 확인해보시기 바랍니다.