목록프로그래밍👩🏻💻/Node.js (3)
suyeonme
ConfigService를 사용하지 않는 경우 일반적으로 환경변수에 접근하는 경우. process.env로 접근하게 됩니다. 이렇게 접근하는 경우 환경변수를 사용하는데는 문제가 없지만 어떤 환경변수가 사용가능한지, 환경변수의 자료형은 어떤값인지등 확인이 어렵습니다. process.env.JWT_SECRET_KEY ConfigService를 사용해서 환경 변수를 관리해보자! ConfigService란? ConfigService는 환경 변수와 애플리케이션 설정 값을 런타임에 접근하고 관리하기 위한 서비스입니다. 이 서비스를 사용하면, .env 파일이나 다른 구성 소스에서 정의된 환경 설정 값을 안전하게 읽어올 수 있습니다. ConfigModule.forRoot() 또는 ConfigModule.forFeatu..
서론 진행중인 토이프로젝트에서 사용자가 회원가입을 한 경우, 가입 축하 이메일을 보내는 기능을 구현하였습니다. 여러 종류의 라이브러리가 있지만 nodemailer가 대체로 많이 사용되기도 하고 사용법이 매우 간단해서 nodemailer를 이용해서 적용하였습니다. 자세한 내용은 이 문서에서 확인하실 수 있습니다. nodemailer 라이브러리 설치 pnpm install --save @nestjs-modules/mailer nodemailer MailModule 생성 및 nodemailer 설정 패스워드등의 민감한 정보는 환경변수로 저장해야합니다. ConfigService를 이용해서 환경변수를 사용하였습니다. 제 경우 Gmail을 통해서 이메일을 보내기 위해서 host는 gmail로 작성했습니다. MAI..
일관된 형식의 HTTP 응답을 작성해야 하는 이유 HTTP 응답의 형태가 일관적이면 클라이언트에서 데이터를 처리하기가 훨씬 수월합니다. 상태 코드 또는 응답 메세지등에 따라서 공통 로직을 작성할 수 있습니다. 예를 들어, 데이터가 없는 경우를 생각해봅시다. 데이터가 없는 경우 null, undefined, 빈 배열등으로 표현할 수 있지만, 일관되게 { data: [] }와 같은 형태로 전달한다면 프론트엔드에서 데이터가 빈 경우, "데이터 없음"과 같은 처리를 할 수 있습니다. Interceptor란? Interceptor는 Nest.js에서 HTTP 요청 및 응답의 처리 흐름에 개입하여 작업을 수행하는 클래스입니다. 주로 로깅, 데이터 변환, 예외 처리, 헤더 추가 등과 같은 작업에 사용됩니다. Nes..