반응형

백엔드/NestJs 17

[nestjs] 미들웨어에서 method 지정 코드

# 미들웨어 1. 모든 경로 및 모든 method export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer): any { consumer.apply(JwtMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL, }); } } 2. 특정 경로 및 특정 method ``` export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer): any { consumer.apply(JwtMiddleware).forRoutes({ path: '/graphql', method: R..

백엔드/NestJs 2023.03.21

[암호화] 양방향 암호화 & 해싱(단방향 암호화)

암호화의 종류는 두 가지가 있는데 아래와 같다. - 양방향 암호화 : 암호화와 복호화 과정을 통해 송,수신 간 주고받는 메세지를 안전하게 암호화한 후 평문으로 복호화를 하는 과정 - 단뱡향 암호화 : hashing 을 이용한 암호화 방식으로서, 평문을 암호문으로 암호화가 가능하지만, 암호문을 평문으로 다시 복호화 하는 것은 불가능하다. 양방향 암호화는 암호문을 평문으로 복호화 가능하기 때문에 보통 단방향 암호화를 이용하는 편이다. - SHA - MD - HAS - WHIRLPOOL 이렇게 4 종류 중에 대표적으로 SHA-256 알고리즘이 많이 사용된다. 단순 해시 함수를 이용하여 변환만 한다면 보안이 완벽하다고 할 수 없다. 왜냐하면 해커들이 레인보우 테이블을 이용하여 엄청난 경우의 수의 복호화를 대입해..

백엔드/NestJs 2023.01.29

Validation 설정

nestjs에서는 requests 단의 자동 validation 처리를 해주는 모듈들이 다음과 같이 있다. - ValidationPipe - ParseIntPipe - ParseBoolPipe - ParseArrayPipe - ParseUUIDPipe 이 중에, ValidationPipe 모듈은 class-validator 패키지와 유휴셩 검사 데코레이터를 제공하는데, class 혹은 작성된 dto 에 따른 유효성 검사를 체크한다. 해당 파이프를 사용하기 위해 모듈 설치가 필요하다. npm i --save class-validator class-transformer 해당 패키지를 설치 후에는 전역 파이프를 선언하기 위해 main.ts 에 다음과 같이 코드를 작성해준다. import { Validation..

백엔드/NestJs 2022.08.01

useGlobalPipes 선언을 통한 @Param 타입변환 및 Validation

Postman에서 API 호출 시, 파라미터의 타입은 string으로 들어오게 된다. 이 때, 본인이 원하는 타입으로 변경을 하고 싶을 때에는 @Param 데코레이터에 타입을 지정하면 되는데, 일반적으로 그냥 타입을 지정만 하게 되면 그대로 string 형식으로 들어오는 것을 경험할 수 있다. 이 때, 타입을 변경해주는 방법으로는 controller에서 @Param 데코레이터에 ParseIntPipe 를 옆에 붙여주는 등 원하는 타입의 파이프를 붙여주면 되는데, 일일히 붙여주는 것이 여간 귀찮은 일이 아닐 수 없다. 이 때, main.ts 에 useGlobalPipes를 선언해주게 된다면, 파람 데코레이터 옆에 타입을 선언하게 되면 바로 본인이 원하는 타입으로 변경할 수 있다. main.ts app.us..

백엔드/NestJs 2022.08.01

핫리로딩 적용

nestjs 를 사용하면서 소스를 수정했을 시, 노드 서버를 껐다가 다시 켜서 적용시켜야 되는 불편함이 있는데, 핫리로딩을 적용하게 되면 소스를 수정 시 노드서버를 종료하고 다시 켜지 않아도 바로바로 적용되는 편리함을 갖추고 있다. express 에서는 nodemon을 설치하는데, nestjs 에서는 핫리로드를 제공하므로 핫리로드를 적용시켜서 좀 더 편리하게 이용해보자. 적용 방법은 nestjs 공식문서를 참고하여 진행한다. 1. 패키지 설치 $ npm i --save-dev webpack-node-externals run-script-webpack-plugin webpack 2. 설정 nestjs 의 루트 경로에 webpack-hmr.config.js 파일을 하나 만들어서 아래와 같은 코드를 복붙하여 ..

백엔드/NestJs 2022.07.03

NestJs 세팅

이번에 이직한 곳에서 백엔드로 사용하는 프레임워크는 NestJs 여서 이제 막 타입스크립트와 NestJs에 대해 포스팅을 진행하려 한다. 오늘은 간단하게 NestJs를 설치해보고, 모듈 및 MVC를 설치하는 명령어에 대해 포스팅을 하려 한다. 1. NestJs 설치 $ npm i -g @nestjs/cli 2. 프로젝트 초기화 $ nest new {project_name} 3. 모듈 생성 NestJs는 자바의 스프링이나, 파이썬 장고와 같이 MVC 패턴으로 설계하기 편하게 자체적으로 서비스를 제공해준다. 아래의 명령어를 터미널에서 치게 되면 해당 소스가 자동으로 생성된다. $ nest g mo {name} // module 생성 $ nest g s {name} // service 생성 $ nest g c..

백엔드/NestJs 2022.06.19
반응형