
- 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