이 포스트에서는 TypeScript 클래스 내에서 정적 메서드와 인스턴스 메서드를 함께 사용하는 방법을 살펴보겠습니다. 정적 메서드는 클래스의 인스턴스를 생성하지 않고도 바로 사용할 수 있는 메서드이고, 인스턴스 메서드는 클래스의 인스턴스를 생성한 후에 사용할 수 있는 메서드입니다.
정적 메서드
정적 메서드는 static
키워드를 사용하여 정의됩니다. 이 메서드는 클래스 인스턴스 없이 바로 호출할 수 있습니다. 보통 유틸리티 함수나 팩토리 메서드로 활용됩니다.
예를 들어, 다음은 Calculator
클래스에서 두 수를 더하는 정적 메서드 예시입니다.
class Calculator {
static add(a: number, b: number): number {
return a + b;
}
}
위 코드에서 add
메서드는 static
키워드로 정의되어 있으므로, Calculator.add(2, 3)
과 같이 클래스 이름을 사용하여 바로 호출할 수 있습니다.
인스턴스 메서드
인스턴스 메서드는 클래스의 인스턴스를 생성한 후에 사용할 수 있는 메서드입니다. 클래스 내에서 static
키워드 없이 정의됩니다.
다음은 Person
클래스에서 이름을 출력하는 인스턴스 메서드 예시입니다.
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
printName(): void {
console.log(`이름: ${this.name}`);
}
}
위 코드에서 printName
메서드는 클래스 내에 정의되어 있으므로, 클래스의 인스턴스를 생성한 후에 personInstance.printName()
과 같이 호출할 수 있습니다.
함께 사용하기
정적 메서드와 인스턴스 메서드는 동일한 클래스 내에서 함께 사용할 수 있습니다. 아래 예시에서 Calculator
클래스는 정적 메서드인 add
와 인스턴스 메서드를 함께 사용하는 예시입니다.
class Calculator {
static add(a: number, b: number): number {
return a + b;
}
multiply(a: number, b: number): number {
return a * b;
}
}
위 코드에서 add
는 정적 메서드이므로 Calculator.add(2, 3)
과 같이 호출할 수 있고, multiply
는 인스턴스 메서드이므로 클래스 인스턴스를 생성한 후 calculatorInstance.multiply(2, 3)
과 같이 호출할 수 있습니다.
정적 메서드와 인스턴스 메서드를 함께 사용하면 클래스의 다양한 유틸리티 함수와 동작을 관리하거나 제어할 수 있습니다.
이상으로 TypeScript 클래스 내에서 정적 메서드와 인스턴스 메서드를 함께 사용하는 방법에 대해 알아보았습니다. 위 예시를 참고하여 적절한 상황에 적용해보시기 바랍니다.