서비스의 메인 백엔드 서버다.
REST API, 핵심 비즈니스 로직, 인증, 결제, 세션 관리를 담당한다. 외부 서비스 연동과 하위 서버(Rust·FastAPI) 호출의 주체이기도 하다.
| 구분 | 내용 |
|---|---|
| REST API | 유저·과외·결제·세션 엔드포인트 |
| 외부 서비스 연동 | OAuth, 토스페이먼츠, 텔레그램 봇 |
| 하위 서버 호출 | Rust OCR 오케스트레이터에 과제 이미지 전달 (POST /assignments/{id}/submit) |
| DB 통신 | PostgreSQL (주 DB), Redis (캐시·세션) |
- AI 추론·LLM 호출 안 함 (FastAPI의 책임)
- PDF/이미지 전처리 안 함 (Rust의 책임)
- SSE/실시간 스트리밍 안 함 (프로젝트 전체에서 SSE 미사용)
- OCR 모델 직접 실행 안 함 (FastAPI의 책임)
| 항목 | 버전 |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.4.5 |
| Build | Gradle |
| DB | PostgreSQL |
| Cache | Redis |
Client
→ Spring Boot (REST API)
→ [Rust: 이미지 전처리 요청] 또는 [FastAPI: AI 처리 요청]
→ Spring Boot
→ Client
# 빌드
./gradlew build
# 개발 서버 실행
./gradlew bootRunDB 등 의존 서비스는 infra 레포의 docker-compose로 먼저 기동한다.
| 레포 | 역할 |
|---|---|
| lib-rust | PDF/이미지 전처리 + 오케스트레이션 |
| backend-fastapi | AI 추론·OCR·채점 |
| infra | 로컬 DB 서버 묶음 (PostgreSQL·Redis·Qdrant) |