Nest.js에서의 의존성 주입

bshunter·2023년 7월 26일
0

NestJS의 의존성 주입(DI)

NestJS는 의존성 주입(DI) 을 사용하여,컴포넌트 간의 결합도를 낮춥니다. DI는 컴포넌트가 필요한 서비스를 직접 생성하지 않고, 컨테이너에서 서비스를 주입받는 방식입니다. 이로 인해 컴포넌트는 특정 서비스에 종속되지 않고, 다양한 서비스와 함께 사용할 수 있습니다.

NestJS에서 DI를 사용하려면 컴포넌트의 생성자에 @Inject() 데코레이터를 사용합니다.
@Inject() 데코레이터는 컴포넌트가 필요한 서비스의 타입을 지정합니다. 컨테이너는 @Inject() 데코레이터에서 지정된 타입의 서비스를 찾아 컴포넌트의 생성자에 주입합니다.

예를 들어 다음 코드는 UserRepository 서비스가 필요한 UserController 컴포넌트를 정의합니다.

@Controller()
export class UserController {

  constructor(@Inject() private userRepository: UserRepository) {
  }

  ...
}

컨테이너는 UserRepository 서비스가 필요한 UserController 컴포넌트를 생성할 때 UserRepository 서비스를 찾아 UserController 컴포넌트의 생성자에 주입합니다.

NestJS에서 DI를 사용하면 다음과 같은 이점을 얻을 수 있습니다.

컴포넌트 간의 결합도를 낮춥니다.
컴포넌트를 다양한 서비스와 함께 사용할 수 있습니다.
컴포넌트를 테스트하기 쉽게 만듭니다.
NestJS의 DI는 컴포넌트의 모듈성과 재사용성을 높이는 데 도움이 됩니다.

0개의 댓글