반응형
첫번째 단계
이 문서에 관해
- 이 문서에서 Nest의 핵심 기본사항에 대해 알아보자.
- 기본 CRUD 애플리케이션을 만든다.
언어
- Nest.js는 예제를 기본적으로 TypeScript로 사용하며, 지원한다.
- 하지만 Nest.js는 순수 자바스크립트도 지원한다.
- 예제를 TypeScript로 지원하지만 코드 스니펫을 바닐라 자바스크립트로 전환할 수 있다.
VS Code의 경우 하단의 빨간색 TypeScript 부분을 javaScript로 바꾸어주면 된다.
하단의 빨간색 TypeScript 부분을 javaScript로 바꾸어주면 된다.
전제 조건
- Node.js 설치 여부를 확인하고 없다면 설치해두자! (> 10.13.0, v13을 제외한)
- 최신버전 설치를 권장한다 (v16 이상)
설정
- 처음에 Nest CLI를 사용해서 프로젝트를 만들었다.
- 그래도 처음보는 사람이 있을수 있으니 다시 알아보자.
- npm 이 설치되어 있다면 cmd에서 다음 명령어를 입력하자.
// 네스트가 안깔려 있다면 전역적으로 설치하자.
$ npm i -g @nestjs/cli
// 네스트를 설치한 후 프로젝트를 생성하자.
$ nest new 프로젝트명
- nest new nest명령어를 입력해서 nest라는 프로젝트를 만들었다.
- 아래는 프로젝트의 구조이다.
- 먼저 src안에 들어있는 파일들에 대한 간략한 개요이다.
src
app.controller.spec.ts
app.controller.ts
app.module.ts
app.service.ts
main.ts
- app.controller.ts : 하나의 라우트가 있는 기본 컨트롤러이다.
- app.controller.spec.ts : 컨트롤러를 위한 유닛 테스트이다.
- app.module.ts : 애플리케이션의 루트 모듈이다.
- app.service.ts : 단일 메소드를 사용하는 기본 서비스이다.
- main.ts : 핵심기능 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 엔트리 파일이다.
- 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 애플리케이션 인스턴스를 생성하기 위해 핵심 NestFactory 클래스를 사용한다.
- NestFactory는 애플리케이션 인스턴스를 생성할 수 있는 몇가지 정적 메서드를 제공한다.
- create() 메소드는 INestApplication 인터페이스를 충족하는 애플리케이션 객체를 반환한다.
- 이 객체는 다음 장에서 설명하는 일련의 메서드를 제공한다.
- 위의 main.ts 예제에서 HTTP 리스너를 시작하기만하면 애플리케이션이 HTTP 요청을 기다릴 수 있다.
- Nest CLI로 생성된 프로젝트는 개발자가 각 모듈을 자체 전용 디렉터리에 보관하는 규칙을 따르도록 권장하는 초기 프로젝트 구조를 생성한다.
플랫폼
- Nest는 플랫폼에 구애받지 않는 프레임워크를 목표로 한다.
- 플랫폼 독립성을 통해 개발자가 여러 유형의 애플리케이션에서 활용할 수 있는 재사용 가능한 논리적 부분을 만들 수 있다.
- 기술적으로 Nest는 어댑터가 생성되면 모든 Node HTTP 프레임워크에서 작동할 수 있다.
- 기본적으로 지원되는 HTTP 플랫폼은 express 및 fastify의 두가지이다.
- 이 문서는 nest.js를 사용하기 위한 목적이니 자세한 내용은 공식문서를 참고하자.
실행하기
- 설치하고 나서 cmd에서 아래 명령을 실행하면 HTTP 요청을 수신하는 애플리케이션을 시작할 수 있다.
$ cd 프로젝트명
$ npm run start
- 이 명령어는 src/main.ts 파일에 정의된 포트에서 수신대기하는 HTTP 서버로 앱을 시작한다.
- 애플리케이션이 실행되면 브라우저를 열고 http://localhost:3000/로 접속하자.
- Hello World!메시지가 표시된다.
반응형
'Programming > Nest.js' 카테고리의 다른 글
[Nest.js] Nest.js에서 node-cache사용하는 방법 (0) | 2022.05.28 |
---|---|
[TypeORM] TypeORM에서 여러개의 테이블을 조인하는 방법 (0) | 2022.05.23 |
[Nest.js] Nest.js에서 소셜로그인을 구현하는 방법 (feat.Naver) (0) | 2022.05.23 |
[TypeORM] typeORM에서 평균(AVG) 구하기 (0) | 2022.05.23 |