효율적이고 확장 가능한 Node.js 서버 사이드 애플리케이션을 구축하기 위한 프레임워크이다.
Node.js에 기반을 둔 웹 API 프레임워크로써 Express 또는 Fastify 프레임워크를 래핑하여 동작한다.
Node.js 설치 - 설치 방법은 Node.js 설치 방법 페이지 참조
https://velog.io/@cod_kms/Node.js-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95-MacOS
NestJS CLI 설치
NestCLI란 Nest Application의 초기화, 개발 및 유지 관리를 도와주는 인터페이스 도구
npm i -g @nestjs/cli
i: install 명령어의 약자
-g: 컴퓨터의 글로벌 환경에 설치하겠다는 뜻으로, 모든 디렉토리에서 참조할 수 있음
npm root -g: 글로벌 환경에서 패키지가 설치되는 경로 확인 명령어
* npm 에러 발생시 관리자 권한으로 설치: sudo npm i -g @nestjs/cli
mkdir 폴더명
cd 폴더명
nest new project-name
-> app.controller.spec.ts
컨트롤러에 대한 단위테스트
-> app.controller.ts
유저와 통신하고 서비스의 패턴을 정의하는 컨트롤러
-> app.module.ts
Application의 실행 루트 모듈
-> app.service.ts
실제 로직을 구현하는 기본 서비스
-> main.ts
NestJS Application 인스턴스를 생성하는 메인
개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤 수 있도록 도와주는 라이브러리
타입 스크립트를 쓰는 가이드라인 제시
문법에 오류가 나면 알려주는 역할
Git에서 특정 파일이나 디렉토리를 버전 관리 대상에서 제외할 때 사용하는 파일
이 파일에 정의된 패턴에 해당하는 파일이나 폴더는 Git이 추적하지 않으며, 커밋 대상에서 제외됨
주로 코드 형식을 맞추는데 사용하며 에러 찾는 것이 아닌 코드 포멧터 역할을 함
작은 따옴표(’)를 사용할지 큰 따옴표(”)를 사용할지, Indent 값을 2로 줄지 4로 줄지 등등
nest 프로젝트를 위해 특정한 설정을 할 수 있는 json 파일
프로젝트 이름, 버전, 설명, 작성한 사람 명시
bulid: 운영 환경을 위한 빌드
format: 린트 에러가 났을시 수정
start: 앱 시작
어떻게 타입스크립트를 컴파일 할 지 설정하는 json 파일
tsconfig.json의 연장선상 파일
build할 때 필요한 설정들 excludes에서는 빌드할 때 필요없는 파일들 명시
npm run start:dev
RESTful API를 설계중이라면 Controller 사용
GraphQL API를 설계중이라면 Resolver 사용
NestJS에서 기본적으로 Controller를 사용해 RESTful API를 구현한다.
GraphQL Resolver를 사용하려면 추가 설정이 필요하다.
npm install @nestjs/graphql apollo-server-express graphql
// module.ts
import { Module } from '@nestjs/common';
@Module({
imports: [
],
providers: [
],
exports: [
],
})
export class UserModule { }