본문 바로가기
  • optimuslee

백엔드6

[Nestjs] 6-1. Nestjs의 미들웨어(middleware) 안녕하세요~!!. 오늘은 지난 시간에 이어서 Nestjs의 미들웨어(middleware)에 대해 알아보는 시간을 갖도록 하겠습니다. 미들웨어는 클라이언트로부터 들어온 요청을 핸들러가 처리하기 이전에 코드를 실행할 수 있는 기능을 뜻합니다. (지난 시간에 비해 훨씬 구체적인 정의죠? ㅎ...) 또한 미들웨어 함수는 애플리케이션의 요청, 응답 주기에서 요청 및 응답 객체에 접근할 수 있으며 next()라는 미들웨어 함수를 사용할 수도 있습니다. Nest 미들웨어는 지난 시간에 언급했던 express의 미들웨어와 거의 동의합니다. 한 가지 차이점이 있다면 Nest에서는 @Injectable() 데코레이터가 있는 클래스로도 구현할 수 있다는 것입니다. 그리고 이러한 클래스로 구현하려면 NestMiddleware.. 2022. 5. 15.
[Nestjs] 6. 미들웨어 (middleware) 안녕하세요? 오늘은 ✨미들웨어(middleware)에 대해서 배워보는 시간을 가져보도록 하겠습니다. 서버 개발을 한번이라도 해본 사람이라면 한번쯤은 들어보셨을 것 같습니다. (아! 물론 처음 들어봤어도 상관없어요) 📢미들웨어란? 미들웨어는 운영 체제에서 제공하지 않는 일반적인 서비스와 기능을 애플리케이션에 제공하는 소프트웨어입니다. 데이터 관리, 애플리케이션 서비스, 메시징, 인증 및 API 관리는 주로 미들웨어를 통해 처리됩니다. 쉽게 말해서 번거로운 일련의 과정을 중간에서 손쉽게 처리해주는 절차라고 생각하시면 됩니다. 사실 미들웨어(middleware)라는 말이 굉장히 추상적인 말이라서 어떻게 쓰냐에 따라서 설명이 달라질 수 있지만 제가 Nestjs에서 설명하려는 미들웨어(middleware)는 서버.. 2022. 5. 13.
[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-3. 속성 기반 주입(property based injection) 우리가 이전에 배웠던 의존성 주입은 생성자 기반의 주입방식입니다. contructor를 통해서 주입을 하기 때문입니다. 하지만 이번 장에서는 ✨속성 기반 주입(property based injection)에 대해 같이 알아보도록 하겠습니다. //propertyBase.catparentService.ts export class catParentService{ constructor(private readonly testServiceA: TestServiceA){ } testHello(): string{ return "hello world" } parentTest(): string{ return this.testServiceA.testHello(); } } // propertyBase.catchildServi.. 2022. 4. 23.
[Nestjs] 4-2. DI(Dependency Injection)?? 의존성 주입?? 오늘은 의존성 주입에 대해 한번 자세히 알아보도록 하겠습니다. 간단히 언급을 하며 넘어간 적은 있었지만 구체적으로 설명한 적은 없었습니다. (이번에 설명하려고 그랬어요 ㅎ...) 의존성이라는 단어도 알고 주입이라는 단어도 알고 있지만 두 단어를 합쳐놓이니 무슨 말인지 모르겠습니다 ㅎ. 📢의존성 주입이란 하나의 객체가 다른 객체의 의존성을 제공하는 기술을 일컫는 말입니다. 더 쉽게 말하면 미리 만들어 놓은 객체를 불러와서 사용하는 것입니다. 아래 코드를 예시로 설명하겠습니다. class Animal{ private cat: Cat; getCrying():string{ this.cat=new Cat() return this.cat.Meow() } } class Cat{ crying(): string{ ret.. 2022. 4. 21.