본문 바로가기
  • optimuslee

module3

[Nestjs] 5-1. 공유 모듈 (shared modules) Nest 프레임워크에서 모듈은 기본적으로 싱글톤입니다. 여기서 싱글톤이란 어플리케이션이 시작될 때 어떤 클래스가 최초에 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴입니다. 이런 특성 덕분에 Nest는 인스턴스를 매번 만들지 않고, 모듈에서 DI(의존성 주입)를 통해 가져옵니다. 모든 모듈은 자동으로 공유 모듈이며 생성되면 재사용할 수 있습니다. 모듈에서 프로바이더를 export하면 다른 곳에서 해당 모듈을 import하면 export한 프로바이더에 접근할 수 있습니다. 사용 예시는 아래와 같습니다. import { Module } from '@nestjs/common'; import { CatsController } from './cats.controller'; impor.. 2022. 4. 27.
[Nestjs] 5. 모듈(Module)에 대하여... 모듈은 클래스나 함수처럼 한가지 일만 수행하는 컴포넌트는 아닙니다. ✨여러 컴포넌트를 합쳐서 더 큰 작업을 수행하는 단위를 일컫는 말입니다. @Module() 데코레이터를 사용하며 이에 대한 인자로 메타데이터를 받습니다. 아래의 그림을 예시로 모듈을 설명하도록 하겠습니다. Application Module은 루트 모듈이며 기본적으로 Nestjs 프레임워크에 자동으로 생성되는 모듈입니다. 루트 모듈은 다른 모듈들을 사용하기 위한 일종의 시작점입니다. 그리고 각각의 모듈들은 맡은 고유의 기능들이 있습니다. 물론 이 기능들은 개발자가 정의하며 유지/보수하는 과정에서 더 세밀하게 재정의되거나 변경될 수 있습니다. User Module은 사용자와 관련된 기능들( 회원가입, 정보 수정 등)을 내포하고 있으며 Ord.. 2022. 4. 24.
[Nestjs] 4-1. 프로바이더와 서비스 앞장에서 프로바이더가 무엇인지 알아보았고 간단한 서비스를 코드로 작성하였습니다. 이번에는 앞장에서 배운 내용을 토대로 interface, controller, service 그리고 module까지 완성하여 프로바이더가 어떻게 쓰이는지 알아보도록 하겠습니다. interface 아래의 service와 controller에서 사용하기 위해 Cats interface를 생성하여 Cats에 대한 name과 age를 쉽게 전달할 수 있게 만들었습니다. service $nest g service cats 위의 명령어를 입력하여 cats라는 이름의 service를 생성하였습니다. Castservice 클래스를 @Injectable() 데코레이터로 장식하였습니다. @Injectable() 데코레이터는 메타 데이터를 첨부.. 2022. 4. 10.