IT/etc

[Spring] 의존성 주입 (Dependency Injection, DI)

음료요정 2021. 7. 12. 22:52

 

 

의존성 주입이란 객체지향 프로그래밍을 하다보면 한번 쯤 듣게되는 용어이다. 

코드에서의 의존성이란 결합도가 높다는 것을 의미한다. A클래스에서 B클래스의 일부를 참조할 때

B에서 변경이 일어나면 A도 변경해줘야하는 비효율적인 상황이 발생 할 수 있다.

그러면 코드의 재활용성이 떨어지고, 결합도(Coupling) 가 높아지게 된다. 

 

Spring 프레임워크는 이 부분을 강력하게 지원하고 있다. 두 객체간의 관계를 결정해주는 디자인 패던으로, 인터페이스를 통해 의존관계가 고정되지않고 관계를 다이나믹하게 주입하여 유연성을 확보하고 결합도를 낮출수있게 해준다. 

 

 

 

DI를 해야하는 이유 

- 코드의 재활용성이 높아진다

- 객체간의 의존성을 줄이거나 없앨 수 있다.

- 객체간의 결합도를 낮추면서 더욱 유연한 코드를 작성 할 수 있다.

 

 

의존성을 주입하면 클래스를 직접적으로 생성하는것이 아닌, 외부로부터 필요한 객체를 받아서 사용하는 것이다.

이를 통해 객체간의 결합도를 줄이고 코드의 재활용성이 높아진다.