Topic

Singleton Pattern(싱글톤 패턴)

JackerLab 2026. 6. 11. 18:38
728x90
반응형

개요

Singleton 패턴은 클래스의 인스턴스를 오직 하나만 생성하도록 제한하고, 해당 인스턴스에 전역적으로 접근할 수 있도록 제공하는 대표적인 생성(Creational) 디자인 패턴이다. 주로 설정 관리, 로깅, 캐시, 데이터베이스 커넥션 관리 등에서 활용된다.


1. 개념 및 정의

싱글톤 패턴은 애플리케이션 전반에서 단 하나의 객체만 존재해야 하는 경우에 사용되는 설계 패턴이다. 생성자를 외부에서 호출하지 못하도록 제한하고, 정적 메서드를 통해 유일한 인스턴스를 반환한다.


2. 특징

항목 설명 비고
단일 인스턴스 객체가 하나만 생성 메모리 효율
전역 접근 어디서든 접근 가능 편의성 증가
지연 초기화 필요 시 생성 Lazy Loading

한줄 요약: 하나의 인스턴스를 공유하여 효율성을 높이는 패턴이다.


3. 구성 요소

구성 요소 설명 역할
private 생성자 외부 생성 차단 인스턴스 통제
static 인스턴스 단일 객체 저장 전역 관리
static 메서드 인스턴스 반환 접근 제공

한줄 요약: 생성 제한과 정적 접근 구조가 핵심이다.


4. 기술 요소

기술 설명 특징
Lazy Initialization 필요 시 생성 자원 절약
Thread Safety 동시성 제어 synchronized 활용
Double-Checked Locking 성능 최적화 멀티스레드 대응

한줄 요약: 멀티스레드 환경에서의 안전성이 중요하다.


5. 장점 및 이점

장점 설명 효과
메모리 절약 객체 중복 방지 자원 효율
일관성 유지 동일 객체 사용 상태 관리 용이
접근 용이 전역 접근 가능 개발 편의성

한줄 요약: 자원 관리와 일관성 유지에 강점이 있다.


6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려사항
설정 관리 Config 객체 테스트 어려움
로깅 시스템 Logger 전역 상태 문제
DB 연결 Connection Pool 병목 가능성

한줄 요약: 유용하지만 남용 시 결합도가 높아질 수 있다.


7. 결론

Singleton 패턴은 객체 생성 제어와 전역 접근을 동시에 해결하는 강력한 설계 패턴이다. 그러나 과도한 사용은 테스트와 확장성 측면에서 문제를 야기할 수 있으므로, 꼭 필요한 경우에만 신중하게 적용하는 것이 중요하다.

728x90
반응형

'Topic' 카테고리의 다른 글

GoF Design Patterns(GoF 디자인 패턴)  (0) 2026.06.11
Prim Algorithm(프림 알고리즘)  (0) 2026.06.10
Kruskal Algorithm(크루스칼 알고리즘)  (0) 2026.06.09
B+Tree(B+트리)  (0) 2026.06.08
B-Tree(B-트리)  (0) 2026.06.07