김영한 강의/스프링 핵심 원리 - 기본편

[Spring] 싱글톤 컨테이너 - 강의 정리

Coding-Su 2024. 8. 29. 11:29
728x90

강의

스프링 핵심 원리 - 기본편

 

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

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

www.inflearn.com

 

 

웹 애플리케이션과 싱글톤

스프링은 온자인 서비스 기술을 지원하기 위해 탄생하였습니다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 합니다. 이런 경우 요청에 따라 인스턴스를 하나씩 생성한다면 아래와 같이 여러개의 인스턴스가 하나의 요청마다 생깁니다.

 

이런 경우 메모리 낭비가 매우 많이 됩니다. 따라서 이를 해결하기 위해 객체가 하나만 생성될 수 있는 싱글톤 패턴을 사용하면 됩니다.

 

싱글톤 패턴

싱글톤 패턴이란 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴입니다. 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 합니다.(private 생성자를 통해 외부에서 new 키워드를 사용하지 못하도록 해야합니다.)

싱글톤 패턴은 요청이 들어올 때마다 객체를 생성하는 것이 아니라 미리 만들어진 하나의 객체를 공유해서 사용함으로 효율적으로 사용할 수 있다. 하지만 싱글톤 패턴에는 여러가지 문제점이 존재한다.

  • 싱글톤 패턴을 구현하는데 코드가 많이 필요하다.
  • 클라이언트가 구체 클래스에 의존함으로 DIP를 위배한다.
  • 유연성이 떨어진다.

 

싱글톤 컨테이너

싱글톤 컨테이너는 싱글톤 페턴의 문제점을 해결하면서 하나의 객체를 생성(싱글톤)하여 관리한다. 싱글톤 컨테이너는 빈 객체를 생성하기 때문에 싱글톤 패턴의 문제점을 해결하였다.

싱글톤 컨테이너: 싱글톤 패던을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리하는 컨테이너이다.

728x90