nodejs -> express -> nestjs

nestjs는 express를 기반으로 구동되며
express에 기본적인 뼈대를 만들어놓은 형태
너무나도 자유도가 높은 nodejs의 단점을 보완해줌

nestjs가 express를 기반으로 구동되는게 아니고 아에 express 위에서 구동됨.
디폴트는 express고 festify로 변경도 가능한데
nestjs 사용법에 맞게만 잘 코딩해놓으면
festify로 아주 쉽게 변경이 가능하단다.
express는 심플하고 festify는 성능이 좋음.

아주 좋은 아키텍처와 구조를 가짐.

모듈: 어플리케이션의 일부, 모듈이 여럿 모여서 하나의 어플리케이션이 됨.

npm run start:dev
npm 명령어로 빌드해야함.
nest start hi-nest 로 빌드하면 자동새로고침 같은 기능들이 작동을 안함.

controller: url을 가져오고 함수를 실행함 express의 router같은 존재
함수를 실행해주는정도의 역할만 해야함. 컨트롤러에 함수 선언이 있으면 안됨.


provider: service를 이야기함. 왜 provider라고 추가하는건지..?
provider에 등록된 service들의 dependency injection을 함.


validation pipe 완전 기깔나는 기능

npm i class-validator class-transformer  // validation pipe
npm i @nestjs/mapped-types // PartialType

app controller 에서는 뭘 하면 될까?
앱에 필요한 모든 모듈들을 여기서 등록함.
서브 모듈들에는 모듈이 있을 필요가 없음.
컨트롤러, 프로바이더만 있으면 됨.


Insomnia http 테스트 tool


Jest
Jest는 단순함에 초점을 맞춘 유쾌한 JavaScript 테스팅 프레임워크입니다.
유닛테스트, E2E 테스트가 가능한데
유닛테스트는 아주 작은단위 (함수 하나 단위)의 테스트이고
E2E 테스트는 사용자의 입장에서의 처음부터 끝까지 전부 테스트함.