컨트롤러는 기본적으로 백엔드에서 사용하는 컨트롤러와 하는 일이 같다. 즉, 클라이언트에서 서버로 들어오는 요청을 처리하고 응답을 클라이언트로 반환하는 역할을 한다. 클라이언트의 요청을 받기 위해서는 기본적으로 라우팅이 필요하다. Express에서는 기본적으로 라우팅을
NestJs의 핵심 개념으로서 제공하고자 하는 핵심 기능, 즉 비즈니스 로직을 수행하는 역할을 하는 것이 프로바이더이다. 컨트롤러가 이 역할을 수행할 수도 있겠지만 소프트웨어 구조상 분리해 두는 것이 단일 책임 원칙(SRP, Single Responsibility Pr
모듈은 @Module() 데코레이터가 달린 클래스로서, Nest가 애플리케이션 구조를 구축하는 데에 필요한 메타데이터를 제공합니다.단일 작업만을 수행하는 것이 아니라, 여러 컴포넌트가 조합된 큰 단위의 작업을 수행한다. 모듈 구조는 컴포넌트를 구성하는 가장 효율적인 방
미들웨어는 라우팅 핸들러가 실행되기 이전에 호출되는 함수다. 미들웨어는 요청 객체와 응답 객체에 접근할 수 있으며, 애플리케이션의 요청-응답 사이클의 미들웨어 함수인 next() 함수까지 접근할 수 있다.참고로 라우트 핸들러는 엔드포인트마다 동작을 수행하는 컴포넌트로서
개발을 하는데 있어서 예외처리는 매우 중요한 작업이다. Nest에는 애플리케이션에서 처리되지 않은 예외를 처리해주는 예외 계층이 있다. 덕분에 예외가 처리되지 않더라도 요청-응답 사이클이 망가지지 않으며, Nest가 발생한 예외를 처리하고 사용자 친화적인 방식의 응답으
파이프(Pipe) 🏀 파이프란? 파이프는 라우팅 핸들러가 실행되기 전에 개입하여, 데이터를 변환할 수 있다. 파이프는 크게 변환, 유효성 검증의 역할을 한다. 변환 (transformation) — 입력 데이터를 원하는 모양으로 변환한다. (타입 변환 등)
가드는 주어진 요청이 라우팅 핸들러에게 전달될지 말지 여부를 결정하는 단일 책임을 갖는다.해당 여부는 런타임에 권한, 역할, ACL 등의 다양한 근거로 결정될 수 있고 이런 것을 인가(authorization)라고도 한다.인가(Authorization)는 인증을 통과한