본문 바로가기
nest.js

NestFactory의 역할

by momomoo 2024. 7. 3.

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