### 🔍 개요 - 상위 기능 이슈: #2335 - 기준: `origin/develop@2bbb2a23ca04fc7ece8a2986f12e88f12a4ab92e` - 심각도: **P2 검증 공백** - 분류: **서버 QA / 클라이언트가 호출하는 TEAM 채팅 HTTP 경계 검증** - 확인된 서비스 장애가 아니라, 정상 동작을 자동 테스트로 고정하지 못했던 범위입니다. 채팅과 알림 테스트를 한 PR에 넣으면 리뷰 범위가 커지므로, 이 이슈는 TEAM 채팅에만 한정합니다. 알림 목록·일괄 처리는 #2401/#2405로 분리합니다. ### 검증 시나리오 - 모집글과 관계없는 사용자는 TEAM 방에 들어갈 수 없습니다. - 메시지 cursor pagination은 요청한 개수만큼 가장 가까운 메시지를 골라 오래된 순으로 반환합니다. - unread/read cursor가 실제 조회 결과에 맞게 갱신됩니다. - `READ_ONLY` 방은 조회할 수 있지만 메시지를 보낼 수 없습니다. - 채팅 알림과 outbox가 정확한 대상·메시지에 한 번 연결됩니다. ### 📱 클라이언트 영향 요청·응답은 바꾸지 않습니다. 클라이언트가 사용하는 채팅 라우팅, 인증, JSON, 상태코드와 cursor 규칙이 실제 Spring MVC·MySQL 경계에서 유지되는지 검증합니다. ### ✅ 완료 조건 - 실제 Spring MVC, 인증, serialization, MySQL을 통과합니다. - TEAM 권한, pagination, cursor, `READ_ONLY` 경계를 검증합니다. - notification/outbox 연결과 개수를 검증합니다. ### 🚫 범위 밖 - DIRECT 방 생성 정책과 동시성: #2384, #2385 - 알림 목록·전체 읽음·전체 삭제: #2401/#2405 - 실제 Firebase FCM 발송
🔍 개요
origin/develop@2bbb2a23ca04fc7ece8a2986f12e88f12a4ab92e채팅과 알림 테스트를 한 PR에 넣으면 리뷰 범위가 커지므로, 이 이슈는 TEAM 채팅에만 한정합니다. 알림 목록·일괄 처리는 #2401/#2405로 분리합니다.
검증 시나리오
READ_ONLY방은 조회할 수 있지만 메시지를 보낼 수 없습니다.📱 클라이언트 영향
요청·응답은 바꾸지 않습니다. 클라이언트가 사용하는 채팅 라우팅, 인증, JSON, 상태코드와 cursor 규칙이 실제 Spring MVC·MySQL 경계에서 유지되는지 검증합니다.
✅ 완료 조건
READ_ONLY경계를 검증합니다.🚫 범위 밖