[typescript] 정적 메서드와 인스턴스 메서드의 응용 및 활용 방법

많은 프로그래밍 언어에서는 클래스의 메서드를 정적 메서드(static method)와 인스턴스 메서드(instance method)로 나눌 수 있습니다. 이 둘은 각각 클래스 자체와 클래스로 생성된 인스턴스에 의해 사용됩니다. 이 글에서는 TypeScript를 사용하여 정적 메서드와 인스턴스 메서드를 활용하는 방법에 대해 살펴보겠습니다.

1. 정적 메서드 활용

정적 메서드는 클래스의 인스턴스를 생성하지 않고도 호출할 수 있는 메서드입니다. 이러한 메서드는 클래스의 인스턴스와 무관한 작업을 수행할 때 주로 사용됩니다.

예를 들어, 다음은 Math 클래스의 정적 메서드인 Math.max를 사용한 예시입니다.

let maxNum = Math.max(3, 7, 2, 5); // 7

위 예시에서 max 메서드는 Math 클래스의 인스턴스를 생성하지 않고도 직접 호출이 가능하며, 입력된 값 중에서 가장 큰 값을 반환합니다.

2. 인스턴스 메서드 활용

인스턴스 메서드는 클래스로부터 생성된 인스턴스를 통해 호출되는 메서드로, 해당 클래스의 특정 인스턴스에만 영향을 미칩니다.

다음은 TypeScript에서 클래스의 인스턴스 메서드를 활용하는 예시입니다.

class Counter {
  private _count: number;

  constructor(count: number) {
    this._count = count;
  }

  increment() {
    this._count++;
  }

  getCount() {
    return this._count;
  }
}

let counter = new Counter(0);
counter.increment();
console.log(counter.getCount()); // 1

위 예시에서 increment는 카운터 값을 1 증가시키는 인스턴스 메서드이며, getCount는 현재 카운터 값을 반환하는 인스턴스 메서드입니다.

3. 정적 메서드와 인스턴스 메서드의 조합 활용

클래스 내에서 정적 메서드와 인스턴스 메서드를 함께 활용할 수도 있습니다. 예를 들어, 유틸리티 기능을 제공하는 정적 메서드와 클래스의 특정 인스턴스에 영향을 주는 인스턴스 메서드를 함께 사용하는 경우가 있습니다.

class Logger {
  static logMessage(message: string) {
    console.log(message);
  }

  logInfo() {
    Logger.logMessage('This is an information.');
  }
}

let logger = new Logger();
logger.logInfo();

위 예시에서 Logger 클래스는 logMessage라는 정적 메서드와 logInfo라는 인스턴스 메서드를 함께 활용하고 있습니다.

결론

정적 메서드와 인스턴스 메서드는 각각 클래스와 클래스의 인스턴스에 대해 다른 역할을 수행합니다. 프로그램을 개발할 때, 이들을 적절하게 활용하여 코드를 구성함으로써 더욱 유연하고 효율적인 코드를 설계할 수 있습니다.