```mermaid graph LR ``` %% 1. 클라이언트 영역 subgraph Client ["💻 Client Side (Frontend)"] User[👤 사용자 / 웹 브라우저
(HTML5, CSS3, JS)] end %% 2. 서버 영역 subgraph Server ["⚙️ Flask Server (Backend)"] direction TB Controller[🎮 Main Controller
(Routing & Logic)] InternalModel[🤖 Internal AI Engine
(klue/roberta-base)] end %% 3. 인프라 및 외부 서비스 영역 subgraph External ["☁️ Infrastructure & External APIs"] direction TB Gemini[✨ Google Gemini API
(Generative AI Recommendation)] Supabase[(🗄️ Supabase DB
PostgreSQL)] end %% --- 데이터 흐름 (Flow) --- %% 분석 단계 User -- "1. 일기 작성 & 분석 요청 (/api/predict)" --> Controller Controller -- "2. 텍스트 전처리 & 추론" --> InternalModel InternalModel -- "3. 감정 라벨 & 확률 반환" --> Controller Controller -- "4. 추천 요청 (Prompting)" --> Gemini Gemini -- "5. 맞춤형 콘텐츠 생성" --> Controller Controller -- "6. 분석 결과(JSON) 응답" --> User %% 저장 단계 User -- "7. '저장하기' 클릭 (/diary/save)" --> Controller Controller -- "8. 영구 저장 (INSERT)" --> Supabase %% 스타일링 (선택 사항) style Client fill:#e1f5fe,stroke:#01579b style Server fill:#fff3e0,stroke:#e65100 style External fill:#f3e5f5,stroke:#4a148c style InternalModel fill:#ffccbc,stroke:#bf360c,stroke-width:2px ``` ```