Back-end/Spring
싱글톤(Singleton) 객체
u0hun
2021. 10. 1. 10:19
본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다.
Singleton pattern이란?
- 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
자바에서의 단점
- 유연하지 않다.
스프링 해결방법
- 스프링 컨테이너를 이용해 Singleton pattern을 적용하지 않아도 객체 인스턴스를 Singleton으로 관리하여 해결하였다.
스프링의 경우 별도 설정을 하지 않을 경우 한 개의 빈 객체만을 생성하며, 이때 빈 객체는 '싱글톤(Singleton) 범위를 갖는다'고 표현한다.
Spring에서 Singleton을 사용하는 이유
- 스프링은 주로 서버환경에 적용되는데 클라이언트에서 매번 요청을 받을 때마다 각 로직을 담당하는 오브젝트를 새로 만들어서 사용하는 것은 매우 비효율적이기 때문에 싱글톤을 사용한다.