[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
장단점 비교
객체 분해 할당과 프로퍼티 셋터/게터는 각각 자신만의 장단점을 가지고 있습니다.
객체 분해 할당의 장단점
장점
- 코드를 간결하게 작성할 수 있음
- 필요한 프로퍼티만 가져와서 사용할 수 있음
- 다른 변수명으로 가져와서 사용할 수 있음
단점
- 모든 프로퍼티를 공개해야 함
- 객체의 구조가 변경되었을 때, 모든 분해 할당 코드를 수정해야 함
프로퍼티 셋터/게터의 장단점
장점
- 객체 내부의 데이터를 보호할 수 있음
- 값을 설정할 때 유효성 검사를 할 수 있음
- 객체의 내부 구조를 바꿀 때, 외부 코드에 영향을 덜 줄 수 있음
단점
- 번거로운 접근자 코드 작성 필요
결론
객체 분해 할당은 코드를 간결하게 만들어주고, 필요한 프로퍼티만을 쉽게 가져와 사용할 수 있지만, 모든 프로퍼티를 공개해야하고 객체의 구조 변경에 취약합니다. 반면에 프로퍼티 셋터/게터는 데이터 접근을 보호하고 유효성 검사를 할 수 있지만, 번거로운 접근자 코드 작성이 필요합니다.
따라서, 상황에 따라 객체 분해 할당과 프로퍼티 셋터/게터를 적절히 사용하여 코드를 더욱 안정적이고 유연하게 만들 수 있습니다.