DI란 Dependency Injection, 즉 의존성 주입이라는 뜻입니다. 하지만 바로 느낄 수 있듯이 말이 너무 어렵습니다. DI는 부품 조립이라고 이해하면 좀 더 쉽게 접근할 수 있습니다. DI의 예를 들어 보겠습니다.
B b = new B(); // Dependency -> 부품
A a = new A();
a.setB(b); // Injection -> 조립
B b = new B(); // Dependency -> 부품
A a = new A(b); // Injection -> 조립
위 두가지 모두 DI의 예입니다. 이렇게 DI 방식을 사용할 경우 장점과 단점이 명확합니다. 장점은 부품을 바꿔야하는 상황이 올경우 부품만 다른 걸로 끼우면 되기 때문에 매우 간단하게 부품을 바꿀 수 있다는 것입니다. 이와 반대로 단점은 부품을 조립해야하는 번거로움이 있다는 것입니다. 하지만 Spring은 이 부품 조립, DI를 설정만 해주면 자동으로 해결해줍니다.