전체 아키텍처 개요

본 서비스는 청각장애인을 위한 영어 발음 학습 서비스로 웹 클라이언트, 백엔드 API, AI 처리 서버, 실시간 통신 서버를 역할별로 분리한 구조로 설계했습니다. 각 레이어는 독립적으로 운영되며, 비동기 처리와 실시간 처리를 분리해 서비스 안정성과 확장성을 확보하는 것을 목표로 했습니다.

[바르미] 아키텍처 최종본.png


⚙️ 인프라 구성

서비스는 AWS EC2 환경에서 운영되며,

모든 구성 요소는 Docker 기반으로 컨테이너화했습니다.

이를 통해 실행 환경을 표준화하고, 서비스 재기동 및 배포 시 일관된 동작을 보장하도록 구성했습니다.

⚙️ Client Layer

사용자는 웹 브라우저를 통해 서비스에 접속합니다.

외부 요청은 Nginx를 단일 진입점으로 사용하여 수신하며, HTTPS 종료 및 프론트엔드·백엔드 요청 라우팅을 담당하도록 구성했습니다.

프론트엔드는 **React**로 구현했으며, 사용자의 학습 선택/음성 녹음/분석 요청 등을 백엔드 API로 전달합니다.

⚙️ Backend Layer

백엔드 API 서버는 Spring Boot 기반으로 구성했습니다.

사용자 관리, 학습 흐름 제어, AI 분석 요청 생성 등 핵심 비즈니스 로직을 담당합니다.

데이터는 MySQL에 저장했으며, AI 분석과 같이 처리 시간이 긴 작업은 즉시 처리하지 않고 메시지 큐를 통해 비동기 방식으로 전달하도록 설계했습니다.

⚙️ Message Queue & AI Processing Layer

AI 분석 요청과 결과 전달은 RabbitMQ를 사용해 비동기적으로 처리했습니다.

이를 통해 사용자 요청 처리 흐름과 AI 연산 흐름을 분리하고, 특정 분석 지연이 전체 서비스에 영향을 주지 않도록 구성했습니다.

AI Processing Layer는 FastAPI 기반 서비스로 구성했습니다.