ILogger 같은 계약
고수준 모듈은 구체 클래스가 아니라 인터페이스나 토큰에 의존합니다.
의존성 주입이 커질수록 직접 new를 호출하는 대신 토큰, 바인딩, 수명 주기, 테스트 대역을 함께 관리해야 합니다.
고수준 모듈은 구체 클래스가 아니라 인터페이스나 토큰에 의존합니다.
컨테이너가 어떤 요청에 어떤 구현체를 줄지 중앙에서 등록합니다.
객체를 매번 만들지 공유할지 컨테이너 정책으로 고정합니다.
실제 의존성 대신 목 객체를 주입해 테스트 범위를 작게 유지합니다.