Nest.js는 현대적인 서버 측 애플리케이션을 구축하기 위한 강력한 프레임워크로, 개발자가 효율적이고 구조화된 코드를 작성할 수 있도록 돕는 다양한 기능을 제공합니다. 이 블로그 포스트에서는 Nest.js 프로젝트의 기본적인 세팅 방법과 이를 통해 애플리케이션의 환경을 어떻게 조정할 수 있는지에 대해 자세히 알아보겠습니다.
1. 기본 설정
프로젝트를 시작하기 전에, 먼저 필요한 도구와 라이브러리를 설치해야 합니다. Nest CLI를 사용하면 이러한 과정을 간소화할 수 있으며, 이를 통해 개발자는 보다 빠르고 효율적으로 프로젝트를 시작할 수 있습니다.
Nest CLI 설치
Nest CLI를 설치하기 위해 아래의 명령어를 실행합니다.
npm install -g @nestjs/cli
새로운 프로젝트 생성
새로운 Nest.js 프로젝트를 생성하기 위해 다음 명령어를 사용합니다.
nest new project-name
위 명령어를 실행하면 새로운 Nest.js 프로젝트가 생성되며, 필수 패키지가 자동으로 설치됩니다. 이 과정에서 프로젝트의 기본 구조가 설정되고, 개발자가 즉시 작업을 시작할 수 있는 환경이 마련됩니다.
2. 폴더 구조 이해
Nest.js는 모듈 기반 아키텍처를 따르므로, 각 기능별로 디렉토리가 나누어져 있습니다. 일반적으로 다음과 같은 주요 디렉토리가 포함됩니다:
src
: 소스 코드가 위치하는 곳으로, 애플리케이션의 모든 비즈니스 로직이 이곳에 포함됩니다.app.module.ts
: 애플리케이션의 루트 모듈로, 모든 모듈과 서비스를 등록하는 역할을 합니다.main.ts
: 애플리케이션이 시작되는 진입점 파일로, 서버의 초기화 및 설정을 담당합니다.
이러한 구조는 유지 보수성과 확장성을 높이는 데 큰 도움을 주며, 개발자가 프로젝트를 이해하고 관리하는 데 필요한 명확한 경로를 제공합니다.
3. 환경 변수 관리
환경 변수를 통해 다양한 환경(개발, 테스트, 프로덕션 등)에서 서로 다른 값을 사용할 수 있습니다. 이를 위해 .env
파일을 사용할 수 있으며, dotenv
패키지를 활용하여 쉽게 관리할 수 있습니다. 환경 변수를 적절히 설정하면 애플리케이션의 유연성을 높이고, 다양한 환경에서의 배포를 용이하게 할 수 있습니다.
패키지 설치
환경 변수를 관리하기 위해 dotenv
패키지를 설치합니다.
npm install dotenv
.env
파일 생성 예시
.env
파일을 생성하고 다음과 같이 환경 변수를 정의합니다.
DATABASE_HOST=localhost
DATABASE_PORT=5432
JWT_SECRET=mysecretkey
환경 변수 로드하기 (main.ts
)
main.ts
파일에서 환경 변수를 로드하는 방법은 다음과 같습니다.
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as dotenv from 'dotenv';
async function bootstrap() {
dotenv.config();
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
위와 같이 구성하면 .env
파일에 정의된 변수를 코드 내에서 사용할 수 있게 되어, 개발자는 환경에 따라 유동적으로 설정을 변경할 수 있습니다.
4. 전역 파라미터 및 기타 기본 설정
애플리케이션의 전역 파라미터나 미들웨어 등을 추가하는 것도 중요합니다. 예를 들어 로깅이나 에러 핸들링 같은 공통 기능들을 전역으로 적용하고 싶다면 아래와 같이 할 수 있습니다:
import { MiddlewareConsumer, Module, RequestMethod } from '@nestjs/common';
import { LoggerMiddleware } from './logger.middleware';
@Module({
// ...모듈 관련 메타 데이터...
})
export class AppModule {
constructor(private readonly app: Application) {}
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes({ path: '*', method: RequestMethod.ALL });
}
}
이렇게 하면 모든 요청에 대해 로깅 미들웨어가 작동하게 되어, 애플리케이션의 모든 활동을 기록하고 모니터링할 수 있는 기반이 마련됩니다.
결론
기본 설정 및 환경 설정은 Nest.js 프로젝트의 기초를 다지는 단계로서 매우 중요합니다. 올바른 폴더 구조와 환경 변수 관리는 개발자의 생산성을 높이고 유지 보수성을 향상시키는 데 큰 도움이 됩니다. 위에서 설명한 방법들을 참고하여 여러분만의 효율적인 Nest.js 프로젝트를 구축해 보세요! 이를 통해 더욱 견고하고 확장 가능한 애플리케이션을 개발할 수 있을 것입니다.
'프로그래밍 > Nest.js' 카테고리의 다른 글
Nest.js에서의 컨트롤러: 웹 애플리케이션의 중추적 역할 (0) | 2025.03.19 |
---|---|
인증 및 인가: JWT 및 OAuth2 설정으로 보안 강화하기 (0) | 2025.03.19 |
미들웨어의 중요성과 Nest.js에서의 활용 (0) | 2025.03.18 |
Nest.js에서의 인증 및 권한 가드: 보안의 기초 (0) | 2025.03.18 |
Nest.js의 아키텍처: 파이프의 중요성과 활용 (0) | 2025.03.18 |