부트스트래핑(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 |