Nest.js의 `NestFactory`는 Nest 애플리케이션의 인스턴스를 생성하고 초기화하는 역할을 합니다. `NestFactory`는 애플리케이션의 부트스트래핑을 담당하며, 서버를 시작하기 위한 다양한 설정과 구성 요소들을 초기화합니다. 여기서는 `NestFactory`의 주요 역할과 사용 예시를 설명하겠습니다.
### 주요 역할
1. **애플리케이션 생성**:
- `NestFactory.create()` 메서드를 사용하여 Nest 애플리케이션의 인스턴스를 생성합니다. 이 메서드는 애플리케이션 모듈(AppModule)을 인수로 받아서 Nest 애플리케이션 인스턴스를 반환합니다.
2. **미들웨어 설정**:
- 생성된 애플리케이션 인스턴스에서 미들웨어를 설정할 수 있습니다. 예를 들어, 전역 미들웨어를 설정하거나 특정 경로에 대한 미들웨어를 설정할 수 있습니다.
3. **글로벌 설정**:
- 글로벌 파이프, 필터, 가드, 인터셉터 등을 설정할 수 있습니다. 이를 통해 애플리케이션 전체에서 사용할 설정을 한 번에 적용할 수 있습니다.
4. **서버 시작**:
- `app.listen(port)` 메서드를 호출하여 서버를 특정 포트에서 실행합니다. 이 메서드는 HTTP 서버를 시작하고, 요청을 수신 대기합니다.
### 사용 예시
```typescript
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
// 애플리케이션 인스턴스 생성
const app = await NestFactory.create(AppModule);
// 미들웨어 설정 (예: CORS 설정)
app.enableCors();
// 글로벌 설정 (예: 글로벌 파이프)
// app.useGlobalPipes(new ValidationPipe());
// 서버 시작
await app.listen(3000);
}
bootstrap();
```
여기서 bootstrap이란?
https://momomooo.tistory.com/260
### 역할 설명
- **애플리케이션 인스턴스 생성**:
`NestFactory.create(AppModule)`은 애플리케이션 모듈을 기반으로 Nest 애플리케이션 인스턴스를 생성합니다. 여기서 `AppModule`은 애플리케이션의 루트 모듈로, 다른 모든 모듈들을 포함합니다.
- **미들웨어 설정**:
`app.enableCors()`와 같은 메서드를 사용하여 애플리케이션에 미들웨어를 추가할 수 있습니다. 이 예에서는 CORS를 활성화하고 있습니다.
- **글로벌 설정**:
애플리케이션 전체에서 사용할 글로벌 설정을 추가할 수 있습니다. 예를 들어, `app.useGlobalPipes(new ValidationPipe())`를 사용하여 글로벌 파이프를 설정할 수 있습니다.
- **서버 시작**:
`await app.listen(3000)`은 애플리케이션이 3000번 포트에서 수신 대기하도록 합니다. 이는 서버를 시작하고 클라이언트의 요청을 받을 준비를 합니다.
### 참고 자료
- [NestJS 공식 문서](https://docs.nestjs.com/)
- [NestFactory API](https://docs.nestjs.com/first-steps)
'nest.js' 카테고리의 다른 글
constructor, @InjectRepository (0) | 2024.07.10 |
---|---|
Bootstrapping 이란 (0) | 2024.07.03 |
eslint, prettiet는 CLI설치시 사전 설치 + 터미널 (0) | 2024.06.29 |
main.ts (0) | 2024.06.29 |