[Spring Boot/Kafka/Stomp] 실시간 채팅 구현 – 7. 채팅 전송 및 조회
·
프로젝트/Wedle
🍒 채팅 전송 및 조회채팅 메시지 전송: 사용자가 메시지를 작성하고 전송하면, 해당 메시지가 서버로 전송되고 Redis에 저장됩니다. 서버는 메시지의 처리와 동시에 해당 메시지를 Kafka를 통해 실시간으로 참여자에게 전달합니다.채팅 메시지 조회: 사용자가 채팅방에 입장하면, Redis에 저장된 이전 메시지들을 조회할 수 있습니다. 이때 Redis는 빠른 데이터 조회를 가능하게 하여, 사용자에게 즉시 메시지를 보여줍니다.참여자 관리 (Redis): Redis를 사용하여 현재 채팅방에 참여 중인 사용자들을 관리합니다. 사용자가 채팅방에 입장하거나 퇴장할 때마다 Redis에 참여자 목록을 갱신하여 실시간으로 참여자 현황을 유지합니다.실시간 메시지 전달 (Kafka): 채팅 메시지가 발생하면 Kafka를 통..
[Spring Boot/Kafka/Stomp] 실시간 채팅 구현 - 6. 채팅방 생성
·
프로젝트/Wedle
🍒 채팅방 생성 기능채팅방 생성은 여러 가지 조건을 체크하고, 해당 조건이 맞을 경우 새로운 채팅방을 생성합니다사용자 확인: 요청을 보내는 사용자와 받는 사용자의 정보를 확인합니다.이미 존재하는 채팅방 확인: 두 사용자의 대화가 이미 존재하는지 확인합니다.새 채팅방 생성: 만약 채팅방이 존재하지 않는다면 새로 채팅방을 생성합니다.1. 사용자 정보 및 요청 처리@Override@Transactionalpublic CreateNewChatRoomResponse createOrGetChatRoom(CreateNewChatRoomRequest requestDto) { String socialId = getCurrentUserId(); // 현재 로그인된 사용자의 socialId 가져오기 Member..
[Spring Boot/Kafka/Stomp] 실시간 채팅 구현 – 5. Redis와 Kafka를 활용한 실시간 채팅 시스템 구현: WebSocket 기반의 고성능 메시징
·
프로젝트/Wedle
1️⃣ Kafka와 Redis를 활용한 실시간 채팅 시스템 개요Kafka는 메시징 큐 시스템으로, 높은 처리량과 분산 시스템을 통해 메시지를 효율적으로 처리할 수 있습니다. Redis는 빠른 데이터 저장과 조회를 지원하는 인메모리 데이터베이스로, 채팅방 참가자 목록이나 세션 정보를 저장하는 데 사용됩니다.이번 게시글에서는 Kafka와 Redis를 설정하고, 이를 사용한 WebSocket 기반의 실시간 채팅 시스템을 어떻게 구현할 수 있는지에 대해 설명하겠습니다!2️⃣ Kafka Consumer와 Producer 설정Kafka를 사용하여 실시간 메시지를 주고받기 위한 Consumer와 Producer를 설정해야합니다. Kafka를 사용하면 각 사용자가 송신한 메시지를 여러 채팅방에 배포하거나, 실시간으로 ..
[Spring Boot/Kafka/Stomp] 실시간 채팅 구현 – 4. MongoDB 설정 및 연동
·
프로젝트/Wedle
1️⃣  의존성 추가MongoDB는 NoSQL 데이터베이스 중 하나로, 유연한 스키마와 수평 확장성을 제공합니다. Spring Boot와 MongoDB를 통합하여 데이터베이스 연동을 쉽게 처리할 수 있습니다. Spring Boot 프로젝트에 MongoDB 연동을 위한 의존성을 추가해야 합니다.  implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'2️⃣ MongoConfig 클래스 구현@Configuration@RequiredArgsConstructor@EnableMongoRepositories(basePackages = "yerong.wedle.chat.repository")public class MongoConfig..