websocket deploy 실시간 기능은 프론트와 영구 연결 서버를 분리해 운영한다 Vercel의 프론트 배포, WebSocket 서버, 브로커, 연결 정책을 따로 보면 장애 범위와 비밀값 노출을 줄일 수 있다.
경계 맡는 일 운영 위험 검증
Vercel frontend화면 배포 페이지 렌더링, 인증 화면, 공개 소켓 URL 주입을 맡는다. 서버 비밀값을 NEXT_PUBLIC 이름으로 넣으면 브라우저에 노출된다. 번들에 토큰이 없고 소켓 URL만 있는지 확인한다.
Socket server영구 연결 룸, 브로드캐스트, 인증된 연결, 재연결 이벤트를 처리한다. 서버리스 함수처럼 짧은 실행 환경에 맡기면 연결이 유지되지 않는다. 장시간 연결, 재연결, 연결 종료 원인을 로그로 본다.
Broker인스턴스 동기화 Redis Pub/Sub 같은 계층으로 여러 서버의 룸 메시지를 맞춘다. 브로커가 없으면 인스턴스가 갈라져 일부 사용자만 메시지를 받는다. 서버를 둘 이상 띄워 서로 다른 연결에도 같은 메시지가 가는지 본다.
TLS · CORS접근 정책 wss 연결, 허용 origin, 쿠키와 토큰 전달 범위를 정한다. 혼합 콘텐츠나 넓은 CORS는 연결 실패와 보안 문제를 만든다. HTTPS 페이지에서 wss로 연결되고 허용 도메인만 통과한다.
Monitor운영 관측 연결 수, 메시지 처리량, 에러, 지연 시간을 추적한다. 장애가 생겨도 HTTP 로그만 보면 실시간 단절 원인을 놓친다. 연결 증가, 방 입장, 브로드캐스트, 재연결 지표를 대시보드에 둔다.