[Spring] 스프링은 왜 Proxy 전략을 선택했을까? Bean Scope와 함께 파헤쳐보기

·
Spring
들어가며Proxy 전략 이야기를 하기전에 먼저 Bean Scope에 대해서 알아보자. Spring에서 Scope란 Bean이 언제 생성되고, 언제까지 살아있는가를 정의하는 개념이다. 즉 빈의 생명주기를 결정하는 방법이라고 생각하면 편하겠다. Spring은 아무 설정도 하지 않으면 기본적으로 싱글톤으로 빈을 제공한다. 즉 아래 코드와 같은 경우 @Componentpublic class OrderService { } 애플리케이션 시작 시점에 한 번 생성컨테이너가 종료될 때까지 하나의 인스턴스만 유지모든 요청, 모든 스레드에서 같은 객체 사용인 것이다. 여기서 Spring의 기본 철학은 상태를 갖지 않는 객체를 하나 만들어 계속 재사용하자라는 것을 엿볼 수 있다.하지만 모든 객체를 싱글톤으로 쓰기에는 현실적으..