중간에 어떤 package manager를 사용할 것인지 물어본다. 필자는 yarn을 선택하였다.
? Which package manager would you ❤️ to use? yarn
✔ Installation in progress... ☕
🚀 Successfully created project bcheck-auth-nest
👉 Get started with the following commands:
$ cd [project name]
$ yarn run start
Thanks for installing Nest 🙏
Please consider donating to our open collective
to help us maintain this package.
🍷 Donate: https://opencollective.com/nest
위와 같이 뜨면 프로젝트 생성이 완료된 것이다. 생성된 프로젝트를 개발 툴로 열어 구조를 살펴보자.
참고로 글쓴이는 IntelliJ를 이용한다.
[Project Name] - [src] 아래에 app.으로 시작하는 파일들과 main.ts 파일이 생성되었음을 확인할 수 있다.
각각의 역할은 아래와 같다.
app.controller.spec.ts
컨트롤러 단위 테스트용
app.controller.ts
기본 컨트롤러
app.module.ts
application의 root module
app.service.ts
단일 메서드를 사용하는 기본 서비스
main.ts
NestFactory를 사용하여 Nest application 인스턴스를 작성하는 엔트리 파일
3. main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
Nest application은 인스턴스를 생성하기 위해 NestFactory를 사용한다. NestFactory는 application 응용프로그램 인스턴스를 만들 수 있는 정적 메서드를 제공하며, careate() 메서드는 INestApplication (인터페이스 응용프로그램 객체)을 반환한다.
Spring 개발 유경험자로 Node를 처음 접하며 Study하는 내용을 기록해보고자 한다.
1. NestJS는?
NestJS는 Node.js 기반의 웹 API 프레임워크이다. 들어만 본 Express를 사용하고, Node.js의 자체 특성인 사용하기 쉽고, 확장성이 뛰어나다. 이로 인해 품질이 일정치 않고, 적합한 라이브러리를 찾기 위해 사용자의 수고가 필요하다는 단점이 있는데 이를 보완하는 것이 NestJS이다.
Angular의 영향을 많이 받은 NestJS는 DI(Dependency Injection, 의존성 주입)이라는 객체지향 개념을 도입한 부분에서 Spring과 공통점이 있다. 소스를 보아도 스프링에서 Anotation이라고 불리는 '@'가 보인다.