Skip to content

[Feat/#15] API 서버 SSE 연결 기능 구현

곽태영 requested to merge feat/#15 into dev

📋 구현 내용

작업 내용에 대한 개요

  • SSE 연결 API 구현
  • SSE 연결 정보 저장 기능 구현
  • SSE 메시지 전송 기능 구현

🔍 테스트 케이스

  • SseRepository Class findById 성공 테스트
  • SseRepository Class save 성공 테스트
  • MessageService Class connect method 성공 테스트
  • MessageService Class connect method 실패(해당 Email을 가진 사용자가 없을 경우) 테스트
  • MessageService Class connect method 실패(IOException 발생 시) 테스트
  • MessageService Class sendMessageToMemberId method 성공 테스트
  • MessageService Class sendMessageToMemberId method 실패(sse 미연결시) 테스트

📢 코멘트

  • Sse 연결시 DB Connection이 유지되는 문제를 해결하기 위해 OSIV를 false로 설정하였습니다.
  • Exception은 현재 임시로 처리되어 있어서 merge 후 다른 이슈에서 변경하도록 하겠습니다.
  • SseEmitter timeout은 임시로 60초로 설정되어있지만 아직 추가적인 테스트가 필요하다고 생각되어 후에 다른 이슈에서 환경 변수로 설정할 수 있도록 변경하겠습니다.
  • SseRepository 인터페이스를 만든 이유는 후에SseEmitter 저장에 다른 자료구조를 활용할 수도 있을 것이라고 생각되어 만들어놓았습니다.

@Aiden @Endo @woody

Merge request reports