같은 DI 토큰이 운영 구현과 테스트 대역을 교체한다

Controller는 Service 생성 방법을 모르고 토큰만 요청하므로 TestingModule에서 연결만 바꿀 수 있다.

Controller가 요청하는 토큰: UserService

운영 Module

UserService tokenReal UserServiceDB / API

실제 저장소와 외부 의존을 사용하는 provider를 연결한다.

TestingModule

UserService tokenuseValue: mockUsersNo DB

같은 토큰에 fake 객체를 연결해 라우팅·반환·실패만 검증한다.

DI의 가치: 직접 new가 없으면 구현 교체 지점이 Module 하나에 모이고 Controller 코드는 바뀌지 않는다.