본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
0407 월
학습 내용 정리
Ch 1. 이론
Ch 2. 실습
수강후기
오늘은 NestJS에서의 Interceptor 이론과 실습을 집중적으로 학습하였다. Interceptor는 미들웨어와 유사하게 요청과 응답의 흐름을 제어하거나 부가적인 기능을 삽입할 수 있도록 해주는 강력한 도구로, 실제 서비스 개발에서도 유용하게 활용된다.
이론 수업에서는 Interceptor의 동작 원리와 Lifecycle, ExecutionContext, CallHandler 등의 핵심 개념에 대해 학습하였다. 특히, Interceptor는 요청 전/후 로직을 처리할 수 있어 로깅, 캐싱, 트랜잭션 관리, 응답 시간 측정 등 다양한 활용이 가능하다는 점이 인상 깊었다.
실습 시간에는 총 세 가지 Interceptor를 직접 구현하였다.
- ResponseTimeInterceptor: 요청부터 응답까지 소요된 시간을 측정하여 로그로 출력하는 Interceptor를 구현하였다. 이를 통해 API 성능 모니터링을 어떻게 시스템에 녹여낼 수 있을지 감을 잡을 수 있었다.
- CacheInterceptor: 동일한 요청에 대해 캐시를 적용함으로써 서버 부하를 줄일 수 있는 Interceptor를 구현하였다. Map 객체를 활용하여 간단한 메모리 기반 캐시를 구축했고, request.method와 request.path를 키로 사용하여 캐시의 정확성을 확보하였다.
- TransactionInterceptor: TypeORM의 QueryRunner를 이용하여 트랜잭션을 관리하는 Interceptor를 구현하였다. 요청 객체에 queryRunner를 주입하고, commit, rollback, release를 적절히 처리함으로써 DB 일관성을 유지할 수 있도록 설계하였다.
이러한 실습을 통해 단순한 HTTP 요청 처리 이상의 백엔드 로직을 체계적으로 다룰 수 있는 기반을 다질 수 있었다. 특히, 트랜잭션 Interceptor는 서비스 로직과의 결합도가 낮으면서도 강력한 기능을 제공할 수 있어 실제 프로젝트에도 도입할 수 있을 것으로 기대된다.
전반적으로 Interceptor의 이론과 실습은 NestJS 아키텍처에 대한 이해를 한층 더 깊게 해주었고, 시스템 전반의 확장성과 유지보수성을 고려한 설계 감각을 기를 수 있는 유익한 시간이었다.
그리고 이번 수업을 통해 Interceptor를 단순 기능이 아닌 소프트웨어 아키텍처의 일환으로 활용하는 방식에 대해 이해하게 되었다. 서비스 로직의 재사용성과 유지보수성을 높이는 데에도 큰 도움이 될 것으로 기대된다.
무엇보다도 강의가 매우 깔끔하고 체계적으로 진행되어 학습 몰입도와 이해도가 높았다. 실습 또한 실무와 유사한 구조로 제공되어 실전 감각을 익히는 데 큰 도움이 되었으며, 복잡한 개념을 단순화하여 설명해 주셔서 부담 없이 따라갈 수 있었다.
사진



