Singleton : GoF(Gang of Four) 디자인 패턴의 생성 패턴 5가지 중 하나
Config를 통해 객체를 관리하면, 호출할 때마다 객체가 새로 생성된다.
웹 애플리케이션 특성상 요청을 동시 다발적으로 많이 처리해야 하는데 이때마다 객체를 새로 생성하기에는 메모리 낭비가 매우 심하다.
이를 해결하기 위해 싱글톤 패턴을 사용하는 것이다.
public class SingletonService {
private static final SingletonService instance = new SingletonService();
public static SingletonService getInstance() {
return instance;
}
// private 생성자로 외부에서 객체를 생성하는 것을 방지하였다.
private SingletonService() {
}
}
그러나 싱글톤 패턴의 문제점으로
클래스 생성 시 마다 이렇게 구현할 수는 없는 노릇이다.
private 생성자로 자식 클래스를 만들기 어렵고, 결론적으로 유연성이 떨어진다.
그러나 Spring에서는 이런 Singleton의 단점을 모두 보완하면서 객체를 Singleton으로 관리해주는 Spring Container를 제공해준다.
'스프링 핵심 원리 기본편 - 김영한 강사님' 의 강의 내용을 정리한 것 입니다.