상세 컨텐츠

본문 제목

[TIL] 2024.03.05 NEST.JS

[TIL]

by 재호링 2024. 3. 6. 09:21

본문

레이어드 아키텍처 패턴의 주요특징

  • 의존성 - 각계층의 가장 가까운 하위 계층의 의존성 주입
  • 독립성 - 각계층은 다른 계층의 역할을 침범하지 않음
  • 각계층은 역할이 명확하므로 기능 구현 및 테스트에 용이
  • 대부분 셀프 서비스로 대부분 조립을 해줘야한다(express)

express는 준비된게 없다.

  • 셀프서비스는 자유로움을 주지만
  • 번거로움이 따른다. 미들웨어를 계속 넣어줘야함.
  • 디렉토리 구조를 명확하게 설계를 해줘야한다.

Nest.js의 장점

  • 명령어 하나로 쉽고 간편하게 계층이 생성된다.
  • 타입체크를 함으로써 여러 예외 상황을 사전에 방지 가능
  • 커맨드하나로 간편하게 대부분의 구성요소를 구현할수 있다.
  • posts 컨트롤러를 만들려고하면 다음과 같은 커맨드를 사용하면 된다.
nest g co posts
  • g = 만들다 제너레이터
  • co = 컨트롤러의 약자
  • posts는 posts를 만들겠어 !

ex)

  • 서비스는 s
  • 모듈은 mo 로 다양한 커맨드로 구현 가능
  • 개발자가 실수하고 싶어도 nest js가 만들어논거라 실수하기가 힘듬.
  • nestjs가 알아서 해주면 우리는 비지니스 계층에만 집중하면됨
  • 즉, 로직구현, 기타 다른 구현을 하면됨.
  • 즉, 개발에 대한 허들이 낮아짐

@  (데코레이터)

데코레이터란 해당 클래스나 함수가 어떤 역할을 수행하는지에 대해

Nest.js에게 알려주는 역할이다

 

IoC(제어역전)

  • inversion of control의 준말로 제어역전이라고함
  • IoC는 개발자가 사용하고 싶은 객체를 직접 생성하는것이 아니라
  • 객체의 생명주기 관리 자체를 외부(Nest.js IoC 컨테이너)에 위임을 하는 것
  • 즉, 객체의 관리를 컨테이너에 맡겨서 제어권이 넘어갔기 때문에 IoC라고 하는 것.
  • 자주 변경되는 서비스가 있다면 개발자는 계속 코딩을 해야되고 부작용을 떠안아야된다
  • 하지만 IoC가 출동하면 모듈간 결합도를 낮추기 때문에 모듈이 변경되어도
  • 다른 모듈들에는영향을 최소화해 어플리케이션 지속이 가능하고 확장성이 생김
  • 즉, IoC 원칙은 웹 어플리케이션에서 없어선 안될 원칙이고 이 원칙을 지원하는게 Nest.Js

class-validator 는 DTO를 검증하기 위해 사용됨

  • @IsNotString() 넌 문자열이여만해
  • @IsNotEmpty() 넌 비면 안돼
  • 위 데코레이터는 classvalidator에서 지원되는 데코레이션임

 

관련글 더보기