NestJS API 만들기(feat. Nomadcoder)

문파이더맨·2021년 5월 26일
0

NestJS

목록 보기
2/2
post-thumbnail

🙋‍♂️ 노마드코더 NestJS API 만들기

강의의 질이 정말 높은 노마드코더!
하루 정도 NestJS 공식문서를 살펴보면서 씨름하다가 강의가 있지 않을까하고 찾아봤는데 역시나 있었다.

  • 어렵지 않다. (쉽다는 것은 아니다.)
  • Backend에 대해 조금이라도 공부해본 사람이 들으면 정말 훌륭할 듯.
  • Insomnia의 간편함을 알려준다.

📚 NestJS에 대한 짧은 정리

📌 다소 두서가 없을 수 있습니다. 수업을 들으면서 노트필기한 부분을 보고 복기한 것입니다. 📌

  • NestJS는 무언가 필요하면 반드시 요청해야한다. (디테일하게 코드를 짤 수 있을 듯)
  • 코드는 main.ts에서 돌아간다.
  • 터미널에서 nest 명령어를 실행하면 NestJS의 명령어들을 한 눈에, 그리고 축약어로 알아볼 수 있다.
  • (Django와 같은 부분이지만) Decorator는 클래스에 함수기능을 추가해서 클래스 위에서 움직인다.
  • service.ts -> 로직을 생성하는 곳
    controller.ts -> 생성한 로직을 실행시킬 곳
  • controller란?
    url 매핑, request 받기, query 제공, Body 등을 넘겨준다.
  • DTO를 활용하면 좋은점
    코드를 보기 간편해진다.
  • validatortransform 활용이 정말 멋드러진다.
    transform을 사용하면 생산성에서 엄청난 이득을 볼 수 있다.
  • < mapped-types > : 타입을 반환시키고 사용할 수 있게하는 패키지다.
  • DI (Dependency Injection) :
    모듈 내부에서 자동적으로 import하고 controller에 injection 한다.
  • jest란?
    js를 테스팅하는 npm 패키지이다.
  • spec.ts 파일? Feat.(describe, it)
    테스트를 실행할 수 있는 파일. (ex. e2e, unit test)
    • Unit test
      예를 들어 함수 하나를 따로 테스트하고 싶을 때 only spec.ts 파일을 사용!
    • e2e test ( End to End ) -> test 폴더에 들어있다.
      모조리 테스트한다.
      사용자 스토리 형식으로 진행 가능하다.

🤷‍♂️ Transform을 사용할 때 테스트 서버와 실제 서버 사이에서 발견되는 대표적인 오류

  • 왜 테스팅 서버에서 id는 string이고 실제 서버에서의 id는 number인가?
    controller를 살펴보면 transform을 이용해서 number로 지정해둔 것이다.
  • 그러면 왜 e2e 테스트에서는 transform이 돌아가지 않는가?

    Pipe에 올려둔 것이 없기 때문에 설정을 해줘야한다!

    app.useGlobalPipes(
      new ValidationPipe({
        whitelist: true,
        forbidNonWhitelisted: true,
        transform: true,
      }),
    );

    이런 식의 pipe를 e2e 파일의 beforeAll 혹은 beforeEach에 추가해주어야 한다! ( application 생성 후에! )

👀 오늘 배운 것

  • Correctors
  • Providers
  • DI
  • Unit test, e2e test
  • DTO

🧑‍💻 총평

  • 전에 React를 했을 때 JS에 대한 다소 두려움이 없지 않아있었다.
  • TypeScript를 공부하고 NestJS를 공부하다보니 JS 형식에 대해 겁이 사라졌고 오히려 디테일하다는 것을 새삼 느낄 수 있었다.
  • 본의 아니게 NestJS를 시작했지만 추후에 Spring과도 이어질 수 있으니 좋지 않을 수가 없다!
profile
Sever 개발할래요.

0개의 댓글