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

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

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

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

https://bit.ly/4hTSJNB

 

🎉누적 구매수 111만 건 돌파 감사제 100% 페이백 (04.21 - 04.26) | 패스트캠퍼스

통 크게! 전 구매 고객께 결제 금액을 100% 돌려드립니다!

fastcampus.co.kr

0423 수

학습 내용 정리

[Class 01]Part 24. Task Scheduling

03. 좋아요, 싫어요 통계 기능 구현하기

04. 다이나믹 타스크 스케쥴링

수강후기

오늘 수업은 Task Scheduling과 관련된 개념과 실습을 통해 백엔드 시스템에서 주기적으로 실행되는 작업의 설계와 구현에 대해 학습할 수 있는 유익한 시간이었습니다. 특히 NestJS에서 제공하는 @Cron 데코레이터를 활용하여 시간 기반의 작업을 어떻게 설정하고, 관리할 수 있는지에 대해 실습하며 이론과 실제를 연결지을 수 있었습니다.

첫 번째로 구현한 좋아요/싫어요 통계 기능은 일정한 시간마다(매 분 0초에) 실행되어 movie_user_like 테이블의 정보를 바탕으로 각 영화의 좋아요(likeCount)와 싫어요(dislikeCount)를 집계해 movie 테이블에 업데이트하는 로직입니다. 이 과정에서 서브쿼리를 활용하여 각 영화별로 집계 결과를 계산해주는 방식은 매우 직관적이면서도 실무에서도 자주 사용될 수 있는 패턴이라서 인상 깊었습니다. 수동으로 갱신할 필요 없이 주기적으로 데이터의 신뢰성을 유지할 수 있다는 점에서 이 기능은 실무에 매우 유용할 수 있습니다.

두 번째로 실습한 다이나믹 타스크 스케쥴링에서는 @Cron 데코레이터를 활용해 선언적으로 작업을 예약하고, schedulerRegistry를 통해 런타임 중 해당 작업의 실행 여부를 동적으로 제어하는 방법을 배웠습니다. printer 작업은 매초마다 실행되도록 예약되어 있으며, stopper 작업은 5초마다 실행되어 printer 작업을 정지하거나 다시 시작하는 역할을 합니다. 이를 통해 단순히 스케줄된 작업을 실행하는 데 그치지 않고, 동적으로 작업을 컨트롤할 수 있는 고급 기능을 실습할 수 있었습니다. 특히 job.isCallbackRunning을 통해 현재 작업이 실행 중인지 여부를 판단하여 조건 분기 처리한 부분은 스케줄링 작업에 유연성을 부여하는 좋은 예시였습니다.

총정리하자면, 오늘 수업을 통해 NestJS에서의 Task Scheduling 사용법을 선언형(@Cron) 중심으로 익히고, 이를 기반으로 실시간 데이터 통계 집계, 그리고 런타임 중 스케줄된 작업 제어 같은 실전 중심 기능 구현을 경험할 수 있었습니다. 실무에서 매우 유용하게 활용될 수 있는 기초이자 확장 가능한 구성 요소라고 생각합니다.

사진

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