◇ PART · SPRING

IoC — 제어 역전

Spring 기초
SMHRD

학습 목표

1. IoC = 제어 역전

객체 생성·관리 권한이 개발자가 아닌 외부 컨테이너에게 있는 설계 원칙. 「제어가 뒤집혔다」는 뜻.

비유: 택시 뒷좌석. 운전(객체 생성·관리)은 택시(컨테이너)가, 나는 목적지만 말한다.

2. 코드의 변화

BEFORE
class OrderService {
  MailSender m =
    new GmailSender();
}
AFTER
class OrderService {
  MailSender m;
  // 외부에서 받음
}

3. 누가 만들어주는가

Spring 컨테이너 가 합니다. 컨테이너가 관리하는 객체를 Bean 이라 부릅니다. 다음 차시에서 코드로.

4. 효과

항목변화
결합도↓ 인터페이스에만 의존
유연성↑ 부품 교체 시 클래스 수정 없음
테스트 용이성↑ Mock 으로 쉽게 갈아끼움
코드 간결화new 가 사라짐

학습 확인 체크리스트