컨트롤러와 프로바이더
Nest.js에서 컨트롤러와 각각의 프로바이더는 특정한 책임을 갖는다. 하지만 이에 대해 깊게 생각하지 않은 채 서버를 개발을 하다보니 자꾸만 서로의 책임을 침범하는 코드를 작성하게 되는 것 같다. 그래서 지나가는 부록 느낌으로 한 번 정리해보려고 한다. 이 포스트에서 다루는 범위는 컨트롤러 ∙ 레졸버 ∙ 서비스 ∙ 헬퍼 ∙ 유틸리티 ∙ 레포지토리 클래스이며 미들웨어를 비롯한 요청 생명주기 관련 클래스는 [ 미들웨어와 토큰 재발급 ] 포스트에서 확인할 수 있다. 엔드포인트 클래스GraphQL을 처리하는 레졸버의 경우 프로바이더로 취급되며, 드물지만 다른 컴포넌트에 주입해서 사용할 수 있다. 여러 레졸버가 서로 관련된 작업을 처리하거나, 컨트롤러와 레졸버가 동일한 비즈니스 로직을 공유해야 하는 경우 등이 ..