반응형
🏁 싱글톤(Singleton) 패턴이란?
싱글톤 패턴은 '하나'의 인스턴스만 생성하여 사용하는 디자인 패턴이다.
🏁 싱글톤 패턴의 장점
- 한 개의 인스턴스만을 생성하고 공유하기 때문에 메모리 낭비를 방지할 수 있다.
- 인스턴스를 매번 생성하는 것이 아니므로 속도 측면에서 이점이 있다.
- 전역으로 사용하는 인스턴스이기 때문에 다른 여러 클래스에서 데이터를 공유하며 사용할 수 있다.
🏁 싱글톤 패턴의 단점
- 의존성이 높아진다.
- 멀티스레딩 환경에서 동시성 문제가 발생할 수 있다.
반응형
🏁 구현 예시
싱글톤 패턴의 구현 방법은 매우 다양하지만 다음과 같은 공통사항을 가지고 있다.
- private 생성자만을 정의하여 외부 클래스로부터 인스턴스 생성을 막는다.
- 싱글톤을 구현하고자 하는 클래스 내부에 멤버 변수로써 private static 객체 변수를 만든다.
- public static 메서드를 통해 외부에서 싱글톤 인스턴스에 접근할 수 있도록 접점을 제공한다.
public class Singleton {
private static Singleton instance;
// 생성자를 private으로 하여 다른 클래스에서는 인스턴스를 만들지 못하게 한다.
private Singleton() {}
public static Singleton getInstance() {
/*
인스턴스를 사용하기 위하여 getInstance()를 호출하는데,
최초 접근으로 아직 만들어지지 않았다면 인스턴스를 만들고
그렇지 않다면 만들어진 인스턴스를 반환한다.
*/
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
References.
1. 치얼스헤나 - 싱글톤 패턴이란? singleton pattern
2. Libi의 블로그 - [Java] 싱글톤 패턴(Singleton Pattern) 구현 방법
3. 심플랜의 백문이불여일타 - 싱글톤(Singleton) 패턴 이해하기
반응형
'IT' 카테고리의 다른 글
[SQL] DELETE, TRUNCATE, DROP 차이점 (1) | 2025.01.21 |
---|---|
[MySQL / MariaDB] Table Lock(테이블 락) 해제 (1) | 2025.01.21 |
[macOS] zsh: command not found: brew (1) | 2025.01.20 |
[macOS] 맥북 재부팅 후 오라클 데이터베이스(Oracle Database) 재시작 (1) | 2025.01.20 |
[macOS] 맥북 오라클 데이터베이스(Oracle Database) 설치 (2) | 2025.01.20 |