TypeScript · DI

IoC 컨테이너 의존성 해결 흐름

컨테이너는 token으로 provider를 찾고 constructor injection을 통해 객체 그래프를 조립하며 lifecycle에 따라 재사용 범위를 정합니다.

의존성 조립 단계

container

register

container.register(TOKEN, provider)로 구현체, 값, 팩토리를 묶습니다.

container.get

호출자는 new 대신 container.resolve(TOKEN)으로 진입점을 요청합니다.

resolve graph

constructor의 Logger, Repository 같은 하위 토큰을 재귀로 찾습니다.

construct

준비된 인스턴스를 생성자에 넣고 누락 provider는 즉시 실패시킵니다.

lifecycle

singleton 캐시, transient 새 생성, request scope를 구분합니다.

register resolve token provider constructor instance

DI 컨테이너 정리

테스트에서는 같은 token에 mock provider를 등록해 DB, HTTP client, clock 같은 외부 의존성을 교체합니다.