Skip to content

Conversation

@loseminho
Copy link
Collaborator

📌 개요

  • Redis N+1 최적화
  • 이전에 남겨 두었던 불필요한 코드 정리 (Deprecated 메서드 제거)
  • currentParticipants 필드 제거
  • 중복 검증 로직 정리
  • WebSocket STOMP 엔드포인트 문서화
  • RoomRedisService.java 삭제 가능 확인
  • ROOM_NOT_JOINABLE 에러 코드 추가

🔨 작업 내용

1. Redis N+1 최적화 (문제 2)

  • RedisSessionStore.getRoomUserCounts() 추가 - Redis Pipeline 사용
  • RoomParticipantService.getParticipantCounts() 추가
  • RoomService.toRoomResponseList() 수정 - 일괄 조회 사용
  • RoomService.toRoomResponseListWithMasking() 수정 - 일괄 조회 사용
  • RoomService.toMyRoomResponseList() 수정 - 일괄 조회 사용
    성능 개선:
  • 방 100개 조회 시: Redis 호출 100번 → 1번으로 감소 (99% 감소)

2. 코드 정리

  • Room.currentParticipants 필드 제거
  • Room.incrementParticipant(), decrementParticipant() 메서드 제거
  • Room.isFull() 메서드 제거 → getMaxCapacity()로 대체
  • RoomRepository.updateCurrentParticipants() Deprecated 메서드 제거
  • RoomMemberRepositoryCustom Deprecated 메서드 7개 제거:
    • findOnlineMembersByRoomId()
    • countActiveMembersByRoomId()
    • countByRoomIdAndRole()
    • leaveRoom()
    • disconnectAllMembers()
    • RoomMemberRepositoryImpl 구현체에서도 제거
    • RoomService.updateRoomSettings() - Redis 기반 정원 체크로 수정

3. 중복 검증 로직 정리

  • RoomService.joinRoom() 메서드 리팩토링
  • 중복 체크 제거 및 로직 단순화
  • 명확한 에러 메시지 반환

4. WebSocket 문서화

  • @MessageMapping("/rooms/{roomId}/join") - @deprecated 추가
  • @MessageMapping("/rooms/{roomId}/leave") - @deprecated 추가
  • REST API 사용 권장 주석 추가

🔗 관련 이슈

Closes #193

📝 참고 사항

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@loseminho loseminho self-assigned this Oct 8, 2025
@github-actions github-actions bot changed the title Refactor: Redis 로직 최적화 및 중복 검증 로직 제거 Refactor: Redis 로직 최적화 및 중복 검증 로직 제거 (#193) Oct 8, 2025
@loseminho loseminho merged commit 829369b into dev Oct 8, 2025
3 checks passed
@github-actions github-actions bot deleted the refactor/193 branch October 8, 2025 05:28
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.

4 participants