웹 APP과 싱글톤

스프링없는 순수한 DI 컨테이너 AppConfig는 요청할 때 마다 객체를 새로 생성

생성된 객체는 모두 jvm 메모리에 쌓이게 되는데 고객요청이 많은 웹 app 특성상 효율적이지 X

ex. 고객 트래픽 초당 100일 경우 초당 100개 객체 생성되고 소멸 ⇒ 메모리 낭비


싱글톤 컨테이너

<aside> 📗 스프링 컨테이너는 싱글톤 컨테이너 역할

⇒ 싱글톤 객체 생성/관리하는 기능 싱글톤 레지스트리

스프링 컨테이너는 싱글톤 패턴의 모든 단점 해결하면서

객체를 싱글톤으로 유지/관리

  - 싱글톤 패턴을 위한 지저분한 코드 미사용
  - DIP, OCP, TEST, private 생성자로부터 자유롭게 싱글톤 사용

ex. 지금까지 학습한 스프링 빈 = 싱글톤으로 관리되는 빈

고객요청 올 때 마다 객체 생성이 아닌, 이미 만들어진 객체를 공유해 효율적으로 재사용

</aside>


싱글톤 방식 주의점


@Configuration과 Byte Code조작의 마법