싱글톤 패턴(Singleton Pattern)
싱글톤 패턴은 소프트웨어 디자인 패턴 중 하나로, 생성자가 오직 한 번만 호출되는 클래스를 만들기 위한 방법입니다. 이 패턴은 클래스의 인스턴스가 오직 하나만 생성되어야 하는 경우에 사용됩니다. 주로 자원의 공유, 설정 데이터, 로그인 정보 등 여러 클래스가 공통으로 참조하는 객체를 관리하기 위해 사용됩니다.
싱글톤 패턴의 구성요소
싱글톤 패턴은 다음과 같은 구성요소로 이루어져 있습니다.
1. 클래스 변수 (private static instance 변수)
싱글톤 클래스 내에서 유일한 인스턴스를 저장하기 위한 변수입니다. 해당 클래스의 유일한 인스턴스를 참조하기 위해 private으로 선언되며, static으로 선언되는데 이는 클래스 변수로서 외부에서 접근할 수 없도록 제한하기 위함입니다.
private static Singleton instance;
2. 생성자 (private Singleton())
클래스 내부에서만 생성자가 호출될 수 있도록 private으로 선언됩니다. 이는 외부에서 인스턴스를 생성하는 것을 막기 위함입니다.
private Singleton() {
//...
}
3. 인스턴스 반환 메서드 (public static Singleton getInstance())
싱글톤 클래스의 유일한 인스턴스를 반환하는 메서드입니다. 인스턴스가 이미 생성되어 있는 경우에는 생성된 인스턴스를 반환하고, 생성되어 있지 않는 경우에는 새로운 인스턴스를 생성하여 반환합니다. 이 메서드는 외부에서 호출할 수 있도록 public으로 선언되며, static으로 선언되어 클래스 변수에 접근할 수 있도록 합니다.
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
싱글톤 패턴의 활용 예시
싱글톤 패턴은 많은 상황에서 유용하게 사용될 수 있습니다. 예를 들어, 다음과 같은 상황에서 싱글톤 패턴을 활용할 수 있습니다.
데이터베이스 연결 객체: 여러 클래스에서 데이터베이스에 접속해야 하는 경우, 싱글톤 패턴을 사용하여 한 번 생성된 연결 객체를 공유할 수 있습니다.
로그 출력 객체: 여러 클래스에서 로그를 출력해야 하는 경우, 싱글톤 패턴을 사용하여 한 번 생성된 로그 출력 객체를 공유할 수 있습니다.
설정 데이터 관리 클래스: 여러 클래스에서 공통으로 참조하는 설정 데이터를 관리하는 클래스를 싱글톤 패턴으로 구현할 수 있습니다.
정리
싱글톤 패턴은 클래스의 인스턴스가 오직 하나만 생성되어야 하는 경우에 사용되는 디자인 패턴입니다. 주로 자원의 공유, 설정 데이터, 로그인 정보 등 여러 클래스가 공통으로 참조하는 객체를 관리하기 위해 사용됩니다. 싱글톤 패턴은 클래스 변수, 생성자, 인스턴스 반환 메서드로 구성되며, 이를 사용하여 클래스의 유일한 인스턴스를 관리할 수 있습니다.
댓글