목록 보기
Websocket을 활용한 채팅 서비스 설계
백엔드

Websocket을 활용한 채팅 서비스 설계

넥스트리
넥스트리
2026년 7월 24일

두줄요약

웹소켓 채팅에서 메시지 본문 대신 사건 알림만 보내고, 실제 데이터는 조회로 처리하는 설계를 소개했습니다. 방 삭제나 나가기 같은 예외 상황은 알림 대상 확보 시점으로 해결했습니다.

핵심 내용

  • 실시간 채팅에서 웹소켓과 STOMP를 사용해 방 단위 알림을 전달하는 설계
  • 메시지 본문 대신 ‘새 메시지 있음’ 같은 가벼운 사건 알림만 보내고, 실제 데이터는 클라이언트가 재조회하는 구조
  • 인증은 웹소켓 연결 시점에 토큰 검증으로 처리하고, 접속 중인 사용자에게만 알림 전송
  • 방 나가기·방 삭제처럼 대상이 사라지는 사건은 멤버 정리 전에 수신 대상을 확보하는 방식으로 해결

적용해볼 점

  • 실시간 전송과 데이터 조회 경로를 분리해 권한 검사와 데이터 일관성 관리 단순화
  • 사건 종류를 명확히 정의해 새 메시지, 읽음, 수정, 삭제 등 여러 상태 변화를 같은 패턴으로 처리
  • 서버가 여러 대로 늘어날 경우 접속자 정보 공유 구조 추가 검토

다음 읽기

#WebSocket 주제를 이어서 읽기

Loopin 메신저 개발기

오래된 메신저를 WebSocket과 STOMP 기반으로 재구축한 사례를 소개했습니다. Presence를 RDB로 관리해 단순한 구조와 운영 효율을 확보한 점이 핵심입니다.

넥스트리
넥스트리
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...