본문 바로가기

개발/NestJS23

TypeORM에서 insert() 사용 시 @BeforeInsert가 동작하지 않는 문제 해결하기 🤔 안녕하세요! 오늘은 TypeORM을 사용하면서 겪었던 재미있는 이슈 하나를 공유하려고 합니다.특히 비밀번호 해싱같은 작업을 할 때 자주 마주치는 문제인데요, 이 글을 통해 여러분의 소중한 시간을 아낄 수 있었으면 좋겠습니다! 😊🚨 문제 상황관리자 계정을 생성하는 API를 만들던 중이었습니다. 당연히 비밀번호는 해시화해서 저장해야 하니, Entity에 @BeforeInsert 데코레이터를 사용했죠.@Entity('admin_user')export class AdminUserEntity extends CommonEntity { @Column() userId: string; @Column() password: string; @BeforeInsert() async hashPassword() { .. 2024. 11. 20.
NestJS 설정 관리의 진화: nestjs-library-config 도입기 안녕하세요! 오늘은 NestJS 프로젝트에서 환경 변수 관리를 더 효율적으로 할 수 있게 해주는 nestjs-library-config를 소개해드리려고 합니다. 프로젝트를 진행하다 보면 .env 파일이 점점 커지면서 "이 설정값이 대체 어디서 쓰이는 거지?" 하는 고민이 생기시죠? 저도 같은 고민을 했었고, 이를 해결하기 위해 도입한 방법을 공유해보려고 합니다. 😊기존 설정 관리의 문제점# 점점 커져가는 .env 파일...DATABASE_HOST=localhostDATABASE_PORT=5432DATABASE_USERNAME=userDATABASE_PASSWORD=passwordREDIS_HOST=localhostREDIS_PORT=6379AWS_ACCESS_KEY=xxxxxAWS_SECRET_KEY=.. 2024. 11. 18.
NestJS에서 AWS S3 파일 업로드 깔끔하게 구현하기 🚀 안녕하세요! 오늘은 NestJS에서 AWS S3 파일 업로드를 구현하는 방법을 공유해보려고 해요.저는 우아한형제들의 nestjs-library-config를 사용해서 config 설정을 관리합니다 관련해서 다음에 정리하도록 할게요!기존 방식의 문제점 🤔보통 NestJS에서 S3 업로드를 구현할 때 multer-s3를 많이 사용하는데요, 이 방식에는 몇 가지 단점이 있습니다:S3Client 인스턴스를 여러 번 생성하게 됨코드가 복잡해짐테스트하기 어려움개선된 방식 소개 ✨1. 필요한 패키지 설치npm install @nestjs/platform-express @aws-sdk/client-s32. Module 설정import { Module } from '@nestjs/common';import { Conf.. 2024. 11. 15.
😎 NestJS class-transform 제대로 알고 쓰자! 안녕하세요! 오늘은 NestJS에서 자주 사용되는 class-transform 라이브러리에 대해 알아볼게요.API 개발하다 보면 데이터 변환이 필요한 경우가 정말 많은데, 이때 완전 꿀템인 class-transform을 소개합니다!🤔 class-transform이 왜 필요한가요?백엔드 개발을 하다 보면 이런 고민 많이 하시죠?"API 응답으로 받은 plain object를 클래스로 어떻게 변환하지?""비밀번호 같은 민감한 정보는 응답에서 제외하고 싶은데...""날짜 형식을 항상 변환해서 보내고 싶어!"class-transform을 사용하면 이런 고민들을 깔끔하게 해결할 수 있어요!📚 주요 변환 함수들 살펴보기1. plainToInstance가장 많이 사용되는 함수예요. plain object(JSON.. 2024. 11. 12.