NestJS 기본 구조
NestJS

NestJS 기본 구조

eslintrc.js 파일

개발자들이 특정 규칙을 가지고 코드를 깔끔하게 짤 수 있도록 도와주는 라이브러리.

타입스크립트를 쓰는 가이드라인 제시, 문법에 오류가 나면 알려주는 역할 등등.

 

 

prettierrc 파일

주로 코드형식을 맞추는데 사용한다. eslintrc 보다 작은 따옴표를 사용할지 큰 따옴표를 사용할지, indent 값을 2로 줄지 4로 줄지 등의 코드의 포매터 역할을 더 해준다.

 

 

nest-cli.json 파일

nest 프로젝트를 위한 특정한 설정을 해줄 수 있는 프로젝트 파일

{
  "collection": "@nestjs/schematics",
  "sourceRoot": "src"
}

위 코드는 src 폴더 안에 프로그램 로직 코드가 들어간다는 것을 말한다.

 

 

tsconfig.json 파일

어떻게 타입스크립트를 컴파일 할지 설정

 

 

tsconfig.build.json 파일

tsconfig.json의 연장선상 파일 이며 , build를 할 때 필요한 설정들.

"excludes"에서는 빌드할 때 필 요 없는 파일들 명시.

 

SRC 폴더

로직 처리를 위한 대부분의 코드가 들어가 있다.

 

 

모듈

모듈은 @Module () 데코레이터로 주석이 달린 클래스다. @Module () 데코레이터는 Nest가 애플리케이션 구조를 구성하는데 사용하는 메타 데이터를 제공한다. 각 응용 프로그램에는 하나 이상의 모듈 (루트 모듈)이 있다. 루트 모듈은 Nest가 사용하는 시작점이다.

모듈은 밀접하게 관련된 기능 집합으로 구성 요소를 구성하는 효과적인 방법이다.

같은 기능에 해당하는 것들은 하나의 모듈 폴더안에 넣어서 사용한다.

공통된 모듈을 생성하면 그 모듈을 다른 모듈에서도 사용가능하다.

 

다음은 모듈 생성 명령어이다.

nest g module [name]

 

 

Providers

프로바이더는 Nest의 기본 개념이다. 대부분의 기본 Nest 클래스(서비스, 리포지토리, 팩토리, 헬퍼 등)는 프로바이더로 취급될 수 있다. 프로바이더의 주요 아이디어는 종속성으로 주입할 수 있다는 것이다.

 

 

 

Service

서비스는 소프트웨어 개발내의 공통 개념이며, NestJS, Javascript에서만 쓰이는 개념이 아니다. @Injectable 데코레이터로 감싸져서 모듈에 제공되며, 이 서비스 인스턴스는 애플리케이션 전체에서 사용 될 수 있다. 서비스는 컨트롤러에서 데이터의 유효성 체크를 하거나 데이터베이스에 아이템을 생하는 등의 작업을 처리한다.

 

 

 

Provider 등록하기

Provider를 사용하기 위해서는 이것을 Nest에 등록해줘야지 사용할 수가 있다. 등록하기 위해서는 module 파일에서 할 수 있다. module 파일에 providers항목 안에 해당 모듈에서 사용하고자 하는 Provider 를 넣어주시면 된다. 이것이 종속성 주입이다.

Module 파일 내에 providers 항목에 사용하려는 provider를 적어준다.

 

'NestJS' 카테고리의 다른 글

Pipe  (0) 2021.10.21
Controller 생성하기  (0) 2021.10.18
NestJS 로직 흐름  (0) 2021.10.18
NestJS 기본 구조  (0) 2021.10.18
NestJS 설치  (0) 2021.10.18