⌨️/Node.js

[NestJS]

S0 2024. 4. 11. 04:21

익스프레스의 단점, 한계

 

필요한 기능이 생길 때마다 미들웨어가 자꾸 추가되고

그러면 익혀야 할 것이 늘어나고

코드도 계속해서 수정해야


Nest.js의 장점

 

컨트롤러, 서비스, 미들웨어, 인터셉터, 모듈 등 웹 서버에 필요한 다양한 구성 요소를 커맨드로 정확하게 구현 가능

ex)

nest g co posts

-> Posts 컨트롤러 생성 가능

 

nest.js가 기계적으로 구성한 바탕 위에서는 오히려 실수하기가 힘들다!

때문에 코드의 생산성이 올라가 로직의 퀄리티를 올리는데 집중할 있음


컨트롤러

 

데코레이터를 통해 클래스가 컨트롤러 역할을 함

 

컨스트럭쳐 인자로 서비스 객체를 넘기면 멤머 변수에 서비스 객체가 주입

=> DI (의존성 주입)

생성자를 통한 DI

 

컨트롤러는 고객(클라이언트)의 음식을 주문받고 주방장(서비스)에게 음식 오더를 내리는 종업원 담당

이후에 주방장(서비스) 음식을 만들어서 컨트롤러(종업원)에게 전해줌


typeORM

 

config : 노드의 .env와 같은 역할

joi : validator의 역할

 

 

엔티티

데이터베이스의 특정 테이블을 대표하는 객체

이 객체를 통해 ORM 프레임워크가 데이터베이스와 통신

 

리포지토리

엔티티와 데이터베이스 간의 중간 계층을 형성하는 객체

프로그래머가 데이터베이스와의 통신과정을 알지 못하더라도 추상화 리포지토리의 함수를 사용하여 데이터베이스에서 원하는 결과를 얻을 있도록