import {Logger} from "@nestjs/common";
import {NestFactory} from "@nestjs/core";
import {AppModule} from './app.module';
import * as config from 'config';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const serverConfig = config.get('server')
const port = serverConfig.port;
await app.listen(port);
Logger.log(`application running on port ${port}`);
}
bootstrap();
이 코드는 NestJS 프레임워크를 사용하여 Node.js 애플리케이션을 시작하는 방법을 보여줍니다. NestJS는 백엔드 애플리케이션을 구축하기 위한 모듈러 구조를 제공하는 Node.js 프레임워크입니다. 각 부분의 역할을 하나씩 살펴보겠습니다.
- Imports:
- import { Logger } from '@nestjs/common';: Logger 클래스를 NestJS의 common 패키지에서 가져옵니다. 이 클래스는 애플리케이션 로깅을 담당합니다.
- import { NestFactory } from '@nestjs/core';: NestFactory를 사용하여 NestJS 애플리케이션의 인스턴스를 생성합니다. 이것은 NestJS 애플리케이션의 진입점을 만드는데 사용됩니다.
- import { AppModule } from './app.module';: 애플리케이션의 루트 모듈인 AppModule을 가져옵니다. 이 모듈은 애플리케이션의 다른 모듈들을 구성합니다.
- import * as config from 'config';: config 패키지를 사용하여 구성 설정을 로드합니다. 이 구문은 config 모듈의 모든 내보낸 멤버를 config 객체로 가져옵니다.
- config 모듈: import * as config from 'config'; 이 부분은 Node.js에서 환경 설정 파일을 쉽게 관리할 수 있게 해주는 외부 config 라이브러리를 사용합니다. 이 라이브러리를 사용하면 개발, 테스트, 프로덕션 등 다양한 환경에 따라 다른 설정을 로드할 수 있습니다. config 폴더 내에 JSON, YAML 또는 JS 파일로 설정을 정의하고, config 라이브러리는 실행 환경에 맞는 설정 파일을 자동으로 선택합니다.
- bootstrap 함수: async function bootstrap()는 비동기 함수로, 애플리케이션을 시작하는 주요 로직을 포함합니다.
- const app = await NestFactory.create(AppModule);: NestFactory.create() 메소드를 사용해 AppModule을 기반으로 NestJS 애플리케이션 인스턴스를 생성합니다.
- const serverConfig = config.get('server');: config 객체에서 server 설정을 가져옵니다. 이 설정은 보통 포트 번호와 같은 서버 설정을 포함합니다.
- const port = serverConfig.port;: 설정에서 포트 번호를 추출합니다.
- await app.listen(port);: 추출한 포트 번호에서 애플리케이션을 실행합니다. 이것은 서버가 클라이언트 요청을 수신할 준비가 되었다는 것을 의미합니다.
- Logger.log(Application running on port ${port});: 로깅을 사용하여 서버가 실행 중임을 로그로 기록합니다.
이 코드는 기본적으로 NestJS 프레임워크를 사용하여 서버를 설정하고 시작하는 방법을 보여줍니다. config 라이브러리를 사용하면 설정 관리가 더 유연해지고 환경별로 쉽게 구성할 수 있습니다.
댓글 영역