Skip to content

#50 오늘의 맛집 조회수 랭킹 빈 값 반환 문제 폴백으로 해결 - #159

Merged
gihhyeon merged 1 commit into
developfrom
fix/50-today-ranking-fallback
Sep 8, 2026
Merged

gihhyeon merged 1 commit into
developfrom
fix/50-today-ranking-fallback

Conversation

@gihhyeon

@gihhyeon gihhyeon commented Sep 7, 2026

Copy link
Copy Markdown
Member

요약

오늘 조회 데이터가 없을 때 "오늘의 맛집"이 빈 값을 반환하던 버그를, 스케줄러·캐시 없이 오늘→어제→전체 누적 조회수 순으로 폴백하도록 해결합니다.

What — 무엇을 바꿨나

  • getDailyRankingByViews를 오늘→어제→전체 누적 조회수 순으로 폴백하도록 변경 (각 단계 3곳 이상일 때 사용)
  • PlaceRepository.findTopByCampusOrderByViewCount 추가 (누적 조회수 랭킹)
  • 3개 랭킹 메서드의 중복 로직을 buildRankingResponse(List<Place>) 공통 헬퍼로 추출
  • 폴백 시나리오 통합 테스트 3종 추가 (PlaceReadServiceTest)

Why — 왜 필요한가 (#50)

  • getDailyRankingByViews오늘 날짜의 DailyViewCount 행만 조회 → 조회가 발생해야 행이 생기므로, 매일 자정 직후·저트래픽 구간엔 오늘 행이 없어 빈 리스트를 반환
  • 즉 "하루 단위 데이터에 랭킹을 묶었는데 그 하루가 경계에서 비어있는" 문제

How — 어떻게 구현했나

  • 요청 시점마다 오늘→어제→누적 순으로 판단해, 오늘 데이터가 충분해지면 자동으로 오늘 랭킹으로 복귀 (상태·스케줄러 불필요)
  • 각 단계 임계값은 RANKING_SIZE(3)로 통일
  • 누적 조회수 폴백은 Place.viewCount 컬럼 기준이라 조회 이력이 0이어도 승인 맛집을 반환 → 승인 맛집이 3곳 이상이면 절대 빈 값이 나오지 않음
  • 기존 PR #50 오늘의 맛집 캐싱 도입 #52(스케줄러+인메모리 캐시)는 과설계·재시작 시 캐시 소실·구조 불일치로 폐기하고 이 방식으로 대체

체크리스트

  • 불필요한 주석/코드 제거
  • 테스트 추가/갱신 및 통과 (./gradlew test)
  • 공개 계약 영향 확인 → 응답 형태 동일. 새벽 공백 구간에 "어떤 맛집이 보이나"만 달라짐(빈 값 → 어제/누적), 프론트 구조 변경 불필요

관련 이슈

- 오늘 조회 데이터가 부족한 새벽/저트래픽 구간에 빈 랭킹이 나오던 문제 수정
- getDailyRankingByViews를 폴백 체인으로 변경 (오늘 3곳 이상 → 어제 3곳 이상 → 전체 누적 조회수)
- 누적 조회수 랭킹 쿼리 findTopByCampusOrderByViewCount 추가
- 랭킹 메서드 공통 로직을 buildRankingResponse 헬퍼로 추출
- 오늘의 맛집 폴백 시나리오 통합 테스트 추가
@gihhyeon gihhyeon self-assigned this Sep 8, 2026
@gihhyeon gihhyeon added the ✨ Feature 기능 개발 label Sep 8, 2026
@gihhyeon gihhyeon changed the title [fix] 오늘의 맛집 조회수 랭킹 빈 값 반환 문제 폴백으로 해결 #50 오늘의 맛집 조회수 랭킹 빈 값 반환 문제 폴백으로 해결 Sep 8, 2026
@gihhyeon
gihhyeon merged commit 97800f8 into develop Sep 8, 2026
2 checks passed
@gihhyeon
gihhyeon deleted the fix/50-today-ranking-fallback branch September 15, 2026 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] 오늘의 맛집 조회시 일일 조회수가 0이면

1 participant