[typescript] 정적 메서드와 인스턴스 메서드를 사용하여 다른 클래스의 데이터 조작하기

이번에는 TypeScript에서 정적 메서드와 인스턴스 메서드를 사용하여 다른 클래스의 데이터를 조작하는 방법에 대해 알아보겠습니다.

정적 메서드(Static Methods)란?

정적 메서드는 특정 클래스의 인스턴스를 생성하지 않고, 클래스 자체에서 직접 호출할 수 있는 메서드입니다. 정적 메서드를 사용하면 특정한 인스턴스를 생성하지 않고도 클래스 전체에서 공통적으로 사용할 수 있는 메서드를 구현할 수 있습니다.

class Calculator {
  static add(a: number, b: number): number {
    return a + b;
  }
}

console.log(Calculator.add(5, 3)); // Output: 8

위의 예제에서 add 메서드는 Calculator 클래스의 정적 메서드로, 클래스 자체에서 직접 호출될 수 있습니다.

인스턴스 메서드(Instance Methods)란?

인스턴스 메서드는 클래스의 인스턴스를 생성한 후에 사용할 수 있는 메서드로, 해당 클래스의 각 인스턴스마다 별도로 존재합니다.

class Greeter {
  greeting: string;

  constructor(message: string) {
    this.greeting = message;
  }

  greet() {
    return `Hello, ${this.greeting}!`;
  }
}

const myGreeter = new Greeter('world');
console.log(myGreeter.greet()); // Output: Hello, world!

위의 예제에서 greet 메서드는 Greeter 클래스의 인스턴스 메서드로, 해당 클래스의 인스턴스를 생성한 후에 호출됩니다.

정적 메서드와 인스턴스 메서드의 활용

정적 메서드와 인스턴스 메서드를 조합하여 다른 클래스의 데이터를 조작할 수 있습니다.

class MathHelper {
  static multiply(a: number, b: number): number {
    return a * b;
  }
}

class NumberManipulator {
  value: number;

  constructor(initialValue: number) {
    this.value = initialValue;
  }

  multiplyBy(multiplier: number) {
    this.value = MathHelper.multiply(this.value, multiplier);
  }

  getValue(): number {
    return this.value;
  }
}

const manipulator = new NumberManipulator(5);
manipulator.multiplyBy(3);
console.log(manipulator.getValue()); // Output: 15

위의 예제에서 NumberManipulator 클래스는 MathHelper 클래스의 정적 메서드 multiply를 활용하여 내부 데이터를 조작합니다.

마무리

정적 메서드와 인스턴스 메서드는 TypeScript에서 클래스를 보다 유연하게 활용할 수 있도록 도와줍니다. 적절히 조합하여 클래스 간의 데이터 교류나 변형을 보다 효율적으로 처리할 수 있습니다.

참고 자료: TypeScript 공식 문서 - Classes

이상으로 TypeScript에서 정적 메서드와 인스턴스 메서드를 사용하여 다른 클래스의 데이터를 조작하는 방법에 대해 알아보았습니다. 계속해서 TypeScript를 활용하여 더 다양한 기능들을 탐구해보시기 바랍니다!