채팅 문서 작성 ERD, API, Jira 스토리

최길중·2026년 5월 21일

API : https://www.notion.so/teamsparta/API-3672dc3ef51480b29366cd8564bbd8cb
ERD : https://www.notion.so/teamsparta/ERD-3672dc3ef51480d3a476d4de699429b6


채팅 기능 구현 단계 요약

0단계. 채팅 기반 설정

채팅에 필요한 기본 테이블과 공통 코드를 만든다.

chat_room
chat_room_participant
chat_message

채팅방, 참여자, 메시지 Entity와 Repository, 예외 코드를 준비하는 단계다.


1단계. 채팅방 생성

POST /api/chat-rooms

상대 회원 ID를 받아서 채팅방을 만든다.

이미 채팅방이 있으면 새로 만들지 않고 기존 채팅방을 반환한다.


2단계. 채팅방 목록 조회

GET /api/chat-rooms

내가 참여 중인 채팅방 목록을 조회한다.

메시지가 없는 채팅방은 목록에 보여주지 않는다.


3단계. 채팅방 나가기

PATCH /api/chat-rooms/{chatRoomId}/leave

채팅방을 삭제하지 않고, 내 참여 상태만 isLeft = true로 바꾼다.

다시 채팅 시작을 누르면 기존 채팅방으로 재입장된다.


4단계. WebSocket TEXT 메시지 전송

SEND /pub/chat-rooms/{chatRoomId}/messages

WebSocket으로 텍스트 메시지를 보낸다.

메시지는 chat_message에 저장되고, 채팅방 구독자에게 실시간으로 전달된다.


5단계. 메시지 목록 조회

GET /api/chat-rooms/{chatRoomId}/messages

채팅방 메시지 목록을 조회한다.

조회하면 읽음 처리도 같이 진행된다.


최종 정리

0단계: 채팅 테이블/기본 코드 준비
1단계: 채팅방 생성
2단계: 채팅방 목록 조회
3단계: 채팅방 나가기
4단계: 실시간 텍스트 메시지 전송
5단계: 메시지 조회 + 읽음 처리

이미지 업로드는 이번 버전에서 제외하고, TEXT 전용 채팅으로 구현한다.

profile
취준생

0개의 댓글