본문 바로가기
패스트캠퍼스 환급챌린지

패스트캠퍼스 환급챌린지 45일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

by 논문보관함 2025. 4. 18.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/4hTSJNB

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

0418 금

학습 내용 정리

Ch 2. 캐시 매니저 실습

01.Cache Manager 기본 사용법

 

수강후기

[Ch 2. 캐시 매니저 실습 - Cache Manager 기본 사용법]

오늘은 NestJS 기반의 백엔드 개발에서 성능을 크게 향상시킬 수 있는 기술 중 하나인 *캐시 매니저(Cache Manager)*의 기본 사용법에 대해 실습을 진행하였다. 특히 중요한 점은, 모듈 단위엔드포인트 단위에서 각각 TTL(Time To Live)을 다르게 설정할 수 있다는 점이었다. 이를 통해 우리는 전역적으로 동일한 캐시 정책을 적용하는 것에서 벗어나, 각 요청의 특성과 목적에 맞춘 캐시 전략을 수립할 수 있는 유연성을 확보하게 된다.

실습에서는 최근 영화 데이터를 캐싱하는 기능을 구현해보았다. 먼저 캐시에서 'MOVIE_RECENT' 키로 저장된 데이터를 조회하고, 값이 존재할 경우에는 캐시된 데이터를 바로 반환하여 DB 조회를 피하는 구조였다. 이는 API 응답 속도를 비약적으로 향상시킬 수 있으며, 특히 조회 빈도가 높은 데이터에 대해 효과적인 전략임을 체감할 수 있었다. 만약 캐시가 비어 있다면 DB에서 데이터를 가져온 후, 해당 데이터를 같은 키로 캐시에 저장하며 다음 요청부터는 캐시를 활용할 수 있도록 하였다.

const cacheData = await this.cacheManager.get('MOVIE_RECENT');
if(cacheData) return cacheData;
const data = await this.movieRepository.find({ ... });
await this.cacheManager.set('MOVIE_RECENT', data, 0);

이때 set 함수의 세 번째 인자(예: 0)로 TTL 값을 지정할 수 있었다. 이는 즉시 만료를 의미하며, 실전에서는 적절한 TTL 값을 지정하여 데이터 신선도와 캐싱 효율성을 균형 있게 유지할 수 있다. 그리고 이 TTL은 엔드포인트별로 다르게 지정 가능하다는 점이 이번 실습의 핵심이었다.

전반적으로 오늘 실습을 통해, 단순히 캐시를 사용하는 것에서 나아가, 데이터 사용 특성에 따라 TTL을 다르게 설정하는 전략적인 캐싱 구조를 설계할 수 있게 되었다. 또한 NestJS에서 제공하는 캐시 매니저의 유연성과 직관적인 API가 실제 서비스에 매우 유용하게 적용될 수 있다는 점을 확인하였다. 향후에는 Redis와 같은 외부 캐시 저장소를 연동하여, 다중 서버 환경에서의 캐시 일관성 문제까지 고려한 설계로 확장해보면 좋을 것 같다.

 

총정리:
오늘 배운 Cache 기능은 단순히 적용하는 것을 넘어, 엔드포인트별, 모듈별로 각각 다르게 설정할 수 있다는 점을 확인하며, NestJS에서의 캐시 전략을 가볍게 체득한 하루였다.

사진

시작/종료
수강클립/ 결과