싱글톤 패턴 (Singleton)
싱글톤 패턴(Singleton Pattern)은 프로그램 전역에서 단 하나의 인스턴스(객체)만 생성되도록 보장하는 생성 패턴입니다.
데이터베이스 연결 관리자나 환경 설정(Config) 객체처럼 여러 개를 생성하면 메모리가 낭비되거나 상태가 꼬일 위험이 있는 곳에 주로 사용합니다. 생성자를 private으로 막아 외부 생성을 차단하고, getInstance()라는 정적(static) 메서드를 통해서만 객체를 받아갈 수 있게 만드는 것이 핵심입니다.
// 📂 DatabaseConnection.java (Java)
// Thread-safe를 고려한 Lazy Initialization 방식
public class DatabaseConnection {
private static DatabaseConnection instance;
// 생성자를 private으로 선언하여 외부에서 new 키워드 사용 금지
private DatabaseConnection() {
System.out.println("데이터베이스 연결 초기화 완료");
}
// 멀티스레드 환경에서 동시에 생성되는 것을 막기 위해 synchronized 사용
public static synchronized DatabaseConnection getInstance() {
if (instance == null) {
instance = new DatabaseConnection();
}
return instance;
}
public void executeQuery(String query) {
System.out.println("쿼리 실행: " + query);
}
}
// 📂 Main.java (사용 예시)
public class Main {
public static void main(String[] args) {
DatabaseConnection db1 = DatabaseConnection.getInstance();
DatabaseConnection db2 = DatabaseConnection.getInstance();
System.out.println(db1 == db2); // true
db1.executeQuery("SELECT * FROM users");
}
}