등록
LoggerToken → ConsoleLogger처럼 token과 provider 구현을 모듈에 등록한다.
바인딩 지도DI는 객체가 의존성을 직접 만들지 않게 하고, 컨테이너는 provider 등록표를 바탕으로 token을 resolve하며 scope와 순환 의존성까지 관리한다.
LoggerToken → ConsoleLogger처럼 token과 provider 구현을 모듈에 등록한다.
바인딩 지도OrderService 생성 시 constructor의 token 목록을 읽고 필요한 객체를 찾는다.
metadata/reflection의존성 그래프를 따라 하위 provider부터 만들고 scope 캐시에 저장한다.
lifecycle완성된 인스턴스를 생성자에 넣어 서비스가 구체 클래스 생성 코드를 몰라도 되게 한다.
DIP