npm i -g @nestjs/cli :네스트 설치
nest.js 실행 명령어: nest
nest new sparta-nest : Nest.js로 새로운 프로젝트 생성
-> 설치가 끝나면 sparta-nest라는 폴더가 생성
npm i @nestjs/mapped-types class-validator
@nestjs/mapped-types는 DTO 자체의 변환 및 상속을 도와주는 패키지이며
class-validator는 DTO를 구성하는 데이터의 유효성을 검증하는 패키지임
npm i lodash @types/lodash
lodash는 Javascript로 코딩할 때 유용하게 사용할 수 있는 유틸성 패키지임
이제, tsconfig.json 파일을 열어 다음과 같이 내용을 변경합니다. 아래의 파일 내용을 통째로 복사하여 tsconfig.json 파일에 붙여넣어주세요.
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true,
"strictNullChecks": false,
"noImplicitAny": false,
"strictBindCallApply": false,
"forceConsistentCasingInFileNames": false,
"noFallthroughCasesInSwitch": false,
"esModuleInterop": true
}
}
"esModuleInterop": true 이 항목은 ES6 모듈 사양을 준수하여 CommonJS 모듈을 가져올 수 있게 합니다.
TypeORM: Nest.js에서 데이터베이스 연동을 위해 사용함
(TS계의 ORM)
엔티티
-> 데이터베이스의 특정 테이블을 대표하는 객체로 ORM에서 사용된다.
이 객체를 통해서 ORM 프레임워크가 데이터베이스와 통신한다.
레포지토리
-> 엔티티와 데이터베이스 간의 중간 계층을 형성하는 객체임
(데이터베이스와의 통신 과정을 몰라도 추상화 된 레포지토리의 함수를 사용하여 데이터베이스에서 원하는
결과를 얻을 수 있도록 함)