싱글톤 패턴(Singleton Pattern)
클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴이다.
-
글톤 패턴의 등장
-
싱글톤 패턴 적용
-
싱글톤 패턴의 문제점
- 싱글톤 패턴을 구현하기 위한 코드의 양이 많다.
- 구현 클래스에 의존해야 한다.(DIP, OCP 위반)
- 유연성이 떨어져서 안티패턴으로 불리기도 한다.
-
Spring의 싱글톤 컨테이너
- Spring은 Web Application을 만들 때 주로 사용된다.

- Spring Container는 싱글톤 패턴의 문제점들을 해결하면서 객체를 싱글톤으로 관리한다.
- Spring Bean은 싱글톤으로 관리되는 객체이다.
싱글톤 패턴의 주의점
객체의 인스턴스를 하나만 생성하여 공유하는 싱글톤 패턴의 객체는 상태를 유지(stateful)하면 안된다.
- 상태 유지(stateful)의 문제점
- 데이터의 불일치나 동시성 문제가 발생할 수 있다.
- Spring Bean은 항상 무상태(stateless)로 설계를 해야한다.
- 특정 클라이언트에 의존적인 필드가 있거나 변경할 수 있으면 안된다.