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 |