1. 싱글톤 컨테이너
1) 스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도, 싱글톤 패턴의 문제점을 해결하면서 객체 인스턴스를 싱글톤(1개만 생성)으로 관리
싱글톤 패턴을 위한 지저분한 코드가 들어가지 않아도 된다. 따라서 DIP, OCP, 테스트, private 생성자로 부터 자유롭게 싱글톤 사용
스프링 빈이 싱글톤으로 관리되는 빈이다.
2) 스프링 컨테이너는 싱글톤 컨테이너 역할을 함
# 싱글톤 레지스트리 : 싱글톤 객체를 생성하고 관리하는 기능
2. 스프링 컨테이너를 사용하는 테스트 코드
- src/test/java/hello/core/singleton/SingletonTest.java
...
@Test
@DisplayName("스프링 컨테이너와 싱글톤")
void springContainer() {
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
// 1. 조회: 호출할 때마다 같은 객체를 반환
MemberService memberService1 = ac.getBean("memberService", MemberService.class);
// 2. 조회: 호출할 때마다 같은 객체를 반환
MemberService memberService2 = ac.getBean("memberService", MemberService.class);
// 참조값이 같은 것을 확인
System.out.println("memberService1 = " + memberService1);
System.out.println("memberService2 = " + memberService2);
// memberService1 == memberService2
assertThat(memberService1).isSameAs(memberService2);
}
...
- 콘솔
memberService1 = hello.core.member.MemberServiceImpl@74294c1a
memberService2 = hello.core.member.MemberServiceImpl@74294c1a
3. 싱글톤 컨테이너 적용 후

스프링 컨테이너 덕분에 고객의 요청이 올 때 마다 객체를 생성하는 것이 아닌, 이미 만들어진 객체를 공유해서 효율적으로 재사용 가능
* 참고
스프링의 기본 빈 등록 방식은 싱글톤이지만, 요청할 때마다 새로운 객체를 생성해서 반환하는 기능도 제공 (빈 스코프)
참고링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8?cid=325969
스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의
현재 평점 5.0점 수강생 49,549명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프
www.inflearn.com
'강의 실습 > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
| @Configuration과 싱글톤 (0) | 2026.04.17 |
|---|---|
| 싱글톤 방식의 주의점 (0) | 2026.04.17 |
| 싱글톤 패턴 (0) | 2026.04.14 |
| 웹 애플리케이션과 싱글톤 (0) | 2026.04.13 |
| 스프링 빈 설정 메타 정보 - BeanDefinition (0) | 2026.04.12 |
댓글