Nest.js 소개
- Node.js 로 만듦
- 차세대 Typescript 를 이용
- HTTP 서버 프레임워크인 Express 를 사용, Fastify 로도 사용 가능
- 공식 문서에서는 모든 노드 HTTP 프레임워크에서 작동한다고 한다.
- 기본은
@nestjs/platform-express
- 아키텍처 설계 문제를 해결하기 위해 나옴
- 서버 아키텍처 때문에 테스트하기 쉽고, 디커플링 잘되고, 유지보수 편함
- 결국 Express + 아키텍처
초기 파일 구성
아래 디렉토리 구성은 각 모듈을 전용 디렉토리에 저장하는 관례를 따르기 위해 초기에 잡힌다.
src
디렉토리 내부main.ts
: 엔트리 파일 역할. 코어 함수인NestFactory
를 사용하여 Nest Application Instance 를 만듦app.service.ts
: 하나의 메서드가 있는 기본 서비스app.module.ts
: 애플리케이션의 루트 모듈, 의존성을 관리하는 파일.app.controller.ts
: 하나의 라우트가 들어있는 기본 컨트롤러app.controller.spec.ts
: 컨트롤러에 대한 유닛 테스트들
test
디렉토리 내부jest-2e2.json
app.e2e-spec.ts
main.ts 살펴보기
create()
메서드는INestApplication
인터페이스를 충족하는 애플리케이션 오브젝트를 만든다.- 앱을 만들다 오류가 발생하면 앱은 코드 1과 함께 종료된다. 오류를 발생시키고 싶으면
abortOnError
옵션을 활성화해야 한다.NestFactory.create(AppModule, { abortOnError: false })
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
앱 시작 방법
- 기본적으론
npm run start
명령어로 실행할 수 있다. - 개발 프로세스 속도를 높이려면
npm run start -- -b swc
명령어로 실행하면 SWC builder 를 사용하여 더 빨라진다고 한다.
린팅과 포맷팅 (Linting and Formatting)
# Lint and autofix with eslint
$ npm run lint
# Format with prettier
$ npm run format
공식문서
반응형
'프레임워크 > Nest.js' 카테고리의 다른 글
Nest.js 인터셉터 (Interceptor) 란? (0) | 2024.02.07 |
---|---|
Nest.js 의 Class Validator 란? (0) | 2024.02.02 |
Nest.js 의 가드(Guard) 란? (0) | 2024.02.02 |
Nest.js 의 파이프(Pipes) 란? (0) | 2024.01.13 |
Nest.js Request Lifecycle 과 기본 아키텍처 (0) | 2024.01.06 |