[Spring] 싱글톤 컨테이너
인프런에 게시 되어있는 “스프링 핵심 원리-기본편” 수업을 기본으로 작성된 게시물
- 싱글톤 패턴
- 객체를 호출하여 생성할 때 중복적으로 생성되지 않도록 방지함
- 문제점
- 패턴을 구현하는 코드 자체가 많이 들어감
- private 생성자로 자식 클래스를 만들기 어려움
- etc…
- 싱글톤 컨테이너
- 스프링 컨테이너는 싱글턴 패턴 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리해줌!!
스프링 컨테이너 => 싱글톤 컨테이너 역할하는데, 이렇게 생성 및 관리하는 기능을 싱글톤 레지스터리라 함 –> 결론적으로, 이러한 고마운 기능 덕분에 싱글톤 패턴의 모든 단점을 해결 + 객체를 싱글톤으로 유지
싱글톤 컨테이너 적용 전

- 싱글톤 컨테이너 적용 후

- 싱글톤 방식의 주의점
- 객체 인스턴스 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에, 싱글톤 객체가 상태를 유지(stateful)하게 설계하면 안됨
- 즉, 무상태(stateless)로 설계해야함
