NestJs - 구조

choko's avatar
Jun 29, 2024
NestJs - 구조
notion image
  • eslintrc.js : 개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤 수 있게 도와주는 라이브러리, 타입스크립트의 가이드 라인
  • .prettierrc: 코드 형식을 맞추는데 사용
  • nest-cli.json : nest 프로젝트를 위해 특정한 설정을 할 수 있는 json 파일
  • tsconfig.json : 어떻게 타입스크립트를 컴파일할지 설정
  • tsconfig.build.json : tsconfig.json의 연장선상의 파일, build할 때 필요한 설정들
  • package.json : npm이라는 오픈소스 패키지 생태계를 사용하기 위한 명세이자, 프로젝트의 의존성 관리를 위한 명세, 또 이 생태계로의 배포를 위한 명세문서
 
 
 

NestJS 모듈

  • @Module {} 데코레이터로 주석이 달린 클래스.
  • NestJS가 어플리케이션 구조를 구성하는데 사용하는 메타 데이터 제공
  • 모듈은 기본적으로 싱글톤이므로, 여러 모듈간의 쉽게 공급자의 동일한 인스턴스를 공유할 수 있다.
 

모듈/컨트롤러/서비스 생성하기

nest g module boars // boards라는 모듈이 생성됨 nest g controller boards --no-spec // --no-spec: 테스트를 위한 소스 코드 생성 X nest g service boards --no-spec // @Injectable인 boards 서비스 생성 // controller와 service를 생성하면, 자동으로 module 파일이 업데이트 되어 service와 controller가 추가된다.
 
💡
@Injectable : 다른 컴포넌트에서 이 서비스를 사용할 수 있다는 데코레이터이다.
💡
DI(의존성주입) : DI를 해주어야 컨트롤러에서 이 서비스를 사용할 수 있다. DI는 클래스의 Constructor 안에서 이루어진다.
 
 

Model

모델 정의에는 Class를 이용하거나 Interface를 이용한다.
Interface : 변수의 타입만을 체크한다. Class : 변수의 타입를 체크하고, 인스턴스 또한 생성할 수 있다.
Share article

Tom의 TIL 정리방