You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Refactor] RTC Host·Viewer Session 및 LiveKit Lifecycle 재검증 #43
Host / Viewer의 LiveKitConnection 상태가 각각 실제 사용처 한 곳에서만 소비되고 있음.
현재 RTC Store의 liveKitConnection은 Viewer에서만 사용되며, Host는 동일한 정보를 camera-page의 broadcastConnection 로컬 상태로 함께 관리하고 있어 전역 상태로 유지하는 이점이 낮음.
공통 RtcLiveKitConnection 타입은 유지하되, Host / Viewer의 connection 상태는 각 lifecycle 소유 범위에 맞게 로컬 상태로 관리하고 RTC Store에서는 제거하는 방향을 검토
Host 페이지 이탈 시 RTC 종료 lifecycle이 일관되게 보장되는지 재검증 필요.
현재 camera-page의 뒤로가기 / close 경로는 router.back()으로 바로 이탈하며, RtcHostLiveKitPage unmount cleanup에서 Publisher 및 LiveKit Room은 정리되지만 서버 RTC Room 종료(endRoom)와 hostSession 정리는 수행되지 않음.
deliverResult에서는 화면 비활성 상태에서 결과 전송을 막고 재연결하지 않도록 guard하고 있으므로, 페이지 이탈 자체도 명시적인 종료 플로우(confirm -> publisher/track cleanup -> room disconnect -> server room end -> session clear -> navigation)로 통합하는 방향 검토
Viewer 페이지 이탈 시 종료 lifecycle도 Host와 동일한 기준으로 재검증 필요.
현재 LiveKit 진입 전에는 handleCancelBeforeLiveKit에서 서버 leaveRoom 호출 후 Viewer Session을 정리하지만, LiveKit 진입 후에는 ViewerRoomContent.handleCancel에서 LiveKit room.disconnect() 후 finishViewerExit으로 Session만 정리하고 서버 leaveRoom은 호출하지 않음.
Viewer의 페이지 이탈 정책을 server leave -> LiveKit disconnect -> session clear -> navigation과 같이 일관된 종료 플로우로 통합할지 검토 필요
Activity
lioba00700 commentedon Sep 2, 2026
pages 레이어의 camera 슬라이스에 페이지 컴포넌트가 아닌 컴포넌트도 함께 구성되어있음
-> 각 파일의 책임 확인 후 알맞는 레이어 레벨로 이동하는 작업이 필요함
lioba00700 commentedon Sep 2, 2026
camera-page컴포넌트의 코드가 700줄 이상으로 비대함.대부분이 비즈니스 로직이므로, 커스텀 훅 등을 정의하여 책임을 분리하고, 각 기능의 응집도를 높이는 작업이 필요함
lioba00700 commentedon Sep 2, 2026
SharingCameraSheet(방 공유 바텀시트)를 페이지 컴포넌트에서 분리하는 작업을 고려lioba00700 commentedon Sep 2, 2026
handleOpenShare방 생성 요청에서방 만료 시간 파라미터
에서 매직 넘버 60을 상수로 선언해서 사용하도록 수정
lioba00700 commentedon Sep 2, 2026
Host / Viewer의
LiveKitConnection상태가 각각 실제 사용처 한 곳에서만 소비되고 있음.현재 RTC Store의
liveKitConnection은 Viewer에서만 사용되며, Host는 동일한 정보를camera-page의broadcastConnection로컬 상태로 함께 관리하고 있어 전역 상태로 유지하는 이점이 낮음.공통
RtcLiveKitConnection타입은 유지하되, Host / Viewer의 connection 상태는 각 lifecycle 소유 범위에 맞게 로컬 상태로 관리하고 RTC Store에서는 제거하는 방향을 검토lioba00700 commentedon Sep 2, 2026
Host 페이지 이탈 시 RTC 종료 lifecycle이 일관되게 보장되는지 재검증 필요.
현재
camera-page의 뒤로가기 / close 경로는router.back()으로 바로 이탈하며,RtcHostLiveKitPageunmount cleanup에서 Publisher 및 LiveKit Room은 정리되지만 서버 RTC Room 종료(endRoom)와hostSession정리는 수행되지 않음.deliverResult에서는 화면 비활성 상태에서 결과 전송을 막고 재연결하지 않도록 guard하고 있으므로, 페이지 이탈 자체도 명시적인 종료 플로우(confirm -> publisher/track cleanup -> room disconnect -> server room end -> session clear -> navigation)로 통합하는 방향 검토lioba00700 commentedon Sep 2, 2026
Viewer 페이지 이탈 시 종료 lifecycle도 Host와 동일한 기준으로 재검증 필요.
현재 LiveKit 진입 전에는
handleCancelBeforeLiveKit에서 서버leaveRoom호출 후 Viewer Session을 정리하지만, LiveKit 진입 후에는ViewerRoomContent.handleCancel에서 LiveKitroom.disconnect()후finishViewerExit으로 Session만 정리하고 서버leaveRoom은 호출하지 않음.Viewer의 페이지 이탈 정책을
server leave -> LiveKit disconnect -> session clear -> navigation과 같이 일관된 종료 플로우로 통합할지 검토 필요