개발/Spring

[Spring] DI (Dependency Injection)

2juhyunju 2022. 5. 29. 20:12

DI란?

Spring 에는 3가지 핵심 프로그래밍 모델을 지원학도 있는데 그 중 한 가지가 DI이다.

DI란 간단히 말해서 필요한 객체를 외부에서 생성해서 주입하는 것이다.

  • 객체를 내부에서 생성하면 생성한 객체가 바뀌었을때 같이 수정해야할 가능성이 매우 높다. 이것을 강결합이라고 부른다.
  • 객체를 외부에서 주입받게 되면 그 객체와의 의존도가 낮아진다. 객체가 수정되었을때도 영향을 덜 받는다. 약결합이라 부른다.
  • 스프링에서는 다양한 객체들을 스프링 컨테이너에 미리 담아두기 때문에 원하는 객체를 주입받아 사용하기 편하다.

사용이유

  • 결국에 DI 를 사용하는 이유는 클래스들간 의존관계를 낮추게 하기위해 사용됨
  • 의존관계가 낮아지면 결합도가 낮아지기 때문에 코드 수정이 쉽다.
  • 테스트 코드 작성이 쉽다.
  • 유지보수가 편하다.

 

 

추 후 수정 예정