Skip to content

[Concert] 공연 캐싱 부분 리팩토링 + 공연 날짜 저장 후 캐싱 최신화 반영#200

Merged
Creamcheesepie merged 3 commits into
mainfrom
refactor/#186
Dec 24, 2025
Merged

[Concert] 공연 캐싱 부분 리팩토링 + 공연 날짜 저장 후 캐싱 최신화 반영#200
Creamcheesepie merged 3 commits into
mainfrom
refactor/#186

Conversation

@Creamcheesepie
Copy link
Copy Markdown
Collaborator

🔗 관련 이슈

관련된 이슈 번호를 연결해주세요.
Close #이슈번호 를 쓰면 PR merge 시 자동으로 close 됩니다.

🚀 PR 개요

이 PR이 어떤 변경을 포함하고 있는지 간단히 설명해주세요.

  • 공연 조회수 캐싱이 map을 직접 저장하는 것에서 Redis hash를 사용하게 바꿨습니다.
  • 공연 예매 날짜 저장이 캐싱에 반영되지 않는 오류를 수정하였습니다.
  • Kopis API 호출 저장 로직의 지연시간을 개선하여 7분 걸리는 것을 5분으로 단축했습니다.

📌 변경 사항

주요 변경 내용을 체크리스트 형태로 정리해주세요.

  • 기능 추가
  • 버그 수정
  • 리팩터링
  • 문서 업데이트
  • 테스트 추가/수정

🧪 테스트 방법

변경된 내용을 어떻게 테스트했는지 구체적으로 적어주세요.

  1. Postman 수제 테스팅

⚠️ 참고 사항

리뷰어가 알아야 할 사항이 있다면 자유롭게 작성해주세요.

  • Redis 어려워요... 캐싱 어려워요...

@github-actions
Copy link
Copy Markdown

Test Results

6 tests  ±0   6 ✅ ±0   0s ⏱️ ±0s
3 suites ±0   0 💤 ±0 
3 files   ±0   0 ❌ ±0 

Results for commit d348e48. ± Comparison against base commit fa0b8f1.

@Creamcheesepie Creamcheesepie self-assigned this Dec 24, 2025
@github-actions
Copy link
Copy Markdown

⭐ JaCoCo Coverage

Line Coverage: 5.06%

📄 Coverage Details

Overall Line Coverage: 5.03% (202 covered / 4012 lines)

Package Summary (lowest first)
Package Line % Covered Missed
com/back/web7_9_codecrete_be/domain/plans/controller 0.00% 0 49
com/back/web7_9_codecrete_be/domain/location/controller 0.00% 0 54
com/back/web7_9_codecrete_be/domain/community/post/service 0.00% 0 45
com/back/web7_9_codecrete_be/global/rsData 0.00% 0 11
com/back/web7_9_codecrete_be/domain/chats/entity 0.00% 0 4
com/back/web7_9_codecrete_be/domain/location/entity 0.00% 0 15
com/back/web7_9_codecrete_be/global/scheduler 0.00% 0 11
com/back/web7_9_codecrete_be/domain/auth/entity 0.00% 0 0
com/back/web7_9_codecrete_be/global/websocket 0.00% 0 10
com/back/web7_9_codecrete_be/domain/auth/service 0.00% 0 136
com/back/web7_9_codecrete_be/domain/plans/service 0.00% 0 362
com/back/web7_9_codecrete_be/global/initData 0.00% 0 54
com/back/web7_9_codecrete_be/domain/users/controller 0.00% 0 26
com/back/web7_9_codecrete_be/domain/email/entity 0.00% 0 6
com/back/web7_9_codecrete_be/domain/community/comment/service 0.00% 0 17
com/back/web7_9_codecrete_be/domain/auth/controller 0.00% 0 24
com/back/web7_9_codecrete_be/domain/community/comment/controller 0.00% 0 7
com/back/web7_9_codecrete_be/domain/artists/controller 0.00% 0 31
com/back/web7_9_codecrete_be/domain/community/comment/entity 0.00% 0 12
com/back/web7_9_codecrete_be/domain/community/post/controller 0.00% 0 20
com/back/web7_9_codecrete_be/global/aspect 0.00% 0 4
com/back/web7_9_codecrete_be/global/wikidata 0.27% 1 374
com/back/web7_9_codecrete_be/domain/artists/service 0.32% 3 922
com/back/web7_9_codecrete_be/global/musicbrainz 0.46% 1 215
com/back/web7_9_codecrete_be/domain/users/service 0.97% 1 102
com/back/web7_9_codecrete_be/domain/email/service 1.61% 1 61
com/back/web7_9_codecrete_be/global/flo 1.85% 1 53
com/back/web7_9_codecrete_be/domain/chats/service 1.92% 1 51
com/back/web7_9_codecrete_be/domain/concerts/controller 2.50% 1 39
com/back/web7_9_codecrete_be/domain/concerts/entity 3.26% 3 89
com/back/web7_9_codecrete_be/domain/concerts/repository 3.45% 1 28
com/back/web7_9_codecrete_be/global/storage 3.57% 2 54
com/back/web7_9_codecrete_be/domain/concerts/service 4.78% 25 498
com/back/web7_9_codecrete_be/domain/artists/entity 6.45% 4 58
com/back/web7_9_codecrete_be/global/rq 9.80% 5 46
com/back/web7_9_codecrete_be/domain/users/util 14.29% 1 6
com/back/web7_9_codecrete_be/domain/community/post/entity 16.67% 6 30
com/back/web7_9_codecrete_be/domain/chats/controller 20.00% 2 8
com/back/web7_9_codecrete_be/domain/plans/entity 21.88% 21 75
com/back/web7_9_codecrete_be/domain/users/entity 23.08% 12 40
com/back/web7_9_codecrete_be/global/security 27.62% 29 76
com/back/web7_9_codecrete_be/global/spotify 35.71% 5 9
com/back/web7_9_codecrete_be/domain/location/service 43.07% 59 78
com/back/web7_9_codecrete_be/global/doc 100.00% 17 0
Lowest Covered Classes (Top 20)
Class Line % Covered Missed
com.back.web7_9_codecrete_be.domain.plans.service.PlanService 0.00% 0 362
com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 97
com.back.web7_9_codecrete_be.domain.auth.service.AuthService 0.00% 0 73
com.back.web7_9_codecrete_be.global.initData.BaseInitData 0.00% 0 54
com.back.web7_9_codecrete_be.domain.plans.controller.PlanController 0.00% 0 49
com.back.web7_9_codecrete_be.domain.location.controller.KakaoApiController 0.00% 0 43
com.back.web7_9_codecrete_be.domain.concerts.entity.Concert 0.00% 0 42
com.back.web7_9_codecrete_be.domain.artists.entity.Artist 0.00% 0 40
com.back.web7_9_codecrete_be.domain.plans.entity.Schedule 0.00% 0 37
com.back.web7_9_codecrete_be.global.security.JwtTokenProvider 0.00% 0 37
com.back.web7_9_codecrete_be.domain.community.post.service.PostService 0.00% 0 36
com.back.web7_9_codecrete_be.domain.users.entity.User 0.00% 0 31
com.back.web7_9_codecrete_be.domain.artists.controller.ArtistsController 0.00% 0 31
com.back.web7_9_codecrete_be.domain.location.service.LocationService 0.00% 0 30
com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertPlace 0.00% 0 29
com.back.web7_9_codecrete_be.domain.chats.service.ChatPolicyService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.plans.entity.Plan 0.00% 0 27
com.back.web7_9_codecrete_be.domain.auth.service.TokenService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.users.controller.UserController 0.00% 0 26
com.back.web7_9_codecrete_be.domain.auth.controller.AuthController 0.00% 0 24
Changed Classes (from this PR)
Source (PR) Class Prefix Line % Covered Missed
src/main/java/com/back/web7_9_codecrete_be/global/scheduler/ConcertScheduler.java com.back.web7_9_codecrete_be.global.scheduler.ConcertScheduler 0.00% 0 8
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/repository/ConcertRedisRepository.java com.back.web7_9_codecrete_be.domain.concerts.repository.ConcertRedisRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/service/ConcertService.java com.back.web7_9_codecrete_be.domain.concerts.service.ConcertService 0.95% 1 104
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/service/KopisApiService.java com.back.web7_9_codecrete_be.domain.concerts.service.KopisApiService 4.98% 15 286

🔗 Full HTML report: See artifact jacoco-full-html on this run → https://github.com/prgrms-web-devcourse-final-project/WEB7_9_codecrete_BE/actions/runs/20481273907

@Creamcheesepie Creamcheesepie added Bug Something isn't working Refactor labels Dec 24, 2025
Copy link
Copy Markdown
Collaborator

@larama-C larama-C left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

Copy link
Copy Markdown
Collaborator

@ys0221 ys0221 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!!

Copy link
Copy Markdown
Collaborator

@tobbot16 tobbot16 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

// 공연 정보 가져오기
public ConcertDetailResponse getCachedConcertDetail(Long concertId) {
ConcertDetailResponse concertDetailResponse = getConcertDetailResponse(concertId);
if (concertDetailResponse == null) return null;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

null 반환보다 예외처리를 하는게 좋아보입니다!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 처리 부분을 가져다 쓰는 서비스 로직에서 처리가 됩니다!

@Creamcheesepie Creamcheesepie merged commit ddce6fe into main Dec 24, 2025
2 checks passed
@Creamcheesepie Creamcheesepie deleted the refactor/#186 branch December 24, 2025 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working Refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Concert] 공연 캐싱기능 리펙토링

4 participants