register
container.register(TOKEN, provider)로 구현체, 값, 팩토리를 묶습니다.
컨테이너는 token으로 provider를 찾고 constructor injection을 통해 객체 그래프를 조립하며 lifecycle에 따라 재사용 범위를 정합니다.
container.register(TOKEN, provider)로 구현체, 값, 팩토리를 묶습니다.
호출자는 new 대신 container.resolve(TOKEN)으로 진입점을 요청합니다.
constructor의 Logger, Repository 같은 하위 토큰을 재귀로 찾습니다.
준비된 인스턴스를 생성자에 넣고 누락 provider는 즉시 실패시킵니다.
singleton 캐시, transient 새 생성, request scope를 구분합니다.
테스트에서는 같은 token에 mock provider를 등록해 DB, HTTP client, clock 같은 외부 의존성을 교체합니다.