Nestjs 7

[NestJS] Queue 사용하기 (Redis)

nestjs Queue사용하기 프레임워크 : NestJS 언어 : Typescript 저장소 : Redis 큐를 사용하는 이유는 여러가지 경우가 있겠지만,  오래 걸리거나 당장 응답이 필요하지 않은 작업들을 Queue에 넣고, 워커 노드들이 큐에서  작업을 가져가는 구조는 매우 유용하다.  동작과정 1. 클라이언트 요청 : 클라이언트가 Rest API 서버에 요청을 보낸다.  2. API 응답 및 작업 큐 삽입 : Rest API 가 클라이언트에 즉시 응답을 보내고, 작업은 Queue에 넣는다. 3. 워커 노드의 처리 : Worker Node가 Queue에서 작업을 가져와 처리를 완료한다.  이 과정에서 Rest API는 Producer(생산자), Redis는 큐저장소, Worker는 Consumer(작..

framwork/NestJs 2024.12.26

[Jest] 테스팅도구 - Jest란?

Jest Jest는 자바스크립트 및 타입스크립트 애플리케이션을 테스트하기 위해 설계된 테스트 프레임워크이다. Facebook에서 개발한 Jest는 특히 리액트에서 시작해 점차 nodeJs, Vuejs, angular, NestJS 등 다양한 환경에서 사용되고 있다고 한다 !  *Jest의 기본 구성요소  1.  테스트  suite describe('UserService', () => { // 테스트 케이스가 여기에 작성됩니다.});=> Jest에서는 describe 블록으로 테스트 스위트를 정의함. 2. 테스트 케이스  it('should return the correct user', () => { expect(userService.findUserById(1)).toEqual({ id: 1, ..

Testing/Jest 2024.12.01

[Nestjs] Custom Validator 데코레이터 적용하기

NestJs에서 요청에 대한 유효성 검사를 할때 class-validator, class-transformer에서 validationPipe를 제공해주어 유효성 검사를 할 수 있다. https://github.com/typestack/class-validator#usage  GitHub - typestack/class-validator: Decorator-based property validation for classes.Decorator-based property validation for classes. Contribute to typestack/class-validator development by creating an account on GitHub.github.com  이렇게 기본적으로 제공되는..

framwork/NestJs 2024.11.22

[Nestjs] multer로 이미지 파일 업로드하기

multer란 ?  - Node.js 환경에서 파일 업로드를 처리하는 미들웨어로 파일을 서버에 업로드할 때 유용하게 사용됨.  1. 설치 npm install multer @types/multer2. 서버 설정2-1. multer 설정 multer 미들웨어는 파일 저장 위치를 설정할 수 있게 해줌.  두가지 저장방식이 있음 1) 디스크 저장  2) 메모리 저장 나는 디스크에 바로 저장을 할 예정이라서 distStorage 옵션을 사용.  multer 설정옵션에 대한 클래스를 작성할 수 있다. /src/util/multer.config.tsimport { Injectable } from '@nestjs/common';import * as multer from 'multer';import { MulterOp..

framwork/NestJs 2024.11.19

[NestJS] LifeCycle (생명주기)

[NestJS] LifeCycle (생명주기)  NestJS에서의 요청-응답 라이프사이클은 애플리케이션의 요청 처리 흐름을 이해하는데 중요하다. 이 라이프사이클은 여러 단계를 거치며, 각 단계에서는 다양한 기능을 수행함. 단계의 순서는  MiddleWare -> Guard -> pre-interCeptor -> Pipe -> Controller -> post-interceptor -> ExceptionFilter -> Response 각 미들웨어, 가드, 인터셉터, 파이프는 모두 global하게 또는 controller , Route 에 적용할 수 있다.   1. MiddleWare -> 전역으로 적용된 미들웨어가 가장 먼저 실행된다.  (예를들어, 'main.ts'파일에 app.use()로 바인딩된 미..

framwork/NestJs 2024.07.02

[TypeORM] Seed (데이터베이스에 초기 데이터 생성하기)

[TypeORM] Seed (데이터베이스에 초기 데이터 생성하기) Seed 파일은 초기 데이터를 데이터베이스에 삽입하는 역할을 한다.  순서는  1. 데이터 베이스 초기화 2. 초기 데이터 삽입 이다.  typeorm-extension을 설치하면 Seeder를 사용할 수 있다.  npm i typeorm-extension해당 명령어를 실행하면 된다.  그럼 src/ 폴더에 seed.ts 파일을 만들어 보자.  그리고 삽입할 시드들을 seed 폴더 아래에 파일을 생성한다.  나는 UserSeeder, SettingSeeder 이런식으로 초기 데이터가 필요한 시드 파일들을 나눠 주었다.   package.json 파일의 스크립트에 'seed'가 생성된다.  src/seed.tsasync function b..

Data/DBMS 2024.06.30

[Nodejs / PM2] PM2(Process Manager) 사용법

PM2를 사용해서 노드 서버를 실행시켜보자 !  *PM2 공식홈페이지  https://pm2.keymetrics.io/*PM2란? -> Node.js 프로세스 관리자  node는 싱글 스레드 기반이지만, 멀티 코어 멀티 스레딩을 사용할 수 있게 해준다 !  클라이언트로 부터 요청이 오면 알아서 여러 노드 프로세스에 고르게 분배하는 로드밸런싱 역할을 한다. 1. pm2 모듈을 global로 설치한다. npm install pm2 -g2. ecosystem.config.js 파일을 생성한다pm2 ecosystem=> 해당 파일을 생성하는 이유는 일반적으로 사용하는 env.dev 이런 파일을 pm2가 읽지 못한다고 한다  그래서 pm2가 읽을 수 있는 환경설정 파일을 생성하는 것. pm2 ecosystem을..

framwork/nodejs 2024.03.15