직접 생성
const service = new UserService();
사용하는 클래스가 구현체와 생성 방식을 모두 알아야 하므로 변경 영향이 커집니다.
NestJS의 DI는 객체 생성 책임을 컨테이너로 옮겨 테스트, 교체, 수명 주기 관리를 단순하게 만듭니다.
사용하는 클래스가 구현체와 생성 방식을 모두 알아야 하므로 변경 영향이 커집니다.
필요한 타입만 선언하고 실제 인스턴스는 컨테이너가 찾아 주입합니다.
DB나 외부 API 없이 컨트롤러와 서비스 로직만 검증합니다.
캐시, 저장소, 메시지 클라이언트를 모듈 설정에서 바꿉니다.
싱글톤과 요청 스코프를 프레임워크 규칙으로 일관되게 다룹니다.