Files
sodalive-backend-spring-boot/docs/20260226_라이브추천차단조인및캐시무효화.md

1.4 KiB

라이브 추천 차단 JOIN 및 캐시 무효화

  • LiveRecommendService.getRecommendLive의 차단 필터 처리 구조 점검
  • LiveRecommendRepository.getRecommendLive를 DB 조회 시 차단 관계를 JOIN/조건으로 제외하도록 변경
  • 차단(memberBlock) 및 차단 해제(memberUnBlock) 시 추천 라이브 캐시가 즉시 반영되도록 무효화 처리
  • 변경 코드 정적 진단 및 테스트/빌드 검증
  • 검증 기록 작성

검증 기록

1차 구현

  • 무엇을: getRecommendLive의 차단 제외 로직을 서비스 단 필터링에서 QueryDSL leftJoin(blockMember) + blockMember.id.isNull 조건으로 이동했고, 차단/차단해제 시 CacheManagergetRecommendLive:{memberId} 키를 직접 evict 하도록 적용했다.
  • 왜: 기존 방식은 추천 결과 조회 후 creator마다 isBlocked를 반복 호출해 후처리하고, 캐시 만료 전까지 차단/해제 결과가 반영되지 않는 문제가 있어 DB 레벨 필터링과 이벤트성 캐시 무효화가 필요했다.
  • 어떻게:
    • lsp_diagnostics (대상: LiveRecommendRepository.kt, LiveRecommendService.kt, MemberService.kt) 실행 결과: 환경상 Kotlin LSP 미구성으로 진단 불가
    • ./gradlew test 실행 결과: 성공 (BUILD SUCCESSFUL)
    • ./gradlew build 실행 결과: 성공 (BUILD SUCCESSFUL, ktlint/check 포함)