[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 메서드를 통해 항상 동일한 인스턴스를 반환하는 것을 확인할 수 있습니다.

타입스크립트의 싱글톤 패턴 활용

타입스크립트에서는 싱글톤 패턴을 여러 곳에서 사용할 수 있습니다. 이를 통해 한 번의 인스턴스 생성으로 여러 모듈 간에 데이터를 공유하거나 공통된 기능을 활용할 수 있습니다.

예를 들어, 다음과 같이 싱글톤을 사용하면 다양한 모듈에서 동일한 인스턴스를 활용할 수 있습니다.

// singleton.ts
class Singleton {
  // ... (이전에 작성한 Singleton 클래스와 동일)

  public someMethod() {
    console.log('Some method');
  }
}

export default Singleton.getInstance();

// module1.ts
import singletonInstance from './singleton';

singletonInstance.someMethod(); // "Some method" 출력

// module2.ts
import singletonInstance from './singleton';

singletonInstance.someMethod(); // "Some method" 출력

이처럼 타입스크립트를 사용하여 싱글톤을 구현하면 코드의 재사용성과 유지보수성을 높일 수 있습니다.

결론

이 글에서는 싱글톤 패턴과 타입스크립트의 결합에 대해 살펴보았습니다. 싱글톤 패턴을 사용하면 애플리케이션에서 하나의 인스턴스만을 유지하고 싶은 경우 유용하며, 타입스크립트를 통해 이를 구현하면 타입 안정성을 확보할 수 있습니다.

많은 경우에 싱글톤은 전역 상태 관리나 리소스 공유 등에 사용됩니다. 하지만 과용될 경우 테스트 및 유지보수가 어려워질 수 있으므로 상황에 맞게 적절히 활용해야 합니다.

참고 문헌:

이상으로 싱글톤 패턴과 타입스크립트의 결합에 대한 내용을 살펴보았습니다. 함께 읽어주셔서 감사합니다!