Skip to content

Conversation

@jueunk617
Copy link
Collaborator

📌 개요

WebRTC 시그널링 서버의 효율성, 유연성, 유지보수성을 높이고, 1:1 메시징이 정상 동작하도록 오류를 수정했습니다.

🔨 작업 내용

시그널링 방식 개선 (Broadcast → Unicast)

  • offer, answer 등 1:1 시그널링 메시지를 방 전체에 브로드캐스트하는 대신, 특정 대상에게만 1:1로 전송하도록 변경하여 불필요한 트래픽과 클라이언트 부하를 크게 줄였습니다.

ICE 서버 설정 외부화

  • 하드코딩 되어있던 STUN 서버 정보를 application.yml로 분리하고, @ConfigurationProperties를 이용해 주입받도록 수정했습니다.

컨트롤러 구조 개선

  • WebRTCSignalingController 내의 반복적인 try-catch 구문을 @MessageExceptionHandler로 중앙화하고, 인증 정보 추출 로직을 WebSocketAuthHelper로 통합하여 코드 중복을 제거하고 가독성을 향상시켰습니다.

1:1 메시징 오류 수정

  • convertAndSendToUser 메서드 호출 시 sessionId 대신 username을 사용하도록 수정하여, 메시지가 정상적으로 대상 클라이언트에게 전달되도록 버그를 해결했습니다.
  • 이를 위해 WebSocketSessionInfo에 username 필드를 추가하고, 관련 서비스 로직 및 테스트 코드를 모두 수정했습니다.

🔗 관련 이슈

Closes #223

📝 참고 사항

  • WebRTC 시그널링 대상이 오프라인일 때를 처리하기 위해 ErrorCode에 WS_TARGET_OFFLINE을 추가했습니다.
  • media/toggle은 모든 참여자가 알아야 하는 상태 변경이므로 기존 브로드캐스트 방식을 유지했습니다.

✅ 체크리스트

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

@github-actions github-actions bot changed the title Refactor: webRTC 도메인 리팩토링 Refactor: webRTC 도메인 리팩토링 (#223) Oct 10, 2025
@jueunk617 jueunk617 merged commit ef667dc into dev Oct 10, 2025
3 checks passed
@github-actions github-actions bot deleted the Refactor/223 branch October 10, 2025 07:39
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