싱글톤이란 전체 프로젝트에서 하나의 객체만을 생성하고 해당 객체에 접근할 수 static 메소드를 생성해 관리하는것을 의미한다.
싱글톤 기법을 사용하는 이유
자바에서 싱글톤 패턴은 하나의 인스턴스만을 생성하고, 어디서든지 그 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다. 주요한 목적은 다음과 같습니다:
- 단일 인스턴스 유지: 싱글톤 패턴은 애플리케이션 전체에서 오직 하나의 인스턴스만 생성하여 사용합니다. 이는 여러 개의 인스턴스가 생성되는 것을 방지하고, 리소스 낭비를 줄이는 데 도움을 줍니다.
- 공유 리소스 제공: 싱글톤 인스턴스는 여러 객체 간에 공유할 수 있는 중요한 리소스를 나타낼 수 있습니다. 예를 들어, 데이터베이스 연결, 로깅 시스템, 설정 정보 등의 인스턴스를 싱글톤으로 구현하면 애플리케이션 전체에서 해당 리소스에 접근하고 사용할 수 있습니다.
- 전역적인 접근점 제공: 싱글톤 패턴은 어디서든지 동일한 인스턴스에 접근할 수 있는 전역적인 접근점을 제공합니다. 이는 객체 간에 손쉽게 통신하고 데이터를 공유할 수 있게 합니다.
- 인스턴스화 제어: 일부 클래스의 경우, 인스턴스화를 제한하고 관리하기 위해 싱글톤 패턴을 사용합니다. 예를 들어, 스레드 풀, 캐시 등의 경우에는 인스턴스의 수를 제어하고 관리하는 것이 중요합니다.
- 상태 유지: 싱글톤 패턴을 사용하면 인스턴스가 한 번 생성되고 유지되므로, 해당 인스턴스에 상태를 유지할 수 있습니다. 이는 일부 상황에서 유용하며, 여러 객체 간에 동일한 상태를 공유해야 하는 경우에 활용될 수 있습니다.
싱글톤 패턴은 특정 상황에서 유용하지만, 과도하게 사용하면 테스트 및 확장에 어려움을 초래할 수 있으므로 신중하게 사용해야 합니다. 또한, 멀티스레드 환경에서 싱글톤 인스턴스에 접근하는 경우 동기화에 주의해야 합니다.
우선 싱글톤 class를 생성한다.
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){}
static Singleton getInstance() {
return singleton;
}
}


같은 객체를 공유하는 것을 확인할 수 있다.
'코딩딩 > Java' 카테고리의 다른 글
Getter and Setter 메소드 (0) | 2023.07.14 |
---|---|
인텔리제이 vim 에디터 사용시 클립보드 복사하는법 (0) | 2023.07.14 |
네트워킹 (0) | 2023.07.10 |
ArrayList, Generics, 멀티 쓰레딩, 임계영역을 이용한 동기화, 쓰레드 사이의 통신을 이용한 동기화 (1) | 2023.07.08 |
패키지와 중첩클래스, 랩퍼클래스 각종 메서드 (0) | 2023.07.07 |