환경변수 분리하기
환경변수는 보안상 중요한 정보(예: 데이터베이스 비밀번호)를 포함할 수 있기 때문에, 애플리케이션 코드와 분리하여 관리하는 것이 좋습니다. 이를 통해 코드를 외부에 노출하지 않고 보안성을 높일 수 있습니다
1. @nestjs/config 패키지 설치하기
@nestjs/config는 Nest.js에서 환경 변수를 쉽게 처리할 수 있도록 도와주는 패키지입니다. 이 패키지를 사용하면 .env 파일 이외에도, CLI 인자, 환경변수, JSON 파일, YAML 파일, JS 파일 등 다양한 방법으로 설정값을 제공할 수 있습니다.
npm i @nestjs/config
2. env 파일작성하기
# Database
DB_HOST='localhost'
DB_PORT=3306
DB_USERNAME='root'
DB_PASSWORD='1234'
DB_NAME='test'
DB_SYNC=true
DB_LOG=true
3. ConfigModule 설정하기 & 환경 변수 사용하기
패키지 설치와 .env 파일작성을 완료하였다면 appModule에서 ConfigModule을 불러올 수 있습니다.
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { BooksModule } from './books/books.module';
import { BookEntity } from './books/entities/book.entity';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot(),
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_TYPE,
port: Number(process.env.DB_PORT),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [BookEntity],
synchronize: Boolean(process.env.DB_SYNC),
}),
BooksModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule { }
'nest js' 카테고리의 다른 글
NestJs JWT 토큰 생성 / 토큰 인증(Guard) (2) | 2023.04.14 |
---|---|
NestJs 회원가입(비밀번호 암호화), 로그인 구현하기 (3) | 2023.04.14 |
NestJs 데이터베이스 연동하기 (mysql, typeorm) (0) | 2023.04.12 |
NestJs 프로젝트에서 Swagger 사용하기 (0) | 2023.04.07 |
NestJs Guard에 대해 알아보자 (0) | 2023.04.07 |