[Nest] Nest에서의 IoC와 DI

ShinJuYong·2022년 7월 9일
1

Nest

목록 보기
13/13

저는 해군나와서 Nest.js 공부할때 DI하면 이거부터 떠올랐읍니다

IoC란?

제어의 역전

  • 개발자가 제어해야할 영역을 프레임워크에게 전적으로 맡기며, 애플리케이션의 동작방식을 프레임워크에 위임한다

  • 우리는 Nest.js를 쓰기때문에 우리가 제어하던 영역을 Nest.js에게 넘긴다.

DI란?

의존성 주입

아이가 초콜릿을 먹고싶을때 직접 편의점을 가서 사는게 아니라
초콜릿을 먹고싶다고 부모에게 말하면 그때 부모가 사와서 갖다 주는것

@Controller()
export class IController {
	// 생성자에 의존성을 주입한다
  constructor(
  	private readonly bumoService:BumoService
  ){}
  // 사용한다면

  order(){
  	return this.bumoService.orderChoco()
  }
}

Nest에선?

@Injactable, @Service등 데코레이터를 사용해 의존성주입을 사용한다
그리고, 일반적으로 의존성주입 대상은 싱글톤 패턴으로 만들어진다.

이는 데코레이터패턴에대한 이해도도 필요하단 의미

최종적으로, Nest.jsIoC를 구현하기위해 DI를 사용하며, 어플리케이션이 실행 될 때, 클래스를 생성하기 위한 의존성을 생성하며 주입하는 코드들을 작동시킨다.

싱글톤 패턴이란?

하나의 클래스는 오로지 하나의 인스턴스만을 가지도록 한다는 패턴

  • module 을 사용해서 injection 하는 패턴이 싱글톤패턴
  • 직접 인스턴스를 만드는게 아닌, 모든 모듈이 싱글톤 패턴이기에 서로를 export하여 사용이 가능하다.

0개의 댓글