전체 글
nestjs-query_02_Hook, Authorize
nestjs-query_02 1. BeforeCreateOneHook, BeforeUpdateOneHook nestjs-query에서는 몇 가지 훅들을 제공한다. 그중 가장 대표적으로 BeforeCreateOneHook과 BeforeUpdateOneHook이다. 해당 훅들은 module에서 자동으로 만들어 주는 CreateOne, UpdateOne 전에 실행되게 사용할 수 있는 기능이다. resolver에 도달하기 전에 실행되기 때문에 nestjs의 interceptor라고 봐도 된다. 2. 사용법 2-1. BeforeCreateOneHook 사용법 아래 보이는 것처럼 BeforeCreateOneHook를 사용해 구현할 수 있다. instance는 자동 생성되는 createOne의 input query를..
nestjs-query_01_세팅
nestjs-query nestjs-query는 graphql의 crud를 자동으로 만들어주고 기타 기능들을 제공해주는 라이브러리다. 기존 graphql의 경우 손쉽게 서버를 구성하고 사용할 수 있었지만 querying, sorting, paging기능을 구현하고, dto와 같은 타입들을 모두 지정해줘야 하기 때문에 중복된 일을 하는 경우가 많았다. nestjs-query는 이런 문제들을 단순 설정을 통해 쉽게 세팅할 수 있게 해준다. 1. @ptc-org/nestjs-query 구글에 nestjs-query를 치면 https://doug-martin.github.io/nestjs-query/ 이 주소가 제일 상단에 나온다. 해당 라이브러리는 0.3버전 이후 업데이트가 멈춰진 상태이기 때문에 https:..
모듈 간의 순환참조
Nest.js를 사용해서 개발을 진행하다보면 도메인 모델 계층에서 정말 많은 모듈로 분리해서 개발을 진행하게 된다. 명확한 명칭으로 모듈을 분리하게 되면 해당 모듈이 어떤 역할을 하는지 쉽게 알 수 있어 매우 좋지만 서로 다른 모듈끼리의 의존성을 조금만 신경쓰지 않으면 순환참조와 같은 문제가 발생한다. 순환참조란? 순환참조는 객체, 데이터, 모듈, 함수 등이 서로를 참조하는 것을 말한다. 간단한 자바스크립트 코드로 예시를 들면 아래와 같다. let obj1 = {}; let obj2 = {}; obj1.otherObj = obj2; obj2.otherObj = obj1; 이처럼 서로를 참조하는 경우 프로그램의 복잡성을 증가시키고 디버깅을 어렵게 만든다. 또한 메모리 누수, 스택 오버플로우, 무한 루프 ..