[typescript] 객체 분해 할당과 프로퍼티 셋터/게터를 사용한 타입스크립트와 다른 언어의 차이점

객체 분해 할당과 프로퍼티 셋터/게터는 타입스크립트와 다른 프로그래밍 언어에서 많이 사용되는 기능입니다. 이번 포스트에서는 타입스크립트에서의 객체 분해 할당과 프로퍼티 셋터/게터의 활용과 다른 언어와의 차이를 살펴보겠습니다.

객체 분해 할당(Object Destructuring Assignment)

객체 분해 할당은 타입스크립트와 많은 다른 언어에서 사용되는 기능으로, 객체의 속성을 쉽게 추출하여 다른 변수에 할당할 수 있습니다.

// 타입스크립트의 객체 분해 할당
const person = { name: 'John', age: 30 };
const { name, age } = person;
console.log(name); // "John"
console.log(age); // 30

위 예제에서 person 객체의 nameage 속성을 바로 추출하여 nameage 변수에 할당하는 것을 볼 수 있습니다. 이를 통해 객체의 속성을 간단하게 추출하여 활용할 수 있습니다.

한편, 몇몇 다른 언어에서는 객체 분해 할당이 지원되지 않거나 쓰임새나 문법이 다를 수 있습니다. 예를 들어, 자바스크립트의 이전 버전에서는 객체 분해 할당이 지원되지 않았지만 최신 버전에서는 지원됩니다.

프로퍼티 셋터/게터(Property Setter/Getter)

프로퍼티 셋터와 게터는 객체의 속성 값을 설정하거나 조회할 때 사용됩니다. 타입스크립트에서는 클래스 내에서 이를 다음과 같이 정의할 수 있습니다.

class Circle {
  private _radius: number = 0;

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

  set radius(value: number) {
    if (value < 0) {
      throw new Error('Radius can not be negative');
    }
    this._radius = value;
  }
}

const myCircle = new Circle();
myCircle.radius = 5;
console.log(myCircle.radius); // 5

위 예제에서 Circle 클래스의 radius 속성에 대해 게터와 셋터를 정의하고 있습니다. 이를 통해 클래스 외부에서 마치 속성처럼 접근할 수 있으며, 값을 설정하거나 조회할 때 추가적인 로직을 수행할 수 있습니다.

언어에 따라 프로퍼티 셋터/게터를 지원하는 방식이 다를 수 있습니다. 몇몇 언어에서는 명시적으로 셋터와 게터를 정의하는 문법이 없고, 다른 방식으로 이를 구현해야 할 수도 있습니다.

결론

타입스크립트에서의 객체 분해 할당과 프로퍼티 셋터/게터는 다른 언어와 비교하여 간결하고 강력한 기능을 제공합니다. 이러한 기능을 적절히 활용하여 코드를 간결하고 가독성 있게 작성할 수 있습니다.

감사합니다!

참조: