250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

240104 [TIL] autoLoadEntities, logging/ValidationPipe/swagger 사용법 본문

TIL

240104 [TIL] autoLoadEntities, logging/ValidationPipe/swagger 사용법

developer_owen 2024. 1. 5. 01:04
728x90

 

 

 

[스파르타코딩클럽] Node.js 플러스주차 과제 해설

스파르타 코딩클럽 내일배움캠프 9기 (Node.js 3기) 플러스 주차 TypeScript 과제 해설 영상입니다.

www.youtube.com

성일 튜터님이 올려주신 해설강의를 보면서 부족했던 점, 알게된 점을 쓴 자체피드백을 정리했다.

 

1. 성공,실패메시지 작성 부족

 

생각해보니까 중간중간 메시지를 띄우는걸 빼먹은거같다. 예를들어 로그인을 했으면 '로그인에 성공하셧습니다' 이런 멘트 없이 그냥 accesstoken만 주고 끝내는 식으로 했다. 


2. autoLoadEntities, logging

 

autoLoadEntities는 말그대로 entity를 작성하면 자동으로 엔티티를 추가해주는 기능이다

logging는 터미널에 실행할때마다 로그를 띄워준다.

 


entity- unsigned

 

 

 

unsigned: 데이터 타입 중 하나로, 음수를 표현하지 않고 0과 양수만을 표현하는 정수형 데이터 타입


main.ts

 

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
import { setupSwagger } from './utils/swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.useGlobalPipes(
    new ValidationPipe({
      transform: true,
      whitelist: true,
      forbidNonWhitelisted: true,
    }),
  );

  setupSwagger(app);
  await app.listen(3000);
}
bootstrap();

 

 

ValidationPipe: NestJS에서 제공하는 기능 중 하나로, 들어오는 요청의 데이터를 유효성 검사하고 변환하는 역할




- `transform: true`: 요청으로 들어오는 데이터를 자동으로 유효성 검사하기 전에 해당하는 데이터 타입으로 변환합니다. 예를 들어, 문자열로 들어온 숫자를 자동으로 숫자 타입으로 변환합니다. 이를 통해 유효성 검사 전에 데이터를 일관된 형태로 가공할 수 있습니다.

- `whitelist: true`: 유효성 검사 시, 유효하지 않은 속성들을 필터링하여 걸러냅니다. 즉, 요청으로 들어온 데이터 중에서 정의되지 않은 속성이 있을 경우 해당 속성을 무시하고 유효성 검사를 진행합니다. 이를 통해 정의된 속성만을 허용하여 보다 엄격한 데이터 유효성을 확보할 수 있습니다.

- `forbidNonWhitelisted: true`: 유효성 검사 시, 정의되지 않은 속성이 요청에 포함되면 해당 요청을 거부합니다. 즉, 정의되지 않은 속성이 포함된 요청은 처리되지 않고 오류 응답을 반환합니다. 이를 통해 요청의 안전성을 높이고 예상치 못한 속성의 전달을 방지할 수 있습니다.

`ValidationPipe`를 사용하면 입력 데이터의 유효성을 검사하고 필요한 변환을 수행하여 애플리케이션의 안정성과 일관성을 유지할 수 있습니다. 예를 들어, 클라이언트로부터 전달받은 데이터의 형식이 올바르지 않거나 필수 속성이 누락된 경우, `ValidationPipe`가 해당 오류를 감지하고 적절한 오류 응답을 반환합니다.

따라서 위 코드에서 `ValidationPipe`를 사용하는 것은 데이터의 유효성을 강화하고, 안전하고 일관된 데이터 처리를 할 수 있도록 도와줍니다.

 

 


Swagger 사용법

 

 

728x90