[typescript] Nest.js와 함께 사용하는 타입스크립트 기반 백엔드 프레임워크 예시
Nest.js는 TypeScript로 구축된 서버측 애플리케이션을 위한 프레임워크로, Node.js 기반 프로젝트에서 사용하기에 이상적입니다. 이 때문에 Nest.js와 TypeScript를 함께 사용하여 타입 안전성과 모듈화를 향상시킬 수 있습니다.
Nest.js 및 TypeScript 설치
Nest.js를 사용하기 위해서는 우선 Node.js와 npm이 필요합니다. 프로젝트 폴더를 생성한 후 다음 명령어를 실행하여 Nest.js CLI를 이용하여 Nest.js 프로젝트를 생성합니다.
npm install -g @nestjs/cli
nest new project-name
프로젝트가 생성된 후에는 TypeScript를 사용하기 위해 tsconfig.json
파일을 생성하고, 필요한 의존성 패키지들을 설치합니다.
Nest.js 컨트롤러 및 서비스 생성
Nest.js에서 컨트롤러는 라우팅 로직을 포함하고, 서비스는 실제 기능을 담당합니다. 다음은 ‘cats’ 리소스를 다루는 예시 코드입니다.
컨트롤러 생성
cats.controller.ts
:
import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';
@Controller('cats')
export class CatsController {
constructor(private catsService: CatsService) {}
@Get()
findAll(): string[] {
return this.catsService.findAll();
}
}
서비스 생성
cats.service.ts
:
import { Injectable } from '@nestjs/common';
@Injectable()
export class CatsService {
private cats: string[] = ['Cat1', 'Cat2'];
findAll(): string[] {
return this.cats;
}
}
Nest.js 애플리케이션 모듈 및 라우팅
Nest.js 애플리케이션은 모듈로 구성되며, 각 모듈은 라우팅 및 서비스의 집합체입니다. 이를 통해 애플리케이션을 모듈별로 분리하고, 재사용 가능한 코드를 작성할 수 있습니다.
애플리케이션 모듈
app.module.ts
:
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';
@Module({
imports: [CatsModule],
})
export class AppModule {}
라우팅 정의
cats.module.ts
:
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}
위의 예시에서 CatsModule
은 CatsController
와 CatsService
를 포함하며, AppModule
은 CatsModule
을 import하여 사용합니다.
Nest.js와 TypeScript를 함께 사용하면 타입 안전성과 코드의 의도를 명확하게 표현할 수 있는 이점을 얻을 수 있습니다.