69p, FastAPI가 제공하는 Depends는 사용하기 편하다. 하지만 큰 단점이 있다. 우리는 클린 아키텍처로 소프트웨어를 만들고 있다. 따라서 의존성 역전은 필수 요소다. … UserService의 생성자가 호출될 때 Depends에 의해 의존성이 주입되는 UserRepository의 객체를 만들어야 하므로 Depends(UserRepository)가 될 수밖에 없다. 이는 애플리케이션 계층이 여전히 인프라 계층에 직접 의존한다는 뜻이다. … (IoC 컨테이너를 사용하면) 애플리케이션이 구동될 때 IoC 컨테이너에 미리 의존성을 제공하는 객체를 등록해두고 필요한 모듈에서 주입하도록 만들 수 있다. 이렇게 되면 주입할 때의 타입을 인터페이스로 선언하더라도 실제로 주입되는 객체는 구현체가 되도록 할 수 있게 된다. … (dependency-injector의) providers 모듈에는 Factory 외에도 여러 종류의 프로바이더를 제공한다. Factory는 개게를 매번 생성하고, Singleton은 처음 호출될 때 생성된 객체를 재활용한다.