기간별 좋아요를
매번 다시 세지 않도록.
최근 24시간·7일·30일 인기순을 조회할 때마다 좋아요 관계 테이블을 조인하고 기간별 COUNT를 계산하면 비용이 커집니다.
이벤트 루프는 유휴 시 약 1초 간격으로 조회해 누적 좋아요와 5분 단위 버킷을 갱신합니다. 순위 루프는 별도로 5분 경계마다 슬라이딩 윈도우를 이동해 신규·변경분을 더하고 만료분을 뺍니다.
조회는 저장된 점수로 정렬합니다. 집계를 요청에서 분리해 같은 집계 행의 락 경합도 줄였고, 순위 반영에는 지연이 생깁니다.
좋아요가 저장되고 집계되는 과정을 단계별로 확인합니다.
00:00–00:05 좋아요 버킷
집계 전
집계 전
집계 전
좋아요는 유지돼도 버킷이 창 밖으로 빠지면 해당 기간의 점수에서 차감됩니다.