Skip to content

Dev#131

Merged
jeonggiju merged 13 commits intomainfrom
dev
Jan 29, 2026
Merged

Dev#131
jeonggiju merged 13 commits intomainfrom
dev

Conversation

@jeonggiju
Copy link
Copy Markdown
Contributor

No description provided.

userjin2123 and others added 13 commits January 26, 2026 19:41
- Heartbeat에서 Redis 호출 제거, 인메모리 lastActiveTime만 갱신
- 하트비트 시 마다 갱신하면 유저 증가시 처리량 폭발하는걸 대비하여 배치로 처리하도록 결정
- 30초 주기 배치로 JWT 검증 및 Redis TTL 일괄 갱신
- JWT 만료 시 WebSocket 강제 종료 (CloseStatus 4001)
- WebSocketSession 보관을 위한 Holder/Decorator 추가
…에 정리 로직추가

- WebSocketSessionHolder에 이미 웹소켓 세션이 있는데 이를 세션맵핑에 까지 저장하면 유지보수 복잡도 올라가고 SRP 위반이기에 Holder에서만 실제 웹소켓 세션 정보를 가지도록 변경

- 웹소켓 서버가 비정상 종료되었을 때 레디스 Sorted Set에 콘텐츠별 시청 세션을 담는 곳에 시청자 수가 정리안되는 문제 발견, 재시작시 이를 해결하기 위해서 비정상 세션들 삭제
- content에서 시청자수가 1->0으로 변경되는 순간 레디스의 Zset의 멤버가 0 이 되면서 레디스가 해당 Zset를 삭제하는데 동기화 로직에서 Zset에 있는 멤버만 동기화를 시도해서 1 -> 0으로 동기화되지 못하고 1로 남는 버그가 발생 -> 동기화를 할 때 실제 활성화된 콘텐츠의 시청자를 모두 동기화 하도록 변경

- 기존 redis Zset 의존 -> ES에서 시청자수가 0 이상인 콘텐츠에서 Redis 키가 없으면 0으로 초기화
… 뒤로 갈수록 더 낮은 가중치로 계산됨

- 종이의 집 검색을 예시로 들면 종 -> 종이 -> 종이의 -> 종이의 집 검색순서로 각각 '종', '종이', '종이', '종이, 집' 으로 토큰이 수집되는데 마지막 종이의 -> 종이의 집 으로 넘어갈 때 앞에 단어에 우선순위를 주지 않으면 종이 와 집 토큰이 같은 점수를 가져서 검색결과가 뒤섞일 수 있기 때문에 UX에 영향을 줄 수 있음 그래서 이전 검색결과에서 크게 벗어나지 않게 갱신되도록 변경
…n-Batch-Refresh#117

[WatchingSession] 레디스 TTL 배치로 갱신, 레디스나 웹소켓 서버 비정상 종료시 대응 추가
…-stale-cleanup#126

[Content] 콘텐츠 조회 시 시청자수 동기화 버그 수정
[Notification] 활성 대화창의 알림 전송 버그 수정
…ntext-boost#129

[Content] 콘텐츠 키워드 검색 개선
@jeonggiju jeonggiju merged commit a2b96f2 into main Jan 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants