Inversion of control, dependency injection

한눈에 보는 핵심 - IoC(제어의 역전): “누가 일을 시킬지”에 대한 주도권을 프로그램(객체)에서 외부로 돌려놓는 큰 원칙 - DI(의존성 주입): 그 IoC를 실제로 적용할 때 가장 많이 쓰는 구체적인 방법

비유로 이해하기

상황

전통적 방식

IoC + DI 방식

레고 자동차

자동차 블록이 엔진·바퀴를 스스로 찾아 끼움

외부(사람)가 원하는 엔진·바퀴를 골라 끼워 줌

요리

셰프가 “고기는 내가 직접 시장 가서 사 올게”

셰프는 “필요한 재료 목록만 알려 줄게, 준비된 걸 주세요”

관계 정리 1. 범주 - IoC ⟶ 큰 철학(‘제어를 외부로’) - DI ⟶ 그 철학을 실천하는 대표적인 기술 2. 의미 - IoC 없이는 DI를 굳이 쓸 이유가 없습니다. - DI는 IoC를 구현하면서 유연성·테스트 용이성 같은 이점을 끌어옵니다. 3. 공식처럼 기억하기 - “IoC가 원칙, DI가 구현”

아주 짧게 한 문장으로

IoC는 ‘내가 직접 결정 안 하고 외부가 결정하게 해!’라는 큰 생각이고, DI는 ‘그래서 필요한 걸 외부가 직접 넣어줘’ 하는 실천 방법이다.

Published on