카테고리 없음
GoF 패턴 - singleton 싱글톤 패턴 / 스프링에서 싱글톤 패턴 만들어보기
minjava
2025. 9. 2. 19:23
뭐임?
- Singleton : 특정 클래스의 인스턴스가 오직 하나만 만들어지고, 그 인스턴스에 전역적으로 접근할 수 있도록 하는 패턴
- 즉, 프로그램 전체에서 공유되는 단일 객체이다.
- 단 하나의 객체로서 클라이언트의 요청을 처리함
왜씀?
- 메모리 절약(객체 여러번 생성 X) / 데이터 일관성 유지 / 객체 관리 단순화
동작 방식?
- 생성자를 private 으로 막아 외부에서 new 키워드로 인스턴스를 만들지 못하게 함.
- 클래스 내부에서 자기 자신을 static 변수로 하나 생성해 둠.
- getInstance() 같은 static 메서드를 통해 단일 객체에 접근함.

- : private
+ : public
밑줄 : static
스프링에서 싱글톤 만들어보기

ApplicationContext (스프링 컨테이너)가 spring-context.xml을 읽고 EmpService 빈을 하나만 생성함.
이후 context.getBean()을 통해 꺼내 쓰면 항상 그 하나 뿐인 객체가 리턴됨.
그래서 "클라이언트 요청이 들어올 때마다 같은 객체로 처리한다"는 점에서 싱글톤 패턴과 같은 효과를 얻는 것임.