- 미들웨어는 라우트 핸들러 실행 전에 호출되며, NestJS는 플랫폼에 따라 동작이 다를 수 있음 ⚙️.
- 익스프레스 미들웨어는 요청/응답 객체 변경, 요청 주기 종료, 다음 미들웨어 호출 등의 작업 수행 가능 🛠️.
- 미들웨어는 함수 또는
@Injectable
데코레이터가 붙은 클래스로 구현 가능하며, 클래스 구현 시NestMiddleware
인터페이스 구현 필요 🧩. - 미들웨어 등록은 모듈의
configure
메소드에서MiddlewareConsumer
를 통해 이루어짐 ⚙️. forRoutes
를 사용하여 특정 라우트에 미들웨어를 적용하거나,exclude
를 사용하여 특정 라우트를 제외할 수 있음 🚦.- 함수형 미들웨어는 간단한 구조에 적합하며, 의존성 주입이 필요 없는 경우 유용함 💡.
- 전역 미들웨어는
main.ts
에서app.use
를 통해 등록하거나, 모듈에서 와일드카드 라우트를 사용하여 등록 가능 🌍.