📝 이번 포스팅은 본격적으로 Kafka를 사용하고자 한다.
우선 앞서 살펴본 채팅 요구사항에 의하면 채팅은 DM, 모임, 운동 으로 3가지로 나뉜다.
지난 포스팅으로 Kafka에 대해 알아봤으니 이번에는 본격적으로 어떻게 사용할 지 정하려고 한다.
1. TOPIC
사전에 팀원들과 함께 Kafka 정의서를 작성하였다. TOPIC은 말 그대로 해당 토픽에 대해 Publisher가 발행하면 그 토픽을 구독한 Consumer가 해당 메시지를 소비하게 된다.
채팅방 Type이 3가지이므로 Topic 역시 해당 Type에 따라 구성하였다.
2. EXERCISE TOPIC
- EXERCISE_CREATED : 운동 채팅방 생성
- EXERCISE_DELETED : 운동 채팅방 삭제
- EXERCISE_COMPLETED : 운동이 완료될 경우 운동 채팅방 삭제
- EXERCISE_USER_PARTICIPATED : 운동 채팅방에 유저 추가
- EXERCISE_USER_CANCELLED : 운동 채팅방에 유저 방출
- EXERCISE_USER_ROLE_CHANGED : 운동 채팅방에서 유저 권한 변경
3. CLUB TOPIC
- CLUB_CREATED : 모임 채팅방 생성
- CLUB_USER_CREATED : 모임 채팅방에 유저 추가
- CLUB_USER_CANCELLED : 모임 채팅방에 유저 방출
- CLUB_DELETED : 모임 채팅방 삭제
- CLUB_UPDATE_ROLE : 모임 채팅방에서 유저 권한 변경
4. DM TOPIC
- DM_CREATED : 1:1 채팅방 생성
- DM_DELETED : 1:1 채팅방 삭제
5. TOPIC을 정했으니 실제 코드로 구현해보자.
- KafkaProperties.java
static으로 선언하여 해당 토픽들을 저장하였다. - 운동이 생성되면 EXERCISE_CREATED 으로 KafkaTemplate를 사용하여 토픽을 전송한다.
- @KafkaListener를 통해 해당 토픽에게 이벤트가 발행되면 그 이벤트를 수신 받아 해당 운동 채팅방 정보를 받은 것을 토대로 운동 채팅방을 생성한다.
다른 기능들도 마찬가지로 구현하면 완료이다. Kafka 기본적인 설정은 생략했는데, 추후 시간이 된다면 같이 업로드 하려고 한다!
'Project > 배드민턴의 모든 것' 카테고리의 다른 글
(3) 채팅 개발 - Kafka 도입 (0) | 2025.04.24 |
---|---|
(2) 프로젝트 요구사항 정리 (0) | 2025.04.24 |
(1) 프로젝트 소개 (0) | 2025.04.24 |