[typescript] 정적 메서드와 인스턴스 메서드를 사용하여 싱글톤 패턴 구현하기

싱글톤 패턴은 애플리케이션 전반에 걸쳐 하나의 인스턴스만을 유지하고 이에 접근하는 디자인 패턴입니다. TypeScript에서는 static 키워드를 사용하여 정적 메서드를 정의하고, 클래스 내부에서 단일 인스턴스를 유지함으로써 싱글톤을 구현할 수 있습니다.

싱글톤 클래스 구현

class Singleton {
  private static instance: Singleton;

  private constructor() { }

  public static getInstance(): Singleton {
    if (!Singleton.instance) {
      Singleton.instance = new Singleton();
    }
    return Singleton.instance;
  }

  public someMethod() {
    // 메서드 구현
  }
}

const singletonInstance1 = Singleton.getInstance();
const singletonInstance2 = Singleton.getInstance();

console.log(singletonInstance1 === singletonInstance2); // true

이 예시에서는 getInstance 메서드를 사용하여 싱글톤 인스턴스를 검사하고, 인스턴스가 없는 경우에만 새로운 인스턴스를 생성합니다. 이후 호출된 getInstance 메서드는 이전에 생성된 인스턴스를 반환하게 됩니다.

이러한 구현을 통해 TypeScript에서 싱글톤 패턴을 쉽게 구현할 수 있습니다.

결론

TypeScript에서는 정적 메서드와 인스턴스 메서드를 활용하여 싱글톤 패턴을 구현할 수 있습니다. 싱글톤은 단일 인스턴스를 유지함으로써 메모리를 절약하고, 객체의 일관성을 유지하는 등의 장점을 제공합니다.

참조: TypeScript Handbook - Classes