IoC 컨테이너는 token으로 provider를 찾아 객체 그래프를 조립한다
컨테이너는 등록된 token, provider 방식, constructor parameter, lifecycle scope를 차례로 확인해 인스턴스를 만든다.
useClass, useValue, useFactory를 묶는다.
호출자는 new 대신 container.get으로 진입 토큰을 요청한다.
Logger, Repository 같은 하위 토큰을 찾는다.
singleton, transient, request 범위를 구분한다.
| 구분 | 의미 | 판단 |
|---|---|---|
| token | class, symbol, string | 동일 계약의 구현체를 교체하는 키 |
| provider | 구현 생성 방식 | 테스트에서는 mock provider로 바꿀 수 있다. |
| scope | 인스턴스 수명 | 재사용 범위를 잘못 잡으면 상태 공유 문제가 생긴다. |
핵심 DI 컨테이너의 핵심은 객체 생성을 숨기는 것이 아니라 의존성 연결과 교체 지점을 명시적으로 관리하는 것이다.