백엔드
스프린트 1회차
- ✅ Spring Boot 프로젝트 생성 및 의존성(Web, WebSocket, Redis 등) 설정
- ✅ WebSocketConfig 클래스 작성 (@EnableWebSocketMessageBroker, STOMP 엔드포인트
/ws/chat, 브로커 prefix /topic, /app 설정)
- ✅ Redis 연동 Bean 설정 (
RedisConnectionFactory, RedisTemplate, RedisMessageListenerContainer 등)
- ✅ 메시지 직렬화/역직렬화 전략 구현 (Jackson2JsonRedisSerializer 사용
- ✅ 메시지 발행(Publish)을 위한 Redis 서비스 로직 구현 (RedisPublisher 클래스)
- ✅ 메시지 구독(Subscribe)을 위한 Redis 리스너 어댑터 구현 (RedisSubscriber 클래스)
- ✅
ChatMessage DTO 정의 (채팅방 ID, 발신자 정보, 내용, 타입, 시간 필드 등)
- ✅
application.properties 또는 application.yml에 환경별 Redis 접속 정보 분리 설정
스프린트 2회차
- ✅ 기본적인 예외 처리 및 에러 로깅 설정 (RedisSubscriber에서 try-catch와 로깅)
- ✅
@MessageMapping 어노테이션 사용, STOMP 메시지 수신 컨트롤러 구현 (/chat/message)
- ✅ 수신된 메시지를
ChatMessage DTO로 변환 후, 해당 Redis Topic으로 발행하는 로직 구현
- ✅ Redis 리스너에서 구독한 메시지를 받아, 해당 채팅방 STOMP 경로(
/topic/chat/room/{roomId})로 브로드캐스팅하는 로직 구현 (SimpMessagingTemplate 사용)
- ✅ 메시지 타입 세분화 (ENTER, TALK, LEAVE 타입 정의)
- ✅ 메시지 발송 시
ChatMessage DTO에 발신자 정보(sender) 포함 로직 구현
- ✅ 메시지에 타임스탬프 추가 (
setTimestamp(LocalDateTime.now().toString()))
- ✅ 주요 이벤트에 대한 로깅 구현 (수신 메시지 로깅)
스프린트 2회차 2