개발 기간: 2023.05.12 ~ 2023.05.18
🎥 시연영상 https://www.youtube.com/watch?v=mGZ9BXAWmiE
- Stomp로 실시간 채팅방을 구현해보자!
https://rough-steam-f82.notion.site/S-A-e994ea0da5824fd49913e2efcf4663f3
https://www.notion.so/31b54aa077d04d119ca2e5f10c3e22b7?v=8d4e491b55374a5581f611d943b653b1
이름 | 역할 |
---|---|
조유민(BE팀장) @eivomin |
- 회원가입, 로그인, 로그아웃 API - RefreshToken, AccessToken - 서버 배포 - S3 |
이상언 @eoneee |
- 마이페이지 - RDS(MySQL) 연결 |
김재형 @jaykim12 |
- 채팅 기능 - 검색 기능 |
이현규 @OliveLover |
- 채팅 기능 - 검색 기능 |
FE git hub : https://github.com/HyoHwanKim/hangHae99-cloneWeek
회원가입, 로그인, 로그아웃
채팅
- 채팅방 생성
- 채팅방 입장
- 채팅방 대화
- 모든 대화상대퇴장시 채팅방 삭제
- 사진 전송
5일 앞의 생일인 유저 표시
마이페이지(수정기능 미완료)
STOMP를 통하여 단순한 채팅기능만 있는 형태에서 채팅방을 만드는 것에대하여 많은 고민을 해보았습니다.
우리가 생각한 방법은 ChatRoom Entity를 만들어 "방생성 API"를통해 "TB_CHATROOM" 테이블과 매핑을 하였습니다.
방의 순서를 특정하고 싶지 않아 시간과 관련하여 고유한 값을 주는 "UUID"를 사용하여 방의 ID를 나타내었습니다.
</sub/chat/room + roomId> 으로 방ID를 구독한 대상에게만 메시지가 보내지도록 하였습니다.
User가 어느 방에 들어가는지 특정하기 위하여 User에 RoomId를 연관시켜주었고, 해당 RoomId의 수를 세어
방에 어떤 User가 있는지도 알수 있게 하였습니다.
이 정보를 바탕으로 방생성 후 모든 유저가 나가서 방의 유저 카운트가 0이되면 방은 자동으로 삭제됩니다.
사진 전송은 POST 요청을 통하여 전송합니다.