자바스크립트 클래스에서 싱글톤 패턴을 구현하는 방법은 무엇인가요?
  1. 클래스 내부에 정적 변수(instance)를 선언합니다.
  2. 생성자 메서드(constructor)를 프라이빗(private)으로 만듭니다.
  3. 정적 메서드(static method)를 사용하여 인스턴스에 접근할 수 있도록 합니다.
  4. 정적 메서드 내에서 인스턴스가 없는 경우에만 인스턴스를 생성하고, 이미 생성된 경우에는 기존 인스턴스를 반환하도록 합니다.

아래는 자바스크립트에서 싱글톤 패턴을 구현하는 예시 코드입니다.

class Singleton {
  // 정적 변수
  static instance = null;

  // 프라이빗 생성자
  constructor() {
    // 생성자 코드
  }

  // 정적 메서드
  static getInstance() {
    if (!Singleton.instance) {
      Singleton.instance = new Singleton();
    }
    return Singleton.instance;
  }
}

// 인스턴스 생성
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();

console.log(instance1 === instance2);  // true

위의 예시 코드는 Singleton 클래스를 정의하고 getInstance()라는 정적 메서드를 사용하여 인스턴스에 접근하는 방법을 보여줍니다. 이를 통해 Singleton 클래스의 인스턴스는 한 번만 생성되며, 모든 코드에서 동일한 인스턴스에 접근할 수 있습니다.

추가로, 싱글톤 패턴은 전역 상태를 유지하므로 남용하면 코드의 복잡성을 증가시킬 수 있습니다. 신중하게 사용해야 하며, 싱글톤 인스턴스가 필요한지를 고려하여 사용하는 것이 좋습니다.

참조