인프런 - 스프링/핵심 원리

[Spring] 싱글톤 패턴과 싱글톤 컨테이너

서하빈 2023. 7. 19. 16:19

- 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다.

 

예제 코드

 

- 싱글톤 패턴을 구현하는 방법은 여러가지가 있지만 위의 방법은 객체를 미리 생성해두는 가장 단순하고 안전한 방법을 사용했다.

- 예를 들어, 사용하는 시점에 객체가 생성되어 있지 않으면 생성하는 방법도 있다.(지연하여 처리하는 방법)

 

 

싱글톤 패턴 문제점

- 싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다.

- 의존관계상 클라이언트가 구체 클래스에 의존한다. --> DIP를 위반한다.

- 클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다.

- 테스트하기 어렵다.

- 내부 속성을 변경하거나 초기화하기 어렵다.

- private 생성자로 자식 클래스를 만들기 어렵다.

- 결론적으로 유연성이 떨어진다.

 

스프링 컨테이너(싱글톤 컨테이너)

- 스프링 컨테이너는 싱글톤 패턴의 문제점을 해결하면서, 객체 인스턴스를 싱글톤으로 관리한다.

 

 

출처: 인프런 김영한님의 스프링 핵심 원리 - 기본편

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢

www.inflearn.com