Nest.js의 Dependency Injection(DI) 이해하기

yujin·2023년 12월 21일
0

TIL

목록 보기
24/48
post-thumbnail

Nest.js의 Dependency Injection(DI) 이해하기


1. Dependency Injection(DI)란?

Dependency Injection(DI)는 의존성 주입이라고도 하며, 객체가 서로 의존하는 관계를 클래스 내부가 아닌 외부에서 결정하고 제공하는 디자인 패턴이다.

2. Nest.js에서의 DI

Nest.js에서는 클래스의 생성자를 통해 의존성을 주입한다. 이를 통해 모듈과 서비스 간의 느슨한 결합을 유지하면서 코드 재사용성과 테스트 용이성을 향상시킬 수 있다.

3. DI의 장점

코드 재사용성 향상

  • DI를 사용하면, 특정 클래스나 모듈이 다른 클래스나 모듈에 강하게 의존하지 않아도 된다. 이로 인해 코드의 재사용성이 향상된다.

테스트 용이성

  • DI를 통해, 테스트 시에 실제 객체 대신 모의 객체(Mock Object)를 쉽게 주입할 수 있다. 이로 인해 단위 테스트(Unit Test)가 더욱 용이해진다.

4. Nest.js의 DI 사용법

import { Injectable, Controller, Inject } from '@nestjs/common';

@Injectable()
export class MyService {
  doSomething() {
    console.log('Doing something...');
  }
}

@Controller('my-controller')
export class MyController {
  constructor(private myService: MyService) {}

  @Get('do')
  doSomething(): void {
    this.myService.doSomething();
  }
}
profile
고통 받는 코딩일기

0개의 댓글