Build a Full Stack Chat App using Socket.io & Expo Router #10 - New Conversation API
- 메시지 및 대화 모델 생성: 메시지 스키마는 대화 ID, 보낸 사람 ID, 내용, 첨부 파일 등을 포함 📝
- 대화 스키마는 유형(직접 또는 그룹), 이름, 참여자, 마지막 메시지, 생성자, 아바타 등의 속성을 포함 💬
- 연락처 가져오기 API 구현: 현재 사용자를 확인하고, 다른 사용자 정보를 가져와 연락처로 매핑하여 응답 전송 🧑🤝🧑
- 프론트엔드에서 연락처 API 호출 및 상태 관리: API를 호출하여 연락처 데이터를 가져오고, UI에 표시 📱
- 채팅 이벤트 등록 및 새 대화 이벤트 처리: 소켓 연결 시 채팅 이벤트를 등록하고, 새 대화 요청을 처리 ✉️
- 기존 대화 확인 및 새 대화 생성 로직 구현: 직접 대화인 경우 기존 대화가 있는지 확인하고, 없으면 새 대화 생성 🔍
- 소켓 룸을 활용한 대화 참여자 관리: 사용자가 접속하면 대화에 참여시키고, 새 대화가 생성되면 참여자들을 룸에 추가 🚪
- 대화 데이터 전송 및 프론트엔드에서 새 대화 이벤트 처리: 새 대화 데이터를 참여자들에게 전송하고, 프론트엔드에서 이벤트를 처리하여 UI 업데이트 🔄
- 데이터베이스에 대화 저장 및 확인: 생성된 대화가 데이터베이스에 저장되었는지 확인하고, 기존 대화 재사용 로직 검증 ✅