최근 NestJS 기반으로 서버 개발을 하고 있다. S3에 사용자 프로필을 업로드해야 하는 요구사항이 있어 다음과 같이 코드를 작성하여 사용하고 있다. NestJS의 Multer 라이브러리와 Multer-S3를 활용한다. 검색을 해보면 대부분 Controller 단에서 Multer-S3 라이브러리를 불러와 업로드를 하는데, 서비스단에서 비즈니스 로직을 수행하는게 맞다고 생각하여 업로드 서비스로 구분하여 구현하였다. [config.module.ts] import { Global, Module } from '@nestjs/common'; import { ConfigService } from '../service/config.service'; // Make Configuration Module To Globa..
회사에서 서버 개발을 하다가, 모바일 API 전문 암호화 요구사항이 있어서 AES256 암호화 및 복호화 코드를 만들고 사용하고 있다. 코드는 다음과 같다 (Typescript 사용 중). import * as Crypto from 'crypto'; /** * AES Algorithm Based Data Encrypt Function * @param secretKey - Encrypt Key * @param plainText - The Data Of To Be Encrypt */ export const encryptWithAES256 = (secretKey: string, plainText: string): string => { const secretKeyToByteArray: Buffer = Buffe..
지난 포스트 [NestJS 기반 게시판 REST API 만들기] 2. 회원가입 및 로그인 기능을 위한 DB 연동 지난번 포스트에서는 데이터베이스를 연동하고, 유저 테이블을 만들고, 엔티티 클래스를 만들어 연동까지 했습니다. 이번 시간에는 회원가입 API를 만들어 유저 테이블에 직접 데이터를 넣어보고, 로그인 API를 통해 로그인 기능까지 구현해보겠습니다. 또한 입력 파라미터를 검증하는 과정과 에러 처리과정을 보여드리겠습니다. 1. UserService 구현하기 이전 포스트에서 만들어두기만 했던 UserService를 회원가입과 로그인 처리를 위해 구현해보도록 하겠습니다. 가장 먼저 사용자 패스워드를 암호화 하기 위하여 bcryptjs 라이브러리를 추가합니다. 사용자 비밀번호가 평문으로 저장되어있다면 법적..
들어가기에 앞서 [1] 사용하는 스택은 다음과 같습니다. NodeJS Typescript NestJS TypeORM Mysql (or MariaDB) Redis [2] 프로젝트 요구사항 NodeJS 가 기본적으로 설치가 되어있어야 합니다. NestJS는 V8.9.0 이상을 요구하고 있습니다. (저는 v8.15 사용 중입니다.) 데이터베이스는 Mysql를 사용합니다. 프로젝트에서 사용되는 모든 내용은 NestJS Doc에 있는 내용을 기반으로 합니다. 만약 이해가 안 되는 내용이 있을 경우 해당 레퍼런스를 체크하시면 좋을 것 같습니다! 프로젝트 환경 구축 하기 1. 먼저 NestJS CLI를 글로벌로 설치해줍니다. npm install -g @nestjs/cli 2. NestJS CLI를 활용하여 새 프로..