Skip to content

Conversation

@ShipFriend0516
Copy link
Member

@ShipFriend0516 ShipFriend0516 commented Nov 11, 2024

Note

작성자: 서정우
작성 날짜: 2024.11.11
관련 에픽: #11

공감 기능을 구현했습니다. 수민님이 시그널링 서버 코드를 잘 만들어주셔서 참고해서 시그널링 서버를 중개해서 공감 이벤트를 수신하고 세션에 재발신하도록 하는 방식으로 구현했습니다.
공감 기능 자체는 금방 구현했으나 클라이언트에서 비디오컴포넌트 깜빡임 이슈가 있어서 렌더링 최적화를 하느라 시간이 생각보다 지체되었네요..

그래도 성과로는 비디오 컴포넌트 렌더링 최적화와 스트림 송출 책임 분리를 얻었습니다.

✅ 체크리스트

  • 코드가 정상적으로 작동하는지 확인했습니다.
  • 주요 변경사항에 대한 설명을 작성했습니다.
  • 코드 스타일 가이드에 따라 코드를 작성했습니다.

🧩 작업 내용

  • 공감 기능 구현
  • 비디오 컴포넌트 구조 최적화
  • 깜빡임 이슈 해결

📝 작업 상세 내역

공감 기능

  • 현재는 thumbs_up 리액션만 존재하지만 추후 확장을 고려해 reaction 이벤트에 body에 roomId와 reactionType을 보내도록 구현
    공감기능 구현 완료

비디오 컴포넌트 최적화

  • P2P 비디오 컴포넌트 렌더링 과정에서 useMemo 훅을 사용하여 peers의 변동이 있을때만 리렌더링 하도록 최적화
  • VideoContainer 컴포넌트에서 ref를 전달받던 것을 stream을 전달 받아 하위에서 ref를 사용하도록 구조 변경
  • VideoContainer 컴포넌트 내부 video 태그와 스트림 송출의 역할을 DisplayMediaStream 컴포넌트로 분리

깜빡임 이슈 해결

  • gif를 붙이고 싶은데 용량이 커서 올라가지 않네요..
  • 노션에 정리해뒀습니다.

📌 테스트 및 검증 결과

  • 정상 작동 확인했습니다.

💬 다음 작업 또는 논의 사항

  • 공감 띄우는 방식은 이모지로 했으나 다른 의견이 있으면 말씀해주시면 조율해보겠습니다.

📎 참고 자료 (선택)

🐥 리뷰 받고 싶은 포인트(선택)

  • �백엔드 로직이 간단해 직접 구현했는데 백엔드 코드에 문제가 없는지 리뷰 부탁드립니다.

- senderId, reaction 을 보내서 클라이언트에서 처리할 수 있도록 구현
- 시행착오를 많이 하느라 커밋을 나누지 못했다.
- 공감 기능 구현은 금방했는데 깜빡임 문제해결을 하느라 오래걸렸다.
- ref를 전달하는 방식에서 stream을 전달하는 방식으로 수정
- stream 송출만을 담당하는 DisplayMediaStream 컴포넌트 분리
@ShipFriend0516 ShipFriend0516 self-assigned this Nov 11, 2024
@ShipFriend0516 ShipFriend0516 changed the title [Feat] 공감 기능 구현 및 깜빡임 이슈 해결 [Feat] 공감 기능 구현, 렌더링 최적화와 깜빡임 이슈 해결 Nov 11, 2024
@ShipFriend0516 ShipFriend0516 linked an issue Nov 11, 2024 that may be closed by this pull request
3 tasks
Copy link
Member

@yiseungyun yiseungyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

화면 깜빡임 트러블슈팅 흥미롭네요. 👍 고수.
수고많으셨습니다. ☃️

@twalla26 twalla26 merged commit 68fbbd4 into boostcampwm-2024:dev Nov 12, 2024
@ShipFriend0516 ShipFriend0516 deleted the feature/thumbs-up branch November 12, 2024 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

사용자는 공감 기능을 사용할 수 있다.

4 participants