1 . 프로젝트 개요

이상민·2025년 5월 18일
0
post-thumbnail

실시간 채팅 서비스 프로젝트 소개

주요 기능

사용자 인증

  • ✅ 회원가입 / 로그인 기능
  • JWT 토큰 기반 로그인 인증 시스템
  • ✅ 보안 고려한 세션 유지 및 인증 처리

채팅 기능

실시간 채팅

  • WebSocket + STOMP 기반의 실시간 메시지 송수신
  • Redis Pub/Sub 기반의 확장성 고려

1:1 채팅

  • 회원 목록에서 채팅할 회원 선택
  • 선택한 상대와 1:1 채팅방 생성
  • 해당 채팅방은 두 사람만 참여 가능
  • 채팅방은 재입장 가능하며 기록 유지

단체 채팅방

  • 누구든지 단체 채팅방 개설 가능
  • 전체 채팅방 목록에서 원하는 방을 선택하여 자유롭게 참여
  • 그룹 채팅방은 여러 명이 동시에 참여 가능
  • 그룹 채팅방 나가기 기능 제공
  • 모든 인원이 나가면 자동 삭제 처리

내 채팅 목록 (MyPage)

  • 내가 참여 중인 채팅방 목록 조회
  • 채팅방별 읽지 않은 메시지 개수 확인 가능
  • 채팅방에서 나가면 목록에서 제외

기술 스택 및 설계

계층사용 기술사용 이유
프론트엔드Vue 3경량 SPA 프레임워크, 실시간 채팅의 특성상 새로 고침 없이 새로운 채팅을 화면에 랜더링 해야함, WebSocket 연동이 쉬움
백엔드Java 17, Spring Boot 3.4안정적인 엔터프라이즈 개발, WebSocket, Redis 등 다양한 기술과의 통합 용이
DBMySQL안정적이고 범용적인 관계형 데이터베이스
인증JWT기존 세션 기반 로그인은 서버가 상태를 관리해야 하며 분산 서버환경에서는 적합하지 않음 따라서 JWT를 이용해 클라이언트가 인증 정보를 직접 가지고 있도록 해 서버는 상태를 기억할 필요 없음
실시간 통신WebSocket, STOMPHTTP는 비실시간, 요청/응답 기반이기 때문에 채팅과 맞지 않음 , WebSocket은 연결을 유지한 채 양방향 통신 가능 → 실시간 메시지 송수신에 적합
확장성Redis Pub/Sub단일 서버에서만 동작한다면 WebSocket으로 충분하지만, 다중 서버 환경에서는 메시지 동기화가 필요함 또한 Redis의 Pub/Sub는 여러 서버 간에 메시지를 브로드캐스트할 수 있어 수평 확장에 적합
profile
잘하자

0개의 댓글