본문으로 바로가기

🚀 [NestJS] API 초기 설정 : gymmate-api

category 사이드프로젝트 2025. 5. 24. 13:30

🔍 NestJS란?

NestJS는 Node.js 기반의 웹 API 프레임워크로,
Express.js를 기본 프레임워크로 사용하며 Fastify와도 호환됩니다.

  • ✨ 주요 특징
    • 자바스크립트와 타입스크립트를 완벽 지원
    • 객체지향 프로그래밍(OOP), 함수형 프로그래밍(FP), 함수 반응형 프로그래밍(FRP)을 결합
    • 유지보수성과 확장성이 뛰어난 코드 작성 가능

🛠️ NestJS 설치 방법

1️⃣ Node.js 설치

안정적인 LTS 버전 설치를 권장합니다.
Node.js 공식 다운로드 페이지

Node.js®는 Chrome의 V8 자바스크립트 엔진 기반의 자바스크립트 런타임입니다.


2️⃣ NestJS CLI 설치 (yarn 사용 기준)

npm install -g yarn          # npm이 없으면 먼저 설치
yarn global add @nestjs/cli  # NestJS CLI 전역 설치

3️⃣ 설치 확인

nest --version

4️⃣ 프로젝트 생성

nest new gymmate-api

5️⃣ 프로젝트 실행

yarn run start

6️⃣ CORS 설정 (웹 연동)

# CORS 허용, 환경 변수 처리 등 기본적으로 많이 씀
npm install @nestjs/config
npm install cors
// src/main.ts
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors(); // 이 줄 추가
  await app.listen(3001); // 3000번 포트 -> 3001번 포트로 변경 (웹과 포트 충돌 방지)
}
bootstrap();

7️⃣ AppModule 설정 추가

// src/app.module.ts

import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [
    ConfigModule.forRoot({
      envFilePath: '.env', // 루트 기준으로 작성
      isGlobal: true,      // 어디서든 사용할 수 있게 전역 등록
    }),
  ],
})
export class AppModule {}

8️⃣ 테스트 API 작성

// src/test/test.controller.ts

import { Controller, Get } from '@nestjs/common';

@Controller('api/test')
export class TestController {
  @Get()
  getTest() {
    return { message: 'Hello from NestJS 🎉'};
  }
}

🔟 COMPLETE