├── config/
│   ├── configuration.ts           # 환경 설정 값 정의
│   ├── env.validation.ts          # 환경 변수 검증
│   └── config.module.ts           # 설정 모듈
yarn add class-transformer @nestjs/config class-validator

주요 특징과 용도:

  1. configuration.ts
    • 환경 변수를 타입화된 설정 객체로 변환
    • 네임스페이스별 설정 분리
    • 기본값 설정
  2. env.validation.ts
    • 환경 변수 유효성 검증
    • 타입 변환
    • 필수 값 확인
  3. config.module.ts
    • 설정 모듈 초기화
    • 전역 설정 제공
    • 환경별 설정 파일 로드

사용예시 :

// 다른 서비스에서 설정 사용
@Injectable()
export class AuthService {
  constructor(private readonly configService: ConfigService) {}

  async someMethod() {
    // JWT 설정 가져오기
    const jwtSecret = this.configService.get<string>('auth.jwt.secret');
    const accessExpiration = this.configService.get<string>('auth.jwt.accessExpiration');

    // OAuth 설정 가져오기
    const kakaoConfig = this.configService.get('auth.oauth.kakao');

    // 데이터베이스 설정 가져오기
    const dbUrl = this.configService.get<string>('database.url');
  }
}