새소식

반응형
Java/Spring

DI(Dependency Injection, 의존성 주입)

  • -
반응형

* 의존성 주입(DI, Dependency Injection)

: 프로그래밍에서 구성요소간의 의존 관계 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인패턴중에 하나이다.

간단하게 말해서 의존성 주입이란 외부에서 의존 객체를 생성하여 넘겨주는 것

예를 들어

A Class와 B Class 가 존재한다

A Class가 B Class를 의존할때 B Object를 A가 직접 생성하지 않고 외부에서 생성하여 넘겨주면 의존성을 주입했다고 한다.

왼쪽 그림은 일반적인 A Class에서 B Object를 생성하는 형태이고, 오른쪽 그림은 A Class에서 B Object를 외부에서 생성하여 의존주입하는 형태이다.

DI(의존성 주입)를 위해서 객체를 생성하고 넘겨주는 일은 DI Framework가 하는 일이다. 외부에서 객체를 생성하고 넘겨주는것을 스프링에서는 컨테이너라고 한다.

* 의존성주입을 사용하는 이유

A Class에서 B Class를 사용하기 위해 선언하면 A ClassB Class에 의존성을 가진다. 여기서 B Class를 수정했을경우 A Class에 생성한 B Class도 수정해야하는 문제가 발생한다. 즉, 결합도가 높아진다.

그래서 의존성주입이 필요하다.

의존성 주입을 사용했을 경우

1. 객체간의 의존성(종속성)이 줄이거나 없앨수 있다.

2. 객체간의 결합도를 줄이면서 코드의 유연성이 상승한다.

반응형

'Java > Spring' 카테고리의 다른 글

JVM, 자바 메모리 영역(코드, 데이터, Static, 스택, 힙)  (0) 2021.08.28
Dispatcher Servlet(Front Controller), ViewResolver  (0) 2021.08.28
@Qualifier 어노테이션  (0) 2021.08.28
Java hashCode(), equals()  (0) 2021.08.28
HashSet<T>  (0) 2021.08.25
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.