본문 바로가기
nest.js

Bootstrapping 이란

by momomoo 2024. 7. 3.

부트스트래핑(Bootstrapping)은 소프트웨어 개발 및 시스템 시작 과정에서 초기화를 의미합니다. 이 용어는 컴퓨터 시스템이 전원을 켜고 운영 체제를 로드하는 과정에서 유래되었지만, 일반적으로 애플리케이션이 시작되는 초기 단계의 설정과 준비를 포함합니다.

### 부트스트래핑의 개념

부트스트래핑은 시스템이나 애플리케이션이 스스로 초기화하고 실행할 준비를 하는 과정입니다. 초기 설정, 구성, 필요한 리소스 로드 등을 포함하며, 시스템이 정상적으로 운영되기 위한 기본적인 준비 작업이 수행됩니다.

### Nest.js에서의 부트스트래핑

Nest.js 애플리케이션에서는 부트스트래핑 과정이 `NestFactory`를 통해 수행됩니다. 이는 애플리케이션 모듈을 로드하고 서버를 시작하며, 필요한 설정과 미들웨어를 구성하는 과정을 포함합니다.

### 예시

아래는 Nest.js 애플리케이션의 부트스트래핑 과정의 예시입니다:

```typescript
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  // Nest 애플리케이션 인스턴스 생성
  const app = await NestFactory.create(AppModule);
  
  // CORS 활성화
  app.enableCors();

  // 서버 시작
  await app.listen(3000);
}
bootstrap();
```



### 부트스트래핑 과정 설명

1. **Nest 애플리케이션 인스턴스 생성**: `NestFactory.create(AppModule)`을 호출하여 애플리케이션의 인스턴스를 생성합니다. 이 과정에서 루트 모듈(AppModule)이 로드되고 애플리케이션의 기본 구조가 설정됩니다.

2. **미들웨어 및 설정 구성**: 생성된 애플리케이션 인스턴스에서 필요한 미들웨어를 설정하고, 글로벌 파이프, 가드, 필터 등을 구성할 수 있습니다. 예시에서는 CORS를 활성화하고 있습니다.

3. **서버 시작**: `app.listen(3000)`을 호출하여 애플리케이션 서버가 3000번 포트에서 요청을 수신 대기하도록 설정합니다. 이는 서버가 클라이언트 요청을 받을 준비를 마치는 단계입니다.

### 일반적인 부트스트래핑의 활용

- **초기화**: 시스템이나 애플리케이션의 초기 설정을 수행하여 정상 작동을 위한 기본 환경을 구축합니다.
- **리소스 로드**: 데이터베이스 연결, 설정 파일 로드, 외부 서비스와의 연결 등을 초기화합니다.
- **구성 설정**: 애플리케이션의 동작에 필요한 설정과 환경 변수를 설정합니다.

부트스트래핑은 시스템이 정상적으로 작동하기 위한 필수적인 단계로, 개발자들이 애플리케이션의 초기 상태를 정의하고 구성하는 중요한 과정입니다.

### 참고 자료

- [NestJS 공식 문서](https://docs.nestjs.com/)
- [Wikipedia - Bootstrapping](https://en.wikipedia.org/wiki/Bootstrapping)

'nest.js' 카테고리의 다른 글

constructor, @InjectRepository  (0) 2024.07.10
NestFactory의 역할  (0) 2024.07.03
eslint, prettiet는 CLI설치시 사전 설치 + 터미널  (0) 2024.06.29
main.ts  (0) 2024.06.29