Spring - WIL04 ⛵ Bean IoC DI

송현진·2023년 4월 23일

Spring

목록 보기
3/10

Bean

- Spring loc 컨테이너에 의해 관리되는 객체

Bean을 사용하려면 @Component 라는 어노테이션을 사용해줘야한다. @Component는 "이 클래스를 정의했으니 빈으로 등록해줘."라는 뜻이다. 그리고 개발자가 직접 컨트롤 할 수 있는 클래스에 사용한다.
(옆에 커피콩 모양이 빈으로 등록된 클래스임,, 얼마나 귀엽게요~~)

@Bean과 유사한 느낌인데 @Bean은 개발자가 컨트롤 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용된다.


IoC

제어의 역전 Inversion Of Control

  • 객체 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다.
  • Conntainer는 어플리케이션을 구성하는 Bean들을 관리하기 위해 IOC를 사용한다.

+ 추가

  • 순수 자바 프로그램은 사용자가 객체를 직접 생성하고 그 객체들이 프로그램 플로우를 결정했다.
    객체 생성 = 제어의 주체 = 사용자
  • 제어의 역전은 사용자에게 있던 제어권을 다른 주체가 가지게 되는 것을 뜻한다. 즉 스프링에서 말하는 IOC는 객체 생성 = 제어의 주체 = 스프링 컨테이너가 되는 것을 의미한다!

DI

의존 관계 주입(Dependency Injection)

  • 어떤 객체가 사용하는 객체(의존하는 객체)를 직접 만들어 사용하지 않고, 주입 받아 사용하는 방법

  • 메서드를 기준으로 로직에 사용되는 객체를 메서드 안에서 생성하느냐, 밖에서 생성한 객체를 인자로 받느냐 차이다.

  • 장점

  1. 의존성이 줄어든다.
  2. 재사용성이 높은 코드가 된다.
  3. 테스트하기 좋은 코드가 된다.
  4. 가독성이 높아진다.
profile
개발자가 되고 싶은 취준생

0개의 댓글