본문 바로가기
영상 후기/Spring Boot

영상 후기 - [10분 테코톡] 주디의 Spring Bean

by 올리브영 2023. 3. 17.
728x90
반응형

movie

Spring Bean이란?

  • 스프링 IoC 컨테이너가 관리하는 객체이다.

스프링 IoC 컨테이너란?

  • Bean을 관리하는 객체이다.

 

빈과 의존성 주입

객체를 빈으로 등록하지 않고 의존성 주입을 도입한다면?

  • 의존성을 주입한다고 하면 어디에선가 new 키워드를 사용하여 객체를 생성해야 한다. 즉, 의존관계를 모두 파악해야 하는 번거로움이 생긴다. 또한 많은 객체가 중복 생성된다.

의존성 주입이 필요한 객체를 빈으로 등록하여 스프링 IoC컨테이너가 객체의 생성과 의존성 주입을 관리하도록 해야 한다. -> 주입된 의존성을 사용하는 부분에만 집중할 수 있게 된다.

 

 

빈과 싱글톤

스프링이 아닌 객체를 싱글톤으로 만들어 사용되는 문제점?

  • 싱글톤 패턴의 단점
    • 객체지향의 이점인 다형성을 이용하지 못한다.
      • 싱글톤 패턴을 사용하면 생성자의 접근 지정자를 private로 설정해야하는데, 이렇게 구현하면 해당 객체는 상속이 불가능하다.
    • 안정성이 중요한 어플리케이션에서 필수적인 단위 테스트가 어렵다.
      • 객체를 싱글톤 패턴으로 구현하면 해당 객체는 공유 객체가 되므로 단위 테스트를 실행할 때 테스트의 순서에 따라 결과가 달라진다.

 

스프링 IoC컨테이너는 빈을 어떻게 관리하는지?

IoC컨테이너가 빈의 라이프사이클을 관리하는 과정

  1. Spring IoC컨테이너가 생성이 되면 빈 스코프가 싱글톤인 객체를 생성한다. 
    1. 빈으로 등록하기 위해서 어노테이션 기반 혹은 Java 설정 클래스 기반, xml 기반의 다양한 Configuration 메타데이터를 이용하여 통일된 Bean Definition을 생성.
    2. 빈으로 등록할 POJO와 Bean Definition 정보를 이용하여 빈을 생성.
  2. 빈 객체가 생성이 되면 IoC컨테이너는 의존 설정을 한다. 
    1. 의존성 자동 주입이 일어난다. 
  3. 객체를 초기화
  4. 초기화가 끝나면 빈을 사용.
  5. 스프링 컨테이너가 종료될때 빈 스코프가 싱글콘인 객체들도 함께 소멸

 

 

728x90
반응형