객체 생성·관리 권한이 개발자가 아닌 외부 컨테이너에게 있는 설계 원칙. 「제어가 뒤집혔다」는 뜻.
class OrderService {
MailSender m =
new GmailSender();
}class OrderService {
MailSender m;
// 외부에서 받음
}Spring 컨테이너 가 합니다. 컨테이너가 관리하는 객체를 Bean 이라 부릅니다. 다음 차시에서 코드로.
| 항목 | 변화 |
|---|---|
| 결합도 | ↓ 인터페이스에만 의존 |
| 유연성 | ↑ 부품 교체 시 클래스 수정 없음 |
| 테스트 용이성 | ↑ Mock 으로 쉽게 갈아끼움 |
| 코드 간결화 | new 가 사라짐 |