Dependency Injection

DI 의존성 주입이란?

하나의 객체가 다른 객체의 의존성을 제공하는 기술. 외부에서 의존 객체를 생성하여 넘겨주는 기법을 의미한다.

일반적인 객체 생성은 클래스 안에서 사용할 객체를 생성하지만, DI는 외부에서 객체를 주입 받는 방식이다.

의존성이란?

class A {
		private Test test;
		fun Foo() { this.test = new Test() }
		fun Boo() { this.test.do() }
}

클래스 ABoo() 함수를 호출하기 위해서는 Test 클래스가 필수적이다.

→ A는 Test 클래스에 의존성을 가진다.

의존성이 생겨나면 코드의 재활용성이 떨어지고,

결합도가 높아져 하나의 클래스를 수정하였을 때의 영향력이 커진다.

<aside> 💡 의존성은 함수에 필요한 클래스 또는 참조변수에 의존하는 것

</aside>

의존성 주입의 장점