Python 서비스 (FastAPI)
Spring Boot와 별도로 운영되는 Python 마이크로서비스입니다.
| 항목 | 내용 |
|---|---|
| 프레임워크 | FastAPI + Uvicorn |
| 주 DB | PostgreSQL (pgvector) |
| 보조 DB | MariaDB (읽기 전용, 캠페인 정보) |
| 작업 큐 | Redis Queue (RQ) |
| AI 엔진 | Google Gemini |
| 스토리지 | AWS S3 (glowb-output 공유) |
FastAPI 서버는 8개의 주요 모듈로 구성됩니다.
Spring Boot에서 직접 HTTP 요청을 보내고 응답을 기다리는 패턴입니다.
| 메서드 | 엔드포인트 | 용도 |
|---|---|---|
GET | /sns | SNS 프로필 크롤링 |
POST | /report/influencer | 인플루언서 리포트 생성 |
POST | /ai-review/video | AI 비디오 리뷰 |
POST | /api/vector/campaigns/recommendations | 벡터 기반 캠페인 추천 |
비동기 콜백
Section titled “비동기 콜백”장시간 작업은 RQ 큐에 넣고, 완료 시 Spring Boot으로 콜백합니다.
RQ 큐 우선순위
Section titled “RQ 큐 우선순위”| 큐 이름 | 용도 | 예시 |
|---|---|---|
glowb-short | 단시간 작업 | 프로필 조회, 이메일 찾기 |
glowb-default | 일반 작업 | 리포트 생성, 비디오 리뷰 |
glowb-long | 장시간 작업 | 양방향 크롤링, 대량 SNS 수집 |
공유 데이터
Section titled “공유 데이터”MariaDB (Python 읽기 전용)
Section titled “MariaDB (Python 읽기 전용)”Python의 campaign_service.py에서 MariaDB의 TB_COLLAB 테이블을 직접 읽어 캠페인 정보를 조회합니다. 쓰기 권한은 없으며, 캠페인 메타데이터 참조 용도로만 사용합니다.
PostgreSQL 테이블
Section titled “PostgreSQL 테이블”Python 서비스가 소유하고 관리하는 주요 테이블입니다.
| 테이블 | 용도 |
|---|---|
influencer_profile | 크롤링된 인플루언서 프로필 |
post | SNS 게시물 데이터 |
post_metrics | 게시물 성과 지표 |
influencer_vectors | 인플루언서 벡터 임베딩 |
campaign_vectors | 캠페인 벡터 임베딩 |
crawl_session | 크롤링 세션 추적 |
ftc_business | FTC 사업자 정보 |
AWS S3 공유
Section titled “AWS S3 공유”두 서버가 동일한 S3 버킷을 공유합니다.
| 경로 패턴 | 작성 주체 | 용도 |
|---|---|---|
ai/img/ | Python | AI 생성 이미지 |
ai/video/ | Python | AI 처리 비디오 |
pdf/, docx/ | Python | 리포트 파일 |
| 기타 (이미지, 동영상) | Spring Boot | 사용자 업로드 파일 |