[typescript] Nest.js에서 타입스크립트를 사용한 핫 리로딩 구현하기

Nest.js는 Node.js를 위한 프레임워크이며, TypeScript를 사용하여 구축할 수 있습니다. 코드 변경 시 자동으로 서버를 재시작하는 핫 리로딩 기능은 개발 시 생산성을 향상시키는 데 도움이 됩니다. 이번 글에서는 Nest.js 애플리케이션에서 타입스크립트를 사용한 핫 리로딩을 구현하는 방법에 대해 알아보겠습니다.

Nest.js 프로젝트 생성

먼저, Nest.js 프로젝트를 생성합니다. 아래 명령어를 사용하여 Nest CLI를 통해 새로운 Nest.js 애플리케이션을 만들 수 있습니다.

nest new project-name

핫 리로딩 설정

Nest.js 애플리케이션에서 핫 리로딩을 설정하려면 tsconfig.json 파일을 열고 아래와 같이 ts-node를 사용하여 핫 리로딩을 활성화해야 합니다.

{
  "compilerOptions": {
    ...
    "outDir": "./dist",
    "rootDir": "./src",
    "module": "commonjs",
    ...
  },
  "include": ["src/**/*.ts"]
}

또한, package.json 파일을 열고 아래와 같이 nodemon을 설치하고 start:dev 스크립트를 추가해야 합니다.

"scripts": {
  "start:dev": "nodemon",
  ...
},
"devDependencies": {
  "nodemon": "^2.0.13"
}

nodemon은 코드 변경 감지 시 서버를 자동으로 다시 시작하는 데 사용됩니다. 다음으로, main.ts 파일을 열고 아래와 같이 main 함수를 수정합니다.

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

위 코드는 다음과 같이 수정됩니다.

async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  await app.listen(3000);
}
bootstrap();

애플리케이션 실행

이제 아래 명령어를 사용하여 Nest.js 애플리케이션을 실행하면, 코드 변경 시 핫 리로딩이 자동으로 적용됩니다.

npm run start:dev

이제 Nest.js 애플리케이션에서 타입스크립트를 사용한 핫 리로딩을 구현하는 방법에 대해 알아보았습니다. 이를 통해 코드를 수정하고 서버를 재시작할 필요 없이 빠르게 개발을 진행할 수 있습니다.

참고 자료: Nest.js 공식문서