
DI ( Dependency Injection ) : 의존관계 주입
IoC ( Inversion Of Control ) : 제어의 역전
- 소프트웨어 엔지니어링에서 사용되는 디자인 원칙 중 하나로, 컴포넌트나 객체들 간의 제어 흐름을 역전시키는 기법을 말한다. 전통적인 프로그래밍에서는 주 프로그램이 서브루틴을 호출하여 제어의 흐름을 지배하는데, IoC에서는 이러한 제어 흐름을 역전시켜 서브루틴이나 서비스가 프레임워크에 의해 제어되게 한다.
IoC, DI 는 스프링만이 제공하는 특별한 기술이 아니다.
- 객체지향 설계 원칙을 충실히 적용했을 때 만들어지는 코드의 특징
- 스프링은 IoC, DI, 객체지향이라는 철학을 기반으로 편의를 제공하는 도구