알림 기능 (FCM) 에서 이어진다.

문제점

일단 가장 큰 문제점은 다음과 같다.

일정 시간마다 모든 Plan을 싹 조회해서 필터링해야한다.

말도 안되는 오버헤드이다. 현재는 개발 환경이여서 그렇지, 플랜에는 이미 지난것도 있고 먼 훗날의 것도 있는데

그걸 다 조회해서 필터링 해서 가져오는것? 말이 안된다.

그리고 단순히 현재 로직처럼

→ 지나지 않은 플랜을 모두 조회 → 이후 완료, 시간 등에 따라서 필터링

이렇게 찾는다면, 플랜을 모두 조회할 때 큰 오버헤드와 데이터베이스 부하를 겪게 될 것이다.

단순히 스케줄링 시간을 조정한다고 해결되는 문제가 아니다. 애초에 모든 플랜을 조회하는 것 부터 큰 과부하이다.

Plan 을 조회하는 것 자체에서 일단 보완을 해야한다.

캐싱

여기서 생각한게 우선 캐싱이다.

이전에 PriviewPlan 을 구현할 때 Redis 를 사용했는데,

이번에는 그 Redis 를 캐싱에 사용해 보면 어떨까?

대략적인 흐름은 다음과 같다.