자바스크립트 기반 NestJS 웹 애플리케이션의 프론트엔드 라우팅 방법

NestJS는 Node.js 기반의 프레임워크이며, 백엔드 개발에 주로 사용됩니다. 그러나 NestJS를 사용하여 개발한 웹 애플리케이션의 프론트엔드 부분에서도 라우팅을 구현해야 할 경우가 있습니다. 이를 위해 NestJS에서는 자바스크립트 기반 프론트엔드 프레임워크인 Angular, React, Vue.js와 같은 라이브러리를 사용할 수 있습니다. 이번 블로그에서는 NestJS 웹 애플리케이션에서 Angular를 이용한 프론트엔드 라우팅 방법을 알아보겠습니다.

Angular에서 NestJS 프론트엔드 라우팅 설정하기

  1. 먼저, NestJS 애플리케이션과 Angular 프론트엔드 애플리케이션이 각각 독립적으로 구성되어 있다고 가정하겠습니다.

  2. NestJS 애플리케이션에서 Angular로 프론트엔드를 개발하기 위해 Angular CLI를 이용하여 새로운 Angular 프로젝트를 생성합니다. 다음 명령어를 사용합니다.

    ng new frontend-app
    
  3. Angular 프로젝트를 만든 후, 프론트엔드 애플리케이션을 개발하며 필요한 모든 라우팅을 설정합니다. 이때, Angular의 라우터를 사용하여 필요한 URL 매핑 및 라우팅 로직을 작성합니다.

  4. NestJS 애플리케이션에서 Angular 프론트엔드 애플리케이션을 호스팅하기 위해 Express 서버를 사용할 수 있습니다. 먼저, Express 패키지를 설치합니다. 다음 명령어를 사용합니다.

    npm install express
    
  5. NestJS 애플리케이션의 main.ts 파일에서 Express 서버를 설정합니다. 다음 코드를 추가합니다.

    import * as express from 'express';
    import { NestFactory } from '@nestjs/core';
    import { AppModule } from './app.module';
    
    async function bootstrap() {
        const app = await NestFactory.create(AppModule);
        const expressApp = express();
       
        // Angular 프론트엔드 애플리케이션을 정적 파일로 호스팅
        expressApp.use(express.static('frontend-app/dist/frontend-app'));
       
        // 모든 요청에 대해 index.html 파일을 반환
        expressApp.get('*', (req, res) => {
            res.sendFile('index.html', { root: 'frontend-app/dist/frontend-app' });
        });
    
        app.use(expressApp);
    
        await app.listen(3000);
    }
    bootstrap();
    
  6. 이제 NestJS 애플리케이션과 Angular 프론트엔드 애플리케이션이 함께 실행됩니다. NestJS 애플리케이션은 백엔드 API를 제공하며, Angular 프론트엔드 애플리케이션은 Angular 라우터를 통해 프론트엔드 라우팅을 처리합니다.

이제 NestJS 웹 애플리케이션에서 자바스크립트 기반 프론트엔드 라우팅을 구현하는 방법을 알아보았습니다. Angular를 사용한 예제를 설명했지만, React, Vue.js 등의 프론트엔드 라이브러리를 사용하는 경우에도 비슷한 방식으로 라우팅을 설정할 수 있습니다.

#NestJS #Angular