DI (의존성 주입) 을 사용하는 이유?

김형준 Kim Hyeong Jun·2022년 12월 5일
0
post-thumbnail
post-custom-banner

의존이란?

DI 는 Dependency Injection 의 약자로 우리말로는 '의존 주입'이라고 번역한다.

먼저 '의존(dependency)'이 뭔지 알아야한다.
여기서 말하는 의존은 객체 간의 의존을 의미한다.

한 클래스가 다른 클래스의 메서드를 실행할 때 이를 '의존'한다고 표현한다.

의존은 변경에 의해 영향을 받는 관계를 의미한다.
예를 들어 MemberDao 의 insert() 메서드의 이름을 inserMember() 로 변경하면 이 메서드를 사용하느 클래스의 소스 코드도 함께 변경된다.
이렇게 변경에 따른 영향이 전파되는 관계를 '의존'한다고 표현한다.

의존하는 대상이 있으면 그 대상을 구현하는 방법이 필요한데,
가장 쉬운 방법은 의존 대상 객체를 직접 생성하는 것이다.

위 방법은 클래스 내부에서 직접 의존 객체를 생성하는 것이 쉽긴 하지만
유지보수 관점에서 문제점을 유발할 수 있다.
이러한 문제점을 미연에 방지하기 위한 방법으로 DI와 서비스 로케이터가 있는데, 스프링과 관련된 것은 DI 이다.

DI 를 통한 의존 처리

DI (Dependency Injection)는 의존하는 객체를 직접 생성하는 대신 의존 객체를 전달받는 방식을 사용한다.

DI(의존 주입) 패턴 : 의존 객체를 직접 구하지 않고 생성자를 통해서 전달받는 것.

그래서 왜 사용하는데?

  • 의존 객체 변경의 유연함

DI 를 사용하면 어떤 객체를 사용하는 클래스가 여러 개여도 변경할 곳은 의존 주입 대상이 되는 객체를 생성하는 코드 한 곳뿐이다.
이렇게 되면 의존 객체를 직접 생성했던 방식에 비해 변경할 코드가 한 곳으로 집중되는 것을 알 수 있다.

profile
I want be a developer🙂
post-custom-banner

0개의 댓글