Inversion of Control 이란
아키텍처에서의 제어 반전
제어의 반전(IoC)은 프로그램 흐름의 제어를 애플리케이션 코드에서 외부 프레임워크나 컨테이너로 이전하는 설계 원칙입니다.
주요 IoC 패턴
- 의존성 주입(DI) — 생성자, 세터 또는 인터페이스를 통한 의존성 주입
- 서비스 로케이터 — 중앙 집중식 서비스 레지스트리
- 팩토리 패턴 — 팩토리를 통한 객체 생성
- 템플릿 메서드 — 기본 클래스에서 알고리즘 골격 정의
IoC의 장점
- 컴포넌트 간 느슨한 결합
- 모의 객체를 통한 간소화된 테스트
- 유연한 의존성 구성
- 코드 재사용성
인기 있는 IoC 컨테이너
- Spring (Java) — 가장 인기 있는 IoC 컨테이너
- ASP.NET Core DI — .NET 내장 DI
- InversifyJS — TypeScript/JavaScript용 IoC
- Autofac, Ninject — .NET용 대안