싱글턴 패턴(Singleton Pattern)이란?
싱글턴 패턴은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다.
싱글턴 패턴의 특징
1. 단일 인스턴스: 싱글턴 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장한다. 이 인스턴스는 어플리케이션 내에서 전역적으로 접근 가능하며, 여러 곳에서 동시에 사용될 수 있다.
2. 전역 접근 지점: 싱글턴 클래스의 인스턴스는 어디서든지 접근 가능한 전역 변수처럼 사용됩니다. 이를 통해 어플리케이션 전체에서 동일한 상태를 공유하거나 특정 기능을 사용할 수 있다.
3. 지연된 초기화 (Lazy Initialization): 인스턴스가 처음으로 요청될 때까지는 생성되지 않고, 필요한 순간에 생성된다. 이를 통해 초기화에 필요한 자원을 효율적으로 관리하고, 불필요한 자원 소모를 방지할 수 있다.
4. 스레드 안전성: 멀티스레드 환경에서 싱글턴 패턴이 안전하게 동작하도록 구현할 수 있다. 동기화 메커니즘을 활용하여 여러 스레드에서 동시에 접근해도 안전하게 인스턴스를 생성하도록 한다.
5. 상속 방지: 싱글턴 클래스는 주로 상속이 불가능하게 디자인된다. 즉, 다른 클래스에서 해당 클래스를 상속받아 새로운 인스턴스를 생성하는 것을 방지하고, 하나의 인스턴스만을 사용하도록 한다.
6. 제어된 접근 포인트: 싱글턴 패턴은 클래스 내부에서 자체적으로 인스턴스를 생성하고, 외부에서는 생성된 인스턴스에 접근하는 메소드를 통해 제어된 접근을 제공한다. 이를 통해 인스턴스 생성 및 사용을 관리할 수 있다.
7. 전역 상태 관리: 싱글턴 패턴을 사용하면 어플리케이션 전반에 걸쳐 단일한 상태를 유지할 수 있다. 이는 설정값, 로깅, 캐싱 등에서 활용될 수 있다.
8. 유일한 생성자: 싱글턴 클래스는 주로 생성자를 private 또는 protected로 선언하여 외부에서 직접 인스턴스를 생성하지 못하도록 한다.
'SOFTWARE DESIGN PATTERN' 카테고리의 다른 글
[SOFTWARE DESIGN PATTERN] 06 커맨드 패턴(Command Pattern) (0) | 2023.11.26 |
---|---|
[SOFTWARE DESIGN PATTERN] 04 팩토리 패턴(Factory Pattern) (0) | 2023.11.26 |
[SOFTWARE DESIGN PATTERN] 03 데코레이터 패턴(Decorator Pattern) (0) | 2023.11.26 |
[SOFTWARE DESIGN PATTERN] 02 옵저버 패턴(Observer Pattern) (0) | 2023.11.26 |
[SOFTWARE DESIGN PATTERN] 01 전략 패턴(Strategy Pattern) (0) | 2023.11.26 |