영상후기 - Spring Bean

shin·2023년 3월 28일
0

영상후기

목록 보기
4/20

movie

[10분 테코톡] 주디의 Spring Bean

  • Spring Bean이란? Spring IoC(Inversion of Control) Container에서 관리하는 객체
  • Spring IoC Container란? Bean을 관리하는 객체로, Bean을 인스턴스화 하고, 구성과 조립을 담당
  • 빈과 의존성 주입
    - 의존성 주입 = new 키워드를 사용하여 객체를 생성하는 것
    - 객체를 빈으로 등록하지 않고, 의존성을 직접 주입 하게 된다면, 의존 관계를 전부 파악해야하고, 이 과정에서 객체의 중복 생성이 발생하게 된다.
    - 의존성 주입이 필요한 객체를 빈으로 등록하여 spring IoC container가 객체 생성과 의존성 주입을 관리하도록 해야 한다. => 주입된 의존성을 사용하기만 하면 됨
  • 빈과 싱글턴
    - 빈 = 싱글턴
    - 싱글턴 패턴의 단점
    1. 다형성을 이용하지 못 한다. 싱글턴 패턴을 사용하면 생성자를 private 설정해야하기 때문에 상속이 불가능해진다.
    2. 단위 테스트가 어렵다. 객체를 싱글턴 패턴으로 구현할 경우 공유 객체가 되는데, 단위 테스트를 진행할 때 테스트의 순서에 따라 결과가 달라지게 된다.
      직접 객체를 싱글턴으로 만들어 사용하게 되면,
  • 스프링 IoC 컨테이너는 빈을 어떻게 관리할까?
    - IoC 컨테이너가 빈의 라이프사이클을 관리하는 과정
    객체 생성 + property 설정 -> 의존 설정 -> 초기화 -> 사용 -> 소멸
  • 빈 설정시 주의점
    - 빈 스코프를 싱글턴으로 설정한 경우 상태를 가지면 안된다.
    - 빈 스코프를 프로토타입으로 설정하면 요청이 올때마다 객체가 생성. 모든 스레드에서 공유하는 것이 아니므로 상태를 가질 수 있다.
    - 의존성을 자동 주입해야할 인터페이스 구현체가 두 개 이상이라면, 충돌이 발생한다. 어노테이션을 사용하여 의존성 주입의 우선순위를 지정할 수 있다.
    - 의존성 자동 주입 인터페이스 구현체가 하나일 경우, @Primay 어노테이션 사용.
    - 의존성 자동 주입 인터페이스 구현체가 두 개 이상일 경우, @Qualifier 어노테이션을 사용하면 상황에 맞게 구현체를 자동 주입이 가능
  • Spring Bean이 필요한 이유: 스프링 loC컨테이너가
    특정 객체의 라이프사이클을 관리한다는 것을 명시하기 위해
  • Spring IoC Container가 Bean을 관리하는 이유: 의존성을 사용하는 로직에만 집중 가능. 의존성이 주입 될 객체가 항상 동일한 오브젝트임을 보장
profile
안녕하세요.

0개의 댓글

관련 채용 정보