[typescript] 프로퍼티 셋터/게터를 사용한 유효성 검사

유효성 검사(validation)는 소프트웨어 개발에서 중요한 요소 중 하나입니다. 특히 TypeScript에서는 프로퍼티 셋터(setter)와 게터(getter)를 사용하여 속성 값의 유효성을 검사할 수 있습니다. 이번 포스트에서는 이러한 방법들을 살펴보겠습니다.

프로퍼티 셋터/게터란?

프로퍼티 셋터(setter)와 게터(getter)는 객체의 속성 값에 접근하는 메커니즘을 제어할 수 있게 해줍니다. 셋터는 속성 값에 대한 새로운 값을 설정하고, 게터는 속성 값을 반환합니다. 이를 통해 값을 설정하거나 반환하기 전에 유효성 검사를 수행할 수 있습니다.

프로퍼티 셋터를 사용한 유효성 검사

다음은 TypeScript 클래스에서 프로퍼티 셋터를 사용하여 유효성을 검사하는 예시입니다.

class User {
  private _age: number;

  set age(value: number) {
    if (value >= 0) {
      this._age = value;
    } else {
      throw new Error('Invalid age');
    }
  }

  get age(): number {
    return this._age;
  }
}

const user = new User();
user.age = 25; // 유효한 값
console.log(user.age); // 25

user.age = -5; // 유효하지 않은 값 - 에러 발생

위 예시에서 age 프로퍼티의 셋터를 통해 값이 설정되기 전에 유효성을 검사하고, 유효하지 않은 값이 들어오면 에러를 발생시킵니다.

프로퍼티 게터를 사용한 유효성 검사

프로퍼티 게터를 사용하여 유효성을 검사하는 예시도 살펴보겠습니다.

class Circle {
  private _radius: number;

  set radius(value: number) {
    if (value >= 0) {
      this._radius = value;
    } else {
      throw new Error('Invalid radius');
    }
  }

  get radius(): number {
    return this._radius;
  }

  get diameter(): number {
    return this._radius * 2;
  }
}

const circle = new Circle();
circle.radius = 5; // 유효한 값
console.log(circle.radius); // 5
console.log(circle.diameter); // 10

circle.radius = -2; // 유효하지 않은 값 - 에러 발생

위 예시에서는 radius 프로퍼티의 게터를 통해 값을 반환하기 전에 유효성을 검사하고, 유효하지 않은 값이 들어오면 에러를 발생시킵니다.

결론

프로퍼티 셋터와 게터를 사용하여 TypeScript 클래스의 속성 값에 유효성을 검사하는 것은 안전한 및 신뢰할 수 있는 코드를 작성하는 데 도움이 됩니다. 이러한 방법을 통해 예기치 않은 데이터 입력으로 인한 오류를 방지할 수 있습니다.

이상으로 프로퍼티 셋터/게터를 사용한 유효성 검사에 대해 알아보았습니다. 감사합니다!