DI,IoC,Bean 정리(WIL.220529)

박건영(Parkgunyoung)·2022년 5월 29일
0

WIL

목록 보기
3/8

오늘은 이번주에 들은 강의를 바탕으로 다시 한번 정리를 해볼까 한다.

DI(Dependency injection)란?

DI란 의존관계 주입기능으로, 객체를 직접 생성하는 것이 아닌 외부에서 생성한 후 주입을 시켜주는 방식이다.

일반적인 방식은 방법 1처럼 A객체가 B, C객체를 new 생성자를 이용해 직접 생성을 하는 방식이 있다. 두번째 방식은 외부에서 생성 된 객체를 stter()를 통해 사용하는 방식이다.

두번째 방식이 DI의 예시이다.
첫 번째 방식처럼 A객체에서 객체를 직접 생성하는 것이 아닌 외부(IoC컨테이너)에서 생성된 B,C객체를 setter또는 생성자를 이용해 사용하는 방식이다.

DI의 목적은 관심사를 분리하는 것이다. 즉, A객체가 의존관계에 너무 신경쓰지 않고 오직 비즈니스 로직에 집중하게 하는 것이다.

<순서>
객체생성 -> 의존성 객체 주입 -> 의존성 객체메소드 호출


IoC(Inversion of Control)란?

IoC는 "제어의 역전" 이라는 뜻으로 메소드나 객체의 호출작업을 개발자가 결정하지 않고 용도에 맞게 외부에서 결정되는 것을 의미한다.

객체의 의존성을 역전시켜 객체 간의 결합도를 느슨하게 만들어주고 유연한 코드를 작성할 수 있게 해주어 코드중복 방지, 코드의 가독성 상승, 유지보수를 편하게 해준다.

Bean이란?

IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 부른다.

그럼 우리는 의존성 객체 주입을 이용하기 위해선 IoC 컨테이너에 Bean으로 등록 해주어야 한다.

등록방법은 다음과 같이
@Component 어노테이션을 이용하거나
@Configuration 어노테이션을 붙이고 그 안의 메서드에 @Bean 어노테이션을 사용하여 직접 빈을 정의한다.


profile
쓰러지면어때일어나면그만인걸

0개의 댓글