TIL(2021-05-26)

roach·2021년 5월 26일
0

TIL

목록 보기
8/8

서론

  • 요즘 바빠서 TIL 에 상세 내용까지 적어줄 순 없을듯함..
  • 사이드 프로젝트에 NestJS 와 ReactJS 를 사용할 예정
  • 채팅은 만들게 되면 Go 를 통해 만들듯 하다..
  • AWS 를 최대한 잘 활용해서 할 예정 => 코쿼 과정에서 한번배우고 회사에서 다시 배우니 확실히 리마인드가 잘됨.

Platform

  • Platform-express
  • Platform-fastify

Controller

  • 쉬우니 패스

Provider

  • Provider 는 간단하게 NestIOCContainer 를 이용할 수 있게 해주는 것이다. 즉 공식문서에 의하면, 프로바이더의 주요 기능은 inject dependencies 를 가능하게 해주는 것이다!

Nest 에서 DI 를 하는 방법?

  • Nest 에서는 TypeScript 를 권장하므로 Type 에 의한 DI 가 가능하다.
constructor(private catsService: CatsService) {}
  • 위는 공식문서의 코드인데, 이렇게 Constructor 에 선언해줄 경우 NestIOCContainer 가 자동으로 Dependency 를 주입시켜 준다.

Scope?

  • Provider 는 일반적으로 어플리케이션 라이플과 동기적이다. 어플리케이션이 부트스트랩되면, 모든 디펜던시가 리졸브되고, 모든 프로바이더들은 초기화된다. 어플리케이션이 죽으면 각각의 프로바이더들은 파괴된다. 하지만 프로바이더의 수명을 '요청-기간동안만' 으로 만들수도 있다. (이건 나중에~ 문서를 더봐야한다.)

CustomProvider

Property Injection

  • 해당 Injection 도 가능한데, Nest 는 기본적으로 Constructor Injection 을 권장한다.

Module

  • 모듈은 NestJS 에서 적극 권장하는 구조이다. Controller , 혹은 다른 모듈, Provider 등을 가질 수 있으며 이를 이용하면 어플리케이션을 구조화 시킬수 있다. (그래프화?!) 뭐 여튼
  • 모듈은 기본적으로 싱글톤 기반으로, 다른 모듈들에 같은 인스턴스를 전달할 수 있다.
  • 모듈을 글로벌로 셋팅 할 수 있긴한데, 아마 Container 자체에서 Scope 를 글로벌로 잡는거 같다? 뭐 여튼 이건 권장하지 않는 패턴이라고 한다.

추신

  • 잘 정리된 글이 아님.
  • 공식문서를 읽는게 더 좋음
  • 공식문서를 읽어도 충분히 이해가 잘될것임 ⇒ 이해가 안간다면 기반지식이 부족한것
  • 끄적인 글에 불과함. ⇒ 사실 공식문서 이해한걸 TIL 에는 적기 귀찮음
  • 다음에 정제된 글로 올릴듯..
profile
모든 기술에는 고민을

0개의 댓글