
백엔드
Websocket을 활용한 채팅 서비스 설계
두줄요약
웹소켓 채팅에서 메시지 본문 대신 사건 알림만 보내고, 실제 데이터는 조회로 처리하는 설계를 소개했습니다. 방 삭제나 나가기 같은 예외 상황은 알림 대상 확보 시점으로 해결했습니다.
핵심 내용
- 실시간 채팅에서 웹소켓과 STOMP를 사용해 방 단위 알림을 전달하는 설계
- 메시지 본문 대신 ‘새 메시지 있음’ 같은 가벼운 사건 알림만 보내고, 실제 데이터는 클라이언트가 재조회하는 구조
- 인증은 웹소켓 연결 시점에 토큰 검증으로 처리하고, 접속 중인 사용자에게만 알림 전송
- 방 나가기·방 삭제처럼 대상이 사라지는 사건은 멤버 정리 전에 수신 대상을 확보하는 방식으로 해결
적용해볼 점
- 실시간 전송과 데이터 조회 경로를 분리해 권한 검사와 데이터 일관성 관리 단순화
- 사건 종류를 명확히 정의해 새 메시지, 읽음, 수정, 삭제 등 여러 상태 변화를 같은 패턴으로 처리
- 서버가 여러 대로 늘어날 경우 접속자 정보 공유 구조 추가 검토
