client lifecycle
연결, 이벤트 등록, cleanup, 재연결 상태 표시
렌더마다 새 socket 생성
Socket.IO 클라이언트, 별도 서버, Vercel 배포 제약이 만나는 지점을 운영 계약으로 정리한다.
해야 할 일: 연결, 이벤트 등록, cleanup, 재연결 상태 표시
피할 일: 렌더마다 새 socket 생성
해야 할 일: room, broadcast, disconnect, broker 관리
피할 일: 함수 호출 수명에 연결 저장
해야 할 일: CORS, TLS, env, health check, scale-out 검증
피할 일: 로컬 포트 전제
WebSocket은 “연결됐다”에서 끝나지 않는다. 끊김, 재연결, 여러 서버, 배포 교체 상황에서도 같은 room과 메시지 계약이 유지돼야 한다.