싱글톤 Singleton

han.user();·2023년 7월 3일
0
post-thumbnail

싱글톤(Singleton)은 소프트웨어 디자인 패턴 중 하나로, 클래스의 인스턴스를 단 하나만 생성하고 그 인스턴스에 대한 전역적인 접근점을 제공하는 방법입니다. 이 패턴은 전역 변수의 사용을 제한하고 객체 지향 설계 원칙 중 하나인 "하나의 클래스는 하나의 책임만 가져야 한다"를 따르기 위해 사용됩니다.

싱글톤은 다음과 같은 특징을 가지고 있습니다

  1. 단일 인스턴스: 싱글톤 패턴은 특정 클래스의 인스턴스를 하나만 생성합니다. 이 인스턴스는 전역적으로 접근할 수 있습니다.

  2. 전역 접근점: 싱글톤 인스턴스에는 어디서든 접근할 수 있는 전역적인 접근점이 제공됩니다. 이를 통해 다른 객체들은 싱글톤 인스턴스를 사용하여 공통된 리소스에 접근하거나 메서드를 호출할 수 있습니다.

  3. 지연된 초기화: 싱글톤 인스턴스는 처음 사용되기 전까지 생성되지 않습니다. 이를 통해 자원을 효율적으로 사용할 수 있습니다. 인스턴스 생성은 처음 사용되는 시점에서 발생하며, 그 후에는 동일한 인스턴스를 계속 사용합니다.

싱글톤 패턴은 다양한 상황에서 사용될 수 있습니다. 예를 들어, 데이터베이스 연결, 로그 기록, 캐시 관리 등의 경우에 싱글톤 패턴이 적용될 수 있습니다. 이러한 상황에서는 여러 개의 인스턴스를 생성하면 리소스의 낭비나 충돌 등의 문제가 발생할 수 있으므로, 하나의 인스턴스만을 유지하여 이러한 문제를 방지할 수 있습니다.

다음은 자바(Java)에서의 싱글톤 패턴 예제입니다

public class Singleton {
    private static Singleton instance;

    // 생성자를 private로 선언하여 외부에서 인스턴스 생성을 막음
    private Singleton() {
    }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

위 예제에서는 getInstance 메서드를 통해 싱글톤 인스턴스를 얻을 수 있습니다. 처음 호출될 때 인스턴스가 생성되며, 그 후에는 생성된 인스턴스를 반환합니다.

싱글톤 패턴은 편리하게 사용할 수 있지만, 과도한 사용은 전역 상태를 유지하게 되어 애플리케이션의 복잡성을 증가시킬 수 있으므로 신중하게 사용해야 합니다.

profile
I'm still hungry.

0개의 댓글