Nest.js 제로초님의 강의를 보면서 정리내용

Nest.js 제로초님의 강의를 보면서 정리내용

728x90

Node.js 와 가장 큰 차이점

자바스크립트로 express 서버를 구성했다면

Nest에선 TS 타입스크립트로 서버를 구성하였다

Node.js 에서 swagger 를 통해 API 명세를 할때는

yaml 형식의 문서를 따로 작성하여 명세하였다면

Nest 에선 위와 같은 작업이 필요하지않았다

Nest.js 의 핵심은 각각의 Module 들이 퍼즐처럼 맞춰나가면서

하나의 어플리케이션을 만든다 라고 이해를 하면 이해가 쉬웠다

어느 한쪽에서 다른 모듈을 상속받아오거나 하는경우가 잦기때문에

express 보다 굉장히 각각의 기능들 Service ,Controller 등 기능들이 세부화 되었다고느낌

express 로 서버를 구성할땐 routes 폴더를 따로 만들고했지만

Nest g

라는 명령어를 통해 Nest 에선 모듈을 생성할때도 매우 간편쓰!!

dependency injection 테스트코드를 작성할때 매우좋음

라는 말은 들어봣지만

의존성주입? 이라는 말이 이해가 가지않아 따로 찾아본결과

하나의 객체가 다른객체의 의존성을 제공하는 테크닉이라는데

class 1

var 블라블라 : int = 1

class 2

var 블루블루= class 1

class 2 내부에서 class 1 를 내부에 변수로 사용함으로써

서로 의존관계가 생성되는게

의존성

그렇다면 주입은?

내부가 아니라 외부에서 객체를 생성

생성한 객체를 넣어주는 것을 주입한다고 하는데

class 1

var 블라블라 : int

class 2

var 블라블라 = class 1

const 주입 = 블라블라 (number : int(3))

외부에서 객체를 생성해서 함수를통해 넣어주는것이 주입이라고한다

프로그래밍 전반적에서 쓰이는 용어 인듯하고

MVC 디자인 패턴 관련해서도 연관이 깊어보이는 느낌이 있었다

fastify 라는 express 의 단점이 보완된 프레임워크가잇지만

(fastify 라는 framework 있었다는것도 처음알았다.. koa 만 들어봤을뿐)

갈길 너무멀다

nestjs 가 express 위에서 동작하기도하고

express의 단점을 보완해주기도한다고한다

원한다면 fastify도 사용할수있게 구성 가능하다고합니다

express 의 단점 : 수작업이 많다고한다 (개인적인 생각으론 장고나 네스트 같이 규칙이 정해져있지않은느낌이 강해서

뼈대만있는 flask 와 비슷한느낌이라 여러가지 npm 모듈을 설치하고 사용함에 있어서 번거롭다고 느끼는걸까

일단 swagger 문서 작성하는것만해도 따로 막 엄청길게 작성해야해서 불편하긴했음

내장된 에러핸들링이 없어서 미들웨어를 잃어버릴수있다고 한다

nest 는 테스트환경을 구성함에있어서 express보다 엄청 뛰어난거같다라는 생각이 듬

jest 라는 것을 사용해보지않았지만 jest 를 이용해서

유닛테스트를 하기 좋다고는 봤음

express 가 메모리도 많이 먹는다고 합니다

해당 문제사항의 이유는 좀더 찾아보기로하자

express의 다양한 미들웨어들도 nestjs 에서 사용할수있음

nestjs 를 쓰면서 typeorm 을 사용해서

entity 파일을 만들고 코드를 작성했지만

typeorm 에 어떤 데코레이터가있는지 문득 궁금해서

좋은 참고자료가 있어서 해당링크를 복붙

https://yangeok.github.io/orm/2020/12/14/typeorm-decorators.html

시간날때마다 볼예정

express - sequelize (관계형 db) 이 조합이 있어서

typescript - typeorm 이 있나? 싶엇는데

typeorm 은 자바스크립트에서도 사용할수있다고 합니다

페이지네이션을 구현하면서

querybuilder 를 사용해서

원하는 필드만 select 해서

select 한 데이터만 반환되게 했는데

쿼리빌더가 무엇인가

sql 문법을 직접 치지않고 sql 쿼리문을 작성하게해주는것이 쿼리빌더라고한다

처음봤다

근데 간편했다

nest.js entity 파일을 작성하면

테이블이 자동으로 생기는것도 신기햇는데

쿼리빌더를 사용해서 쿼리문을 날리면

직접 sql 구문을 사용한 쿼리문이 나온다는게 더욱더 신기했음

728x90

from http://ganzicoder.tistory.com/143 by ccl(A) rewrite - 2021-06-13 15:00:36