[typescript] 정적 메서드와 인스턴스 메서드를 함께 사용하여 프로그래밍하기

이번 글에서는 TypeScript에서 정적 메서드인스턴스 메서드를 함께 사용하여 프로그래밍하는 방법에 대해 알아보겠습니다. TypeScript를 사용하면 객체지향 프로그래밍의 장점을 활용하여 코드를 짤 수 있습니다. 정적 메서드와 인스턴스 메서드를 적절히 활용하면 코드를 더욱 모듈화하고 유연하게 구성할 수 있습니다.

1. 정적 메서드란 무엇인가?

정적 메서드는 클래스의 인스턴스와 무관하게 호출할 수 있는 메서드입니다. 보통 유틸리티 함수나 팩토리 함수 등을 구현할 때 활용됩니다.

다음은 Math 클래스의 정적 메서드 예제입니다.

class Math {
  static square(x: number) {
    return x * x;
  }

  static cube(x: number) {
    return x * x * x;
  }
}

console.log(Math.square(3)); // 9
console.log(Math.cube(3)); // 27

2. 인스턴스 메서드란 무엇인가?

인스턴스 메서드는 클래스가 인스턴스화된 후에 사용할 수 있는 메서드입니다. 클래스의 각 인스턴스는 자신만의 인스턴스 메서드를 가질 수 있습니다.

다음은 Point 클래스의 인스턴스 메서드 예제입니다.

class Point {
  constructor(private x: number, private y: number) {}

  getDistanceToOrigin() {
    return Math.sqrt(this.x * this.x + this.y * this.y);
  }
}

const point = new Point(3, 4);
console.log(point.getDistanceToOrigin()); // 5

3. 정적 메서드와 인스턴스 메서드 함께 사용하기

이 두 메서드를 함께 사용하면, 유틸리티 함수나 공통으로 사용되는 기능을 정적 메서드로 구현하고, 각 인스턴스가 가지는 특정한 동작은 인스턴스 메서드로 구현할 수 있습니다.

다음은 Animal 클래스의 예제입니다.

class Animal {
  static create(name: string) {
    return new Animal(name);
  }

  constructor(private name: string) {}

  getName() {
    return this.name;
  }
}

const dog = Animal.create('Dog');
console.log(dog.getName()); // 'Dog'

4. 결론

정적 메서드와 인스턴스 메서드를 적절히 활용하면 코드를 모듈화하고 유연하게 구성할 수 있습니다. TypeScript에서 이 두 가지를 적절히 활용하여 객체지향 프로그래밍을 할 때, 코드의 가독성과 유지보수성이 향상될 수 있습니다.

정적 메서드와 인스턴스 메서드를 적절히 사용하여 코드를 구조화하는 방법에 대해 고민해보시기 바랍니다.

5. 참고 자료

이상으로, TypeScript에서 정적 메서드와 인스턴스 메서드를 함께 사용하여 프로그래밍하는 방법에 대해 알아보았습니다. 감사합니다.