Skip to content

[FIX] 방 관리 기능 개선 및 버그 수정 #12

@ydking0911

Description

@ydking0911

개요

방 생성/관리/인원 표시 관련 프론트엔드 버그 수정과 방 관리 UI 개선, 그리고 백엔드에 추가된 방 삭제/내보내기 후속 처리 및 알림 대
응까지 함께 정리하는 이슈입니다.

배경

백엔드에서 방 삭제 기능과 관련 에러 처리, 채팅방 정리, WebSocket 개인 알림 처리가 추가되었습니다.
프론트에서는 단순 버튼 노출뿐 아니라, 권한/상태 기반 분기와 삭제·내보내기 이후 후속 UX까지 함께 반영해야 합니다.

작업 범위

버그

1. 룸메이트 지원 상태에서 방 만들기 모달 진입 가능

  • 방에 지원(PENDING) 중인 사용자도 "방 만들기" 버튼이 노출되어 모달 진입이 가능함
  • 수정 방향
    • /api/rooms/me 응답 존재 여부를 기준으로 이미 방에 속했거나 방 관련 상태가 있는 사용자는 "방 만들기" 버튼 비노출 처리
    • 방 생성 진입 가능 조건을 명확히 정리하여, 홈/마이페이지 등 여러 진입점에서 동일하게 적용

2. 비방장 룸메이트에게 지원자 수락/거절/채팅 UI 노출

  • 일반 룸메이트에게도 지원자 수락/거절 버튼이 렌더링됨
  • 수정 방향
    • roomRole === HOST 조건으로 수락/거절/관리성 채팅 버튼 렌더링 제한
    • 비방장 룸메이트 전용 읽기 전용 뷰 분리
    • "내보내기", "방 삭제" 등 관리 액션도 동일한 권한 기준 적용

3. 홈 화면과 방 관리 화면의 인원 수 불일치

  • 두 화면이 remaining 또는 current_mate_count를 다르게 참조하여 표시 값이 다름
  • 수정 방향
    • 인원 수 계산 기준 필드를 통일하여 동일한 값 표시
    • 모집 상태/현재 인원/잔여 인원 표기 기준을 디자인과 함께 재확인

신규 기능

4. 방장의 룸메이트 내보내기 UI

  • 방 관리 화면: 방장에게만 룸메이트별 "내보내기" 버튼 노출 + 확인 모달
  • 채팅방: 방장에게만 룸메이트 메뉴에 "내보내기" 옵션 노출 + 확인 모달
  • API 연동
    • DELETE /api/rooms/{roomNo}/roommates/{targetUserNo}
  • 프론트 처리
    • 성공 시 대상 유저 목록/인원 수/채팅 참여 상태 즉시 갱신
    • 본인이 내보내기된 경우 채팅방/방 관리 화면에서 이탈 처리
    • 관련 WebSocket 알림 수신 시 토스트 또는 리다이렉트 처리 검토

5. 방 삭제 UI

  • 방 관리 화면: 방장에게만 "방 삭제" 버튼 노출
  • 활성화 조건
    • 방장 본인
    • 방장 제외 룸메이트 0명
    • 확정된 방이 아닐 것
  • 확인 모달에서 삭제 불가 조건을 함께 안내
  • API 연동
    • DELETE /api/rooms/{roomNo}

에러 처리 반영 필요

백엔드에서 아래 케이스들이 명확한 도메인 에러로 처리됨. 프론트는 상태 코드/에러 메시지에 맞는 UX를 제공해야 함.

  • 방장이 아닌 사용자가 삭제 요청한 경우
    • 권한 없음 처리
  • 룸메이트가 있는 방을 삭제하려는 경우
    • 삭제 불가 안내
    • 에러 코드: ROOM017
  • 확정된 방을 삭제하려는 경우
    • 삭제 불가 안내
    • 에러 코드: ROOM018
  • 이미 삭제되었거나 존재하지 않는 방 접근 시
    • not found 처리
    • 상세/관리/채팅 화면에서 안전한 fallback 필요

알림/WebSocket 대응

프론트에서 아래 케이스를 명시적으로 처리해야 함.

  • 개인 알림 큐 수신
    • /user/queue/notification 또는 현재 사용 중인 클라이언트 기준 대응 경로 재확인
  • 알림 타입별 분기
    • KICKED_FROM_ROOM
    • ROOM_DELETED
  • 채팅방 topic 알림 수신 시
    • 현재 채팅방이 삭제되었으면 입력 차단, 안내 후 목록/이전 화면으로 이동

체크리스트

  • 방 만들기 버튼 노출 조건 정리 및 공통화
  • 비방장/방장 UI 분기 정리
  • 인원 수 표시 기준 통일
  • 룸메이트 내보내기 UI 및 API 연동
  • 방 삭제 UI 및 API 연동
  • 삭제/강퇴 WebSocket 알림 수신 처리
  • 삭제 불가/권한 없음/이미 삭제됨 케이스 에러 UX 반영
  • 방/채팅 관련 캐시 무효화 및 화면 이탈 처리 점검

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions