본문 바로가기
  • optimuslee

Nest10

[Nestjs] 6-2. 미들웨어의 여러 기능들 ✨안녕하세요!? 오늘은 지난 시간에 이어서 미들웨어 다른 기능들에 대해 알아보는 시간을 갖도록 하겠습니다. 코드는 저번 시간에 사용했던 내용과 크게 다르지 않습니다. 변형되는 부분들만 수정해주시면 됩니다~!! 위의 코드를 기준으로 하나씩 변형하면 새롭게 접하는 기능들에 대해 알아보도록 하겠습니다. 🎉Roue Wildcards export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(LoggerMiddleware).forRoutes('c*ts'); } } 위 코드는 "cts", "cats", "c_ts" 와 같은 경로로 요청을 받을 수 있습니다. *외에도 ?, +, () 문자들도.. 2022. 6. 5.
[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.
[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.
[Nestjs] 3-1. 라우팅, 요청, 그리고 응답 우리는 이전 장에서 서버를 구동시키고 어떻게 controller를 생성해서 작동시키는지 알아보았습니다. 오늘은 controller의 기능을 활용하여 요청을 받고 응답을 반환해보는 실습을 진행해보겠습니다. "라우팅"이란 우리가 원하는 데이터를 근원지에서 목적지까지 보내거나 받아오는 것을 일컫는 말입니다. 그렇기에 정확한 주소와 데이터 양식을 알고있어야 원하는 정보를 서버로부터 받아올 수 있을 것입니다. 말로 설명하는 것보다 같이 보는 게 더 이해가 잘 되실 겁니다. 아래의 코드를 살펴봐주세요~! CatsController 클래스 내부에 findAll이라는 메서드를 만들어 주었습니다. 그리고 string 타입으로 "The action return all cats" 이라는 문구를 반환할 수 있도록 만들어주었습.. 2022. 3. 28.
[Nestjs] 1. 안녕!? Nest.js 오늘부터 Nestjs 라는 프레임워크에 대해 포스팅할 예정입니다. 예전부터 관심있었던 프레임워크였지만 시간이 없어서 미루다 이제서야 공부를 하게 되었네요 ㅎ... nestjs는 nodejs의 유연함을 그대로 가지고 있으면서 프레임워크 안에 다양한 기능들을 미리 구현해두었습니다. 그래서인지 벌써부터 기대가 되네요. nestjs가 제공하는 컴포넌트를 사용하면서 웹 서버 개발에 박차를 가해봅시다~! 2022. 3. 20.