✔️ 싱글톤 패턴
싱글톤 패턴이란?
- 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴
- 이때 생성자가 여러 번 호출돼도, 실제로 new를 통해 생성되는 객체는 하나이며
최초로 생성된 이후에 호출된 생성자는 getInstance() 메서드를 통해 이미 생성한 객체를 반환시키도록 하는 것 - 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하여 메모리 낭비를 방지하며
싱글톤으로 구현한 인스턴스는 전역이므로 다른 클래스의 인스턴스들이 데이터를 공유하는 것이 가능하므로
커넥션 풀, 스레드 풀, 디바이스 설정 객체 등에서 사용 - 주로 공통된 객체를 여러 개 생성해서 사용하는 경우나 절대적으로 인스턴스가 한 개만 존재하는 것을 보증하고 싶을 때 사용
- 하지만 싱글톤 인스턴스가 혼자 너무 많은 일을 하거나 많은 데이터를 공유시키면
다른 클래스 간의 결합도가 높아져 개방-폐쇄 원칙을 위배하게 될 수 있으며
멀티 스레드 환경에서 동기화 처리를 하지 않으면 인스턴스가 2개 이상 생성되는 문제도 발생할 수 있음 - 싱글톤 패턴의 UML
- Singleton : 하나의 인스턴스를 생성하고 getInstance를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 클래스
'Tech Interview > Design Pattern' 카테고리의 다른 글
[Design Pattern] 옵저버 패턴 (0) | 2024.01.13 |
---|---|
[Design Pattern] 팩토리 메소드 패턴 (0) | 2024.01.12 |
[Design Pattern] 템플릿 메소드 패턴 (0) | 2024.01.12 |
[Design Pattern] 어댑터 패턴 (0) | 2024.01.12 |
[Design Pattern] 디자인 패턴 (0) | 2024.01.11 |