스프링 핵심 원리 · 7/18
웹 애플리케이션과 싱글톤
요청마다 new로 객체를 생성하던 AppConfig의 문제를 직접 구현한 싱글톤 패턴과 스프링 컨테이너로 각각 해결해 보고, 싱글톤 패턴의 문제점을 정리합니다.
요청마다 new로 객체를 생성하던 AppConfig의 문제를 직접 구현한 싱글톤 패턴과 스프링 컨테이너로 각각 해결해 보고, 싱글톤 패턴의 문제점을 정리합니다.
싱글톤 빈은 여러 클라이언트가 하나의 객체를 공유하기 때문에 무상태로 설계해야 한다는 점을, 공유 필드 때문에 다른 사용자의 주문 금액이 조회되는 StatefulService 예제로 확인합니다.
AppConfig에서 memberRepository()가 여러 번 호출되는 것처럼 보여도 싱글톤이 보장되는 이유를 @Configuration과 CGLIB 바이트코드 조작으로 확인하고, @Bean만 사용할 때와 비교합니다.
싱글톤과 프로토타입 빈 스코프의 차이를 살펴보고, 싱글톤 빈이 프로토타입 빈을 주입받을 때 발생하는 문제를 예제로 정리합니다.