082f255773
요청 스코프 언어 컨텍스트와 인터셉터 추가
...
- Interceptor에서 Accept-Language 헤더를 파싱
- 요청 단위 LangContext에 언어 정보 저장
- 서비스 및 예외 처리 계층에서 언어 컨텍스트 주입
- enum 및 when 기반 언어 정책을 한 곳으로 통합
2025-12-12 16:57:34 +09:00
f83dd47c7c
fix(security-config): 홈 > 콘텐츠 랭킹을 로그인 하지 않아도 조회가 가능하도록 수정
2025-11-17 15:58:23 +09:00
8990bd0722
fix(payverse): webhook 엔드포인트는 로그인 하지 않더라도 실행되도록 수정
2025-09-30 17:37:15 +09:00
3b148d549e
feat(original-app): 앱용 원작 목록/상세 API 및 조회 로직 추가
...
- 공개 목록 API: 미인증 사용자는 19금 비노출, 활성 캐릭터가 1개 이상 연결된 원작만 반환, 총개수+리스트 제공
- 상세 API: 로그인/본인인증 필수, 원작 상세+소속 활성 캐릭터 리스트 반환
2025-09-14 23:27:58 +09:00
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
735f1e26df
feat(chat-character): 최근 대화한 캐릭터 조회 구현 및 메인 API 연동
...
왜: 기존에는 채팅방 미구현으로 최근 대화 리스트를 빈 배열로 응답했음. 채팅방/메시지 기능이 준비됨에 따라 실제 최근 대화 캐릭터를 노출해야 함.
무엇:
- repository: findRecentCharactersByMember JPA 쿼리 추가 (채팅방/참여자/메시지 조인, 최신 메시지 기준 정렬)
- service: getRecentCharacters(member, limit) 구현 (member null 처리 및 페이징 적용)
- controller: /api/chat/character/main에서 인증 사용자 기준 최근 캐릭터 최대 10개 반환
2025-08-11 11:33:35 +09:00
b819df9656
feat(securityConfig): 아래 API는 로그인 하지 않아도 조회할 수 있도록 수정
...
- /api/chat/list
2025-08-08 17:31:21 +09:00
a1533c8e98
feat(character): 캐릭터 메인 API 추가
2025-08-07 22:33:29 +09:00
2659adb7a9
feat: 최근 공지사항 API 추가
2025-07-25 21:44:32 +09:00
046c163e6f
feat: 라이브 메인 API
...
- 기존에 섹션별로 따로따로 호출하던 것을 하나로 합쳐서 호출할 수 있도록 API 추가
2025-07-21 15:14:47 +09:00
7551a19b34
fix: 메인 홈 API
...
- 로그인 하지 않고 조회가 가능하도록 수정
2025-07-14 18:48:57 +09:00
d822a4a8ac
카카오 로그인 추가
2025-04-07 15:58:08 +09:00
602d9625e2
구글 로그인 - 인증없이 실행되도록 수정
2025-04-04 14:05:31 +09:00
c466ecb77c
마케팅 트래킹
...
- 복합키를 AUTO_INCREMENT의 단일키로 변경
- AppLaunch 트래킹 추가
2025-03-26 13:09:09 +09:00
6dd6be183b
라이브 메인
...
- 로그인 없이 조회 가능하도록 수정
2025-03-22 06:10:28 +09:00
0764247447
오디션 메인
...
- 로그인 없이 조회 가능하도록 수정
2025-03-22 05:09:08 +09:00
f9f9b9aab9
FAQ
...
- 로그인 없이 조회가 가능하도록 수정
2025-03-22 04:39:54 +09:00
ec0252bae0
콘텐츠 메인 홈
...
- 로그인 없이 인기 단편 조회가 가능하도록 수정
2025-03-22 03:16:54 +09:00
dc74d203bd
콘텐츠 메인 홈
...
- 로그인 없이 인기 단편 조회가 가능하도록 수정
2025-03-22 02:42:44 +09:00
519c63a023
콘텐츠 메인 홈
...
- 로그인 없이 조회가 가능하도록 수정
2025-03-22 00:52:34 +09:00
4977ee99df
회원가입 로직 개선
...
- 기본 프로필 이미지와 닉네임 자동생성을 통해 회원가입 단계 축소
2025-03-21 00:24:15 +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
9039a7a2d0
taskScheduler에 Primary 설정
2024-12-02 11:02:02 +09:00
a1ef9a4970
콘텐츠 예약 오픈 설정
...
- 스케줄러 설정 수정
- 외부에서 실행되는 endpoint 제거
2024-12-02 10:46:48 +09:00
c1748001d5
콘텐츠 예약 오픈 설정
...
- 스케줄러 설정 추가
2024-12-02 08:58:54 +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
1c8f5ef7ac
구글 인 앱 결제 검증 코드 추가
2024-03-21 16:10:19 +09:00
81a94082aa
redis ssl true
2024-02-19 14:26:42 +09:00
38cf9e453d
쿠폰 시스템
...
- 쿠폰 생성 API 추가
- 쿠폰 리스트 API 추가
2024-01-01 04:46:57 +09:00
0b0be28e1a
콘텐츠 정산 - group by 날짜 수정
2023-11-10 21:39:40 +09:00
9a394b7dae
콘텐츠 메인 API - 코루틴 제거
2023-11-07 17:12:58 +09:00
ce15025c8d
콘텐츠 메인 API - 코루틴 적용
2023-11-07 16:47:25 +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