[typescript] 객체 분해 할당과 프로퍼티 셋터/게터의 장단점 비교하기

TypeScript는 JavaScript에 강력한 정적 타입 기능을 더하여 개발자들이 더욱 안정적이고 확장 가능한 소프트웨어를 개발할 수 있도록 도와줍니다. 이번에는 TypeScript에서 객체 분해 할당과 프로퍼티 셋터/게터를 비교해보겠습니다.

객체 분해 할당

객체 분해 할당은 객체의 프로퍼티를 해체하여 여러 변수에 할당하는 방법입니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

const person = {
  name: 'John',
  age: 30
};

const { name, age } = person;

console.log(name); // 'John'
console.log(age); // 30

프로퍼티 셋터/게터

프로퍼티 셋터/게터는 객체의 프로퍼티를 읽고 쓰는 동작을 사용자가 제어할 수 있도록 하는 메서드입니다. 다음은 프로퍼티 게터와 세터의 예시입니다.

class Circle {
  private _radius: number = 0;

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

  set radius(value: number) {
    if (value >= 0) {
      this._radius = value;
    } else {
      console.log('Radius must be a positive number');
    }
  }
}

const c = new Circle();
c.radius = 5;
console.log(c.radius); // 5
c.radius = -1; // 'Radius must be a positive number'
console.log(c.radius); // 5

장단점 비교

객체 분해 할당과 프로퍼티 셋터/게터는 각각 자신만의 장단점을 가지고 있습니다.

객체 분해 할당의 장단점

장점

단점

프로퍼티 셋터/게터의 장단점

장점

단점

결론

객체 분해 할당은 코드를 간결하게 만들어주고, 필요한 프로퍼티만을 쉽게 가져와 사용할 수 있지만, 모든 프로퍼티를 공개해야하고 객체의 구조 변경에 취약합니다. 반면에 프로퍼티 셋터/게터는 데이터 접근을 보호하고 유효성 검사를 할 수 있지만, 번거로운 접근자 코드 작성이 필요합니다.

따라서, 상황에 따라 객체 분해 할당과 프로퍼티 셋터/게터를 적절히 사용하여 코드를 더욱 안정적이고 유연하게 만들 수 있습니다.