본 문서는 [바르미] 청각장애인을 위한 영어 학습 서비스에서 AI Gateway(FastAPI)와 서비스 백엔드(Spring)간 비동기 처리를 담당하는 RabbitMQ 기반 메시징 구조의 설계 방식과 해당 구조를 선택한 기술적 배경을 정리합니다.

<aside> 💡

</aside>

⚙️ 전체 메시징 아키텍처 개요


AI 음성 분석은 단일 요청 기준 처리 시간이 길고, 요청 수와 처리량 변동 폭이 큰 작업 특성을 가집니다. 이에 따라 서비스 백엔드와 AI Gateway 간 통신은 동기 HTTP 호출이 아닌 메시지 기반 비동기 구조로 설계했습니다.

RabbitMQ는 다음 두 경로의 메시지 흐름을 담당합니다.

이를 통해 요청 수신 흐름과 실제 분석 처리 흐름을 명확히 분리했습니다.


⚙️ 큐 구조 설계


Queues:
- ai.jobs             :음성분석 작업 요청 큐
- conversation.jobs   :회화분석 작업 요청 큐

- pron_result         :발음분석 결과 큐
- inton_result        :억양분석 결과 큐
- llm_result          :LLM피드백 결과 큐
- conversation_result : 회화 결과 큐
- error_result        :AI서버 사전 에러 결과 큐

큐 분리 기준

AI 음성 분석 결과는 다음과 같은 독립적인 처리 단위를 가집니다.

각 분석 결과는 생성 시점과 처리 방식이 다르며, 서비스 백엔드에서의 활용 방식 또한 상이합니다. 이에 따라 결과 전달을 단일 큐로 통합하지 않고 분석 유형별 결과 큐로 분리했습니다.