[typescript] 정적 메서드와 인스턴스 메서드의 용도
TypeScript에서 클래스를 사용할 때, 정적 메서드와 인스턴스 메서드는 서로 다른 용도로 사용됩니다. 이 둘의 차이점과 각각의 사용 사례를 살펴봅시다.
정적 메서드 (Static Methods)
정적 메서드는 클래스 레벨에서 호출되는 메서드입니다. 즉, 해당 메서드를 사용하려면 인스턴스를 생성하지 않고도 접근할 수 있습니다. 정적 메서드는 인스턴스와 관련이 없는 작업을 수행하거나, 클래스 레벨에서 공통으로 사용되는 유틸리티 함수를 구현할 때 사용됩니다.
class MathUtility {
static multiply(x: number, y: number): number {
return x * y;
}
}
console.log(MathUtility.multiply(3, 4)); // Output: 12
위의 예시에서 multiply
메서드는 MathUtility
클래스의 인스턴스를 생성하지 않고도 직접 호출할 수 있습니다.
인스턴스 메서드 (Instance Methods)
인스턴스 메서드는 객체 레벨에서 호출되는 메서드입니다. 특정 인스턴스에 속한 데이터나 상태를 다루거나 조작하는 데 사용됩니다. 이 메서드는 클래스의 각 인스턴스에 대해 독립적으로 작동하며, 해당 클래스의 인스턴스를 통해 호출됩니다.
class Car {
drive() {
console.log("The car is being driven.");
}
}
let myCar = new Car();
myCar.drive(); // Output: The car is being driven.
위의 예시에서 drive
메서드는 Car
클래스의 인스턴스를 생성한 후에 호출됩니다.
결론
정적 메서드는 인스턴스화 과정과 관계없이 클래스 전체에 적용되는 기능을 구현할 때, 그리고 인스턴스 메서드는 특정 인스턴스에 대해 작동하는 기능을 구현할 때 사용됩니다.
정적 메서드와 인스턴스 메서드를 올바르게 활용하면 코드 구조를 개선하고 유지 보수성을 높일 수 있습니다.
이것은 TypeScript뿐만 아니라 다른 객체지향 언어에서도 차이가 있는 개념이므로, 이해하고 활용하는 것이 중요합니다.
References
- TypeScript 공식 문서: 정적 메서드
- MDN Web Docs: Static methods