출시·고도화 중
Framework · 2017년 공개
NestJS는 TypeScript로 모듈 · 의존성 주입 구조의 Node.js 서버를 만드는 프레임워크이며, 기본 HTTP 계층으로 가볍고 널리 쓰이는 Express를 사용합니다.
Express는 Node.js에서 가장 널리 쓰이는 웹 프레임워크로, 라우팅과 미들웨어라는 작은 핵심만 제공하고 나머지 구조는 개발자에게 맡깁니다. NestJS는 2017년에 공개된 서버 프레임워크로, TypeScript와 데코레이터를 바탕으로 모듈, 컨트롤러, 프로바이더, 의존성 주입 같은 구조를 제공합니다. Nest는 HTTP 처리를 플랫폼 어댑터에 맡기며 기본값이 Express이므로, Nest 애플리케이션은 내부적으로 Express 서버로 동작하고 Express 미들웨어도 그대로 쓸 수 있습니다.
Express는 작은 API 서버나 프로토타입, 구조를 직접 설계하고 싶은 프로젝트에 잘 맞습니다. NestJS는 여러 사람이 오래 유지보수하는 REST · GraphQL API, 마이크로서비스, 실시간 서버처럼 규모가 커질수록 장점이 드러납니다. 파이프로 입력을 검증하고 가드로 권한을 검사하며, Jest 기반 테스트 도구와 TypeORM · Prisma 같은 ORM과도 자연스럽게 연결됩니다.
Node.js를 설치한 뒤 Express는 npm install express와 몇 줄의 코드로 바로 시작할 수 있습니다. NestJS는 Nest CLI로 프로젝트를 만들고 공식 문서의 First steps부터 차례로 읽는 것을 권합니다. Express의 요청 · 응답과 미들웨어 개념을 먼저 익혀 두면 Nest가 그 위에 무엇을 더하는지 이해하기 쉽습니다.
기능을 모듈로 나누고, 서비스 같은 프로바이더를 생성자로 주입받아 결합을 줄이고 테스트를 쉽게 만듭니다.
@Controller, @Get, @Body 같은 데코레이터로 경로와 입력을 선언하고, 파이프 · 가드 · 인터셉터로 공통 처리를 붙입니다.
기본 HTTP 플랫폼이 Express라서 그 생태계의 미들웨어를 그대로 쓸 수 있고, 필요하면 Fastify로 바꿀 수 있습니다.
Express만 쓸 때는 라우팅과 미들웨어라는 작은 핵심으로 원하는 구조의 서버를 빠르게 만들 수 있습니다.
NestJS와 Express 모두 Node.js에서 동작합니다. nodejs.org에서 LTS 버전을 설치하고 node와 npm의 버전이 표시되는지 확인합니다.
node --version && npm --version프로젝트 생성과 코드 생성을 맡는 공식 명령줄 도구를 전역으로 설치합니다. Express만 쓸 때는 이 단계 대신 프로젝트 폴더에서 npm install express를 실행합니다.
npm i -g @nestjs/cli새 프로젝트를 만들고 감시 모드로 개발 서버를 실행합니다. 생성 중에 패키지 관리자를 묻고, 완료되면 http://localhost:3000 에서 응답을 확인할 수 있습니다.
nest new hello-nest && cd hello-nest && npm run start:devnest new로 만든 프로젝트에는 이 컨트롤러가 들어 있습니다. @Controller()가 클래스를 컨트롤러로 등록하고, @Get()이 루트 경로의 GET 요청을 getHello 메서드에 연결합니다. AppService는 생성자를 통해 주입되며, src/main.ts가 AppModule로 애플리케이션을 만들어 3000번 포트에서 요청을 받습니다.
src/app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
npm run start:dev설치부터 NestJS · Express 의 핵심 개념까지, 여섯 장으로 차근차근 따라 합니다.
NestJS · Express 에 관해 묻고, 경험을 나누고, 의견을 주고받는 곳입니다.
아직 토론이 없습니다. 첫 이야기를 시작해 보세요.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.