Commit Graph

27 Commits

Author SHA1 Message Date
0574f4f629 feat(cache): 인기 캐릭터 조회에 윈도우 기반 동적 캐시 키 적용
- ChatCharacterService.getPopularCharacters()에 @Cacheable 추가
- 키: popular-chat-character:<windowStartEpoch>:<limit>
- 윈도우(매일 20:00 UTC) 전환 시 자동으로 신규 키 사용 → 전일 순위 캐시와 분리 보장

Why: 동일 윈도우 내 반복 요청의 DB 부하를 줄이고, 경계 전환 시 자연스러운 캐시 갱신을 보장.
2025-09-14 17:43:53 +09:00
dd0a1c2293 fix(chat-character): 인기 캐릭터
- 캐시 제거
2025-09-14 16:46:56 +09:00
83a1316a64 feat(character): UTC 20시 경계 기반 인기 캐릭터 집계 구현 및 캐시 적용
- 집계 기준을 "채팅방 전체 메시지 수"로 변경하여 캐릭터별 인기 순위 산정
- Querydsl `PopularCharacterQuery` 추가: chat_message → chat_participant(CHARACTER) → chat_character 조인
- 시간 경계: UTC 20:00 기준 [windowStart, nextBoundary) 구간 사용(배타적 종료 `<`)
- `ChatCharacterService.getPopularCharacters`에 @Cacheable 적용
  - cacheNames: `popularCharacters_24h`
  - key: `RankingWindowCalculator.now('popular-chat-character').cacheKey`
  - 상위 20개 기본, `loadCharactersInOrder`로 랭킹 순서 보존
- `RankingWindowCalculator`: 경계별 동적 키 생성(`popular-chat-character:{windowStartEpoch}`) 및 윈도우 계산
- `RedisConfig`: 24시간 TTL 캐시 `popularCharacters_24h` 추가(문자열/JSON 직렬화 지정)
- `ChatCharacterController`: 메인 API에 인기 캐릭터 섹션 연동

WHY
- 20시(UTC) 경계 변경 시 키가 달라져 첫 조회에서 자동 재집계/재캐싱
- 방 전체 참여도를 반영해 보다 직관적인 인기 지표 제공
- 캐시(24h TTL)로 DB 부하 최소화, 경계 전환 후 자연 무효화
2025-09-11 18:06:40 +09:00
046c163e6f feat: 라이브 메인 API
- 기존에 섹션별로 따로따로 호출하던 것을 하나로 합쳐서 호출할 수 있도록 API 추가
2025-07-21 15:14:47 +09:00
368c647151 Redisson Config
- 최소 유휴 연결 0, DNS 모니터링 간격 30초로 변경
2024-12-02 20:26:46 +09:00
1ca676ce0b Redisson Config
- 최소 유휴 연결 0, DNS 모니터링 간격 30초로 변경
2024-12-02 20:25:07 +09:00
b33945d21c Redisson Config
- ssl 설정
2024-12-02 19:48:51 +09:00
1649c08356 예약 업로드 오픈 스케줄러
- 서버 한 대에서만 실행되도록 Redisson을 이용하여 분산락 적용
2024-12-02 19:18:28 +09:00
e470e70612 콘텐츠 예약 오픈 설정
- 분산락 제거, 서버가 여러대라면 여러번 호출될 수 있음
2024-12-02 08:40:38 +09:00
05592f94b9 스프링 스케줄러를 이용하여 콘텐츠 예약 오픈 설정 2024-12-02 08:22:16 +09:00
b7d7afb8a5 redis를 이전하기 위해 설정했던 모든 커밋 Revert 2024-11-24 01:23:41 +09:00
e7232db2f3 Redis 패키지 별도로 분리하여 다중 구성이 용이하도록 수정 2024-11-23 21:15:14 +09:00
157e3a39b6 여러대의 Redis와 Valkey에 연결할 수 있도록 환경설정 2024-11-22 17:54:23 +09:00
354ae68dd1 Redis connection 수정 2024-11-20 18:43:19 +09:00
234a46d2ac Redis connection 수정 2024-11-20 18:30:24 +09:00
5c7bf8086c Redis connection
- clientOption 변수로 분리
2024-11-20 16:48:08 +09:00
dd614c07e2 Redis connection
- 클러스터 모드 설정
2024-11-18 14:11:09 +09:00
81a94082aa redis ssl true 2024-02-19 14:26:42 +09:00
0b0be28e1a 콘텐츠 정산 - group by 날짜 수정 2023-11-10 21:39:40 +09:00
b3d66151bc redis cache manager - serializeKeysWith 추가 2023-11-02 03:12:44 +09:00
1cf70c25a9 redis cache manager - serializeValuesWith 추가 2023-11-02 03:02:28 +09:00
695c8cbad8 redis cache manager - serializeValuesWith 추가 2023-11-02 02:58:12 +09:00
1c7fdfac69 콘텐츠 메인 캐싱 전략 변경 - repository 에 있던 @Cacheable 을 service 코드로 이동 2023-10-27 01:08:40 +09:00
3ec16b5045 현재 사용하지 않는 API 제거, 캐시 전략 변경을 위해 @Cacheable 제거 2023-10-26 18:42:22 +09:00
e5c85287bb 캐시 적용 - 추천라이브, 이벤트 리스트, 2주 이내 콘텐츠 업로드 한 크리에이터, 콘텐츠 상단 배너, 2023-10-17 17:58:24 +09:00
cd4b165f90 인기 콘텐츠, 큐레이션 조회로직에 Cache 적용 2023-10-17 16:15:52 +09:00
f81f07bd05 시큐리티 설정
유저 API - 로그인, 회원가입, 계정정보 추가
2023-07-23 03:28:06 +09:00