Skip to content

[#70][FEATURE] rabbitMQ 연동#172

Open
unikal1 wants to merge 4 commits intodevfrom
feat/message-broker-rabbitmq
Open

[#70][FEATURE] rabbitMQ 연동#172
unikal1 wants to merge 4 commits intodevfrom
feat/message-broker-rabbitmq

Conversation

@unikal1
Copy link
Contributor

@unikal1 unikal1 commented Jan 14, 2026

✨ 구현 기능 명세

기존 내부 메시지 브로커를 사용 중인 환경에서 rabbitMQ 로 이전하기 위한 설정 등이 변경되었습니다.

대표적으로, subscribe 경로 등이 변경되었으며, WebSocketConfig 에서 메시지 브로커를 외부로 사용하도록 변경하였습니다.

✅ PR Point

@gemini-code-assist
Copy link

Summary of Changes

Hello @unikal1, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 애플리케이션의 WebSocket 메시징 시스템을 RabbitMQ 기반의 STOMP 브로커 릴레이로 전환하여 메시지 처리의 확장성과 안정성을 향상시키는 것을 목표로 합니다. 기존의 단순 브로커 방식에서 벗어나 외부 메시지 브로커를 활용함으로써, 대규모 동시 접속 환경에서도 효율적인 메시지 라우팅과 분산 처리가 가능해집니다.

Highlights

  • RabbitMQ 연동을 위한 의존성 추가: 메시지 브로커 연동을 위한 spring-boot-starter-reactor-netty 의존성을 build.gradle에 추가했습니다.
  • STOMP 인증 인터셉터 개선: StompAuthChannelInterceptor에서 MemberReader 의존성을 제거하고, STOMP heartbeat 메시지를 처리하도록 로직을 개선했습니다. 또한, 구독 대상 경로를 RabbitMQ 토픽 교환소 형식에 맞춰 변경했습니다.
  • RabbitMQ 설정 속성 정의: StompRelayProp 레코드 클래스를 새로 추가하여 RabbitMQ 연결에 필요한 호스트, 포트, 사용자명, 비밀번호, 가상 호스트 등의 설정 정보를 관리하도록 했습니다.
  • WebSocket 메시지 브로커 설정 변경: WebsocketConfig에서 기존의 단순 브로커(enableSimpleBroker) 대신 RabbitMQ를 활용하는 STOMP 브로커 릴레이(enableStompBrokerRelay)를 활성화하고, StompRelayProp을 통해 RabbitMQ 연결 정보를 주입하도록 구성했습니다.
  • 환경 설정 업데이트: application.properties에 RabbitMQ 연결을 위한 환경 변수를 추가하고, 채팅 구독 기본 주소도 RabbitMQ 토픽 형식에 맞게 변경했습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2485169dba

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 RabbitMQ를 STOMP 브로커 릴레이로 사용하여 WebSocket 메시징 시스템을 통합하는 것을 목표로 합니다. 전반적으로 RabbitMQ 연동을 위한 설정 변경은 올바르게 적용되었습니다. StompRelayProp를 사용하여 설정을 외부화하고 WebsocketConfig에서 이를 활용한 점은 좋은 접근 방식입니다.

다만, 몇 가지 개선점을 제안합니다.

  • build.gradle 파일에 중복된 의존성이 있습니다.
  • StompAuthChannelInterceptor에서 destination 경로가 하드코딩되어 있고, roomId를 추출하는 로직이 비일관적이며 잠재적인 버그를 포함하고 있습니다.
  • WebsocketConfig에서 heartbeat 간격이 하드코딩되어 있어 유연성이 떨어집니다.
  • 일부 주석 처리된 코드가 남아있어 정리할 필요가 있습니다.

자세한 내용은 각 파일에 대한 리뷰 코멘트를 참고해주세요.

@unikal1 unikal1 self-assigned this Jan 16, 2026
unikal1 and others added 3 commits January 23, 2026 15:17
- 특정 데이터 application.properties 로 이전 및 적용
- id 추출 로직 공통화
- test container reuse 옵션 제거

Ref: #70
- 기존 /sub/chat/room 에서 /exchange/amq.topic/chat.room. 로 변경

Ref: #172
@unikal1 unikal1 requested a review from sleepyhoon February 2, 2026 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] rabbitMQ 연동

1 participant