[javascript] 프로퍼티 디스크립터 활용 패턴 - 데이터 유효성 검증

자바스크립트에서 객체의 프로퍼티를 정의할 때, 프로퍼티 디스크립터(descriptor)를 사용하여 해당 프로퍼티의 속성을 정의할 수 있습니다. 프로퍼티 디스크립터는 value, writable, enumerable, configurable 등의 속성을 설정할 수 있게 해줍니다. 이러한 프로퍼티 디스크립터를 활용하여 데이터의 유효성을 검증하는 패턴을 소개하겠습니다.

데이터 유효성 검증 패턴

데이터 유효성 검증은 사용자로부터 입력 받은 데이터가 올바른 형식인지를 확인하는 과정입니다. 이를 위해 프로퍼티 디스크립터를 사용하여 다음과 같은 속성을 설정할 수 있습니다.

이러한 속성들을 활용하여 데이터 유효성 검증을 수행할 수 있습니다. 예를 들어, 사용자로부터 입력 받은 나이(age)를 검증하는 코드를 작성해보겠습니다.

const user = {};

Object.defineProperty(user, 'age', {
  value: 0,
  writable: true,
  enumerable: true,
  configurable: false,
});

function setAge(value) {
  if (typeof value !== 'number' || value < 0 || value > 150) {
    throw new Error('Invalid age');
  }
  user.age = value;
}

try {
  setAge(25); // 유효한 나이
  console.log(user.age); // 25
  setAge('twenty'); // 유효하지 않은 나이
} catch (error) {
  console.log(error.message); // Invalid age
}

위 코드에서는 Object.defineProperty 메서드를 사용하여 user 객체의 age 프로퍼티를 정의합니다. value에는 초기값으로 0을 설정하고, writable에는 true를 설정하여 값을 변경할 수 있도록 합니다. 그리고 setAge 함수에서 입력 받은 값이 유효한지 검증하여 유효하지 않으면 에러를 던지는 방식으로 데이터를 유효성 검증합니다.

위와 같은 방식으로 프로퍼티 디스크립터를 사용하여 데이터의 유효성을 검증할 수 있습니다. 이 패턴은 다양한 유효성 검증 로직을 작성할 수 있으며, 객체의 다른 프로퍼티들에도 적용할 수 있습니다.

결론

프로퍼티 디스크립터를 활용하여 데이터의 유효성을 검증하는 패턴을 소개했습니다. 프로퍼티 디스크립터는 객체의 프로퍼티에 대한 속성을 정의하는 데 사용되며, 이를 활용하여 데이터 유효성 검증을 수행할 수 있습니다. 이를 통해 안정적이고 신뢰성 있는 애플리케이션을 개발할 수 있습니다.

참고 자료: