[typescript] 정적 메서드와 인스턴스 메서드를 함께 사용하는 예시

이 포스트에서는 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 클래스 내에서 정적 메서드와 인스턴스 메서드를 함께 사용하는 방법에 대해 알아보았습니다. 위 예시를 참고하여 적절한 상황에 적용해보시기 바랍니다.