# 채팅 MVP 구현 ## 목표 * 최대 100명의 사용자가 참여할 수 있는 채팅 기능 * 1 대 1 채팅 기능 * 사용자 접속 표시 * ~~다양한 단말 지원~~ -> 웹에서만 지원 * ~~푸시 알림~~ -> 웹 alert 혹은 다음 기회에... * ~~사진, 미디어~~ -> 텍스트만 처리 ## 대용량 시스템 개념 * [ ] 소켓 통신에서의 수평적 확장(서버 추가) * [ ] 무중단 배포 * [ ] 서버 죽었을 때 클라이언트를 다른 서버로 연결 * [ ] 채팅 이력 보관 * [ ] 1:1 채팅 * [ ] 그룹채팅 # 구현할 것 ## 기능 구현 여러명 참여하는 채팅방 구조 - 로컬에서 개발완료하고 - 상용올리는건 어느정도 완료되고나서.. * [ ] 소켓 기반 채팅 서버 * [ ] 클라이언트로부터 메시지 수신 * [ ] 메시지 수신자 결정 및 전달 * [ ] 접속 상태 서버 * [ ] 간단한 FE * [ ] 메시지 발행 폼 * [ ] 메시지 수신 및 노출 * [ ] 메시지 저장 * [ ] 새로 들어온 유저가 이전 채팅내역 보기 ----------------------------------- * [ ] 시간순 정렬이 가능한 메시지 Id 생성 * [ ] 접속사용자 표시 -> * [ ] 간단한 로그인 ## 세부 사용 기술 * [ ] socket * [ ] advance - graphql subscription * [ ] chat message * [ ] confluent kafka(broker) * [ ] service discovery - * [ ] server language - Java or Go # 참고자료 * https://www.uber.com/en-AU/blog/building-scalable-real-time-chat/ * https://www.infoq.com/news/2024/03/uber-chat-graphql-subscriptions/
채팅 MVP 구현
목표
다양한 단말 지원-> 웹에서만 지원푸시 알림-> 웹 alert 혹은 다음 기회에...사진, 미디어-> 텍스트만 처리대용량 시스템 개념
구현할 것
기능 구현
여러명 참여하는 채팅방 구조
세부 사용 기술
참고자료