728x90

nest를 빠르게 이해하기 위해 CRUD를 만들어보도록 하겠다.

 

  • Language

TypeScript를 사용하지만, Node.js도 사용이 가능하다. 만약 Javascript를 사용하고 싶다면 Babel 컴파일러를 사용하면 된다.

 

  • 요구사항

Nest로 개발하기 위해서는 Node.js 20버전 이상으로 설치가 되어 있어야 개발이 가능하다.

 

  • 설정

npm 전역에 nest를 설치하고, nest로 프로젝트를 만들면 된다.

npm i -g @nestjs/cli
nest new {project-name}

 

이렇게 생성을 하면 다음과 같이 파일들이 생기게 될 것이다.

 

이거에 대한 간략한 설명들을 해보자면

app.controller.ts 싱글 라우트를 가지고 있는 기본 컨트롤러
app.controller.spec.ts 컨트롤러의 유닛 테스트
app.module.ts 애플리케이션의 가장 기본 모듈
app.service.ts 하나의 메서드를 가지고 있는 기본 서비스
main.ts Nest application을 생성해주는 엔트리 파일

 

main.ts는 다음과 같이 작성되어 있다.

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

 

Nest 인스턴스를 만들기 위해서는 저 NestFactory.create를 사용해야 한다.

 

NestFactory.create()는 다음과 같이 INestApplication 인터페이스를 반환한다. 이 인터페이스는 여러가지 메서드들을 제공하며, 이 main.ts에서는 그냥 단순히 Http Listener를 만들어주는 것이다.

 

이제 이 nest의 개발 방법에 따라 개발자가 기능을 확장해나가면 된다.

 

  • 플렛폼

Nest는 플랫폼에 종속되지 않는 것에 목적을 두었다. 플랫폼에서 독립적이라면 비즈니스 로직을 다른 타입의 애플리케이션 간에 재사용 할 수 있으니 말이다. 기술적으로 Nest는 Node의 웹 프레임워크에서나 사용가능하다. 여기 2개의 바로 사용가능한 플랫폼이 존재한다. 바로 express와 fastify다.

platform-express express는 가장 잘 알려진 경량화 node 웹 프레임워크다. 실무에서 이미 검증된 프레임워크로 커뮤니티에서 많은 리소스들을 재공한다. @nestjs/platform-express는 기본적으로 platform-express를 사용하며, 이 플랫폼을 사용하기 위해서는 별도의 조치는 필요없다.
platform-fastify Fastify는 높은 성능과 적은 오버헤드에 초점을 둔 프레임워크이다.

 

어떤 프레임워크를 사용하더라도 이렇게 상속받아서 nest를 동작할 수 있다.

 

  • 애플리케이션 실행

설치가 완료되었다면, 아래와 같은 명령어를 입력하여 들어오는 Http 요청을 받을 수 있다.

npm run start

 

그러면 이렇게 다음과 같은 로그가 나온다.

 

그리고 main.ts에 명시되어있는 포트에 요청하면

이렇게 응답이 오는 것을 볼 수 있다.

 

만약 개발 과정 중에 있다면

npm run start:dev

이 명령어를 통해 자동으로 변경되는 파일을 재컴파일 해서 서버를 재실행 할 수 있다.

 

 

'Node > Nest 공식문서' 카테고리의 다른 글

Modules  (0) 2025.08.23
Providers  (0) 2025.08.21
Controllers  (0) 2025.08.20
Introduction  (4) 2025.08.18

+ Recent posts