# AI 제안사항 프론트엔드 연동 가이드 (간소화 버전) ## 📋 **개요** 백엔드를 간소화하여 **논의사항과 결정사항을 구분하지 않고**, 단일 "AI 제안사항" 배열로 통합 제공합니다. --- ## 🔄 **변경 사항 요약** ### **Before (구분)** ```json { "discussionTopics": [ { "topic": "보안 요구사항 검토", ... } ], "decisions": [ { "content": "React로 개발", ... } ] } ``` ### **After (통합)** ✅ ```json { "suggestions": [ { "id": "sugg-001", "content": "신제품의 타겟 고객층을 20-30대로 설정하고...", "timestamp": "00:05:23", "confidence": 0.92 } ] } ``` --- ## 🎨 **프론트엔드 통합 방법** ### **1. 05-회의진행.html에 스크립트 추가** 기존 `` 태그 직전에 추가: ```html ``` ### **2. 전체 플로우** ``` [페이지 로드] ↓ SSE 연결 ↓ [회의 진행 중] ↓ AI 분석 완료 시마다 SSE로 제안사항 전송 ↓ 자동으로 카드 생성 ↓ [회의 종료] ↓ SSE 연결 종료 ``` --- ## 📡 **SSE API 명세** ### **엔드포인트** ``` GET /api/suggestions/meetings/{meetingId}/stream ``` ### **헤더** ``` Accept: text/event-stream ``` ### **응답 형식** ``` event: ai-suggestion id: 12345 data: {"suggestions":[{"id":"sugg-001","content":"...","timestamp":"00:05:23","confidence":0.92}]} event: ai-suggestion id: 12346 data: {"suggestions":[{"id":"sugg-002","content":"...","timestamp":"00:08:45","confidence":0.88}]} ``` --- ## 🧪 **테스트 방법** ### **1. 로컬 테스트 (Mock 데이터)** 백엔드가 아직 없어도 테스트 가능: ```javascript // 테스트용 Mock 데이터 전송 function testAiSuggestion() { const mockSuggestion = { suggestions: [ { id: "test-001", content: "테스트 제안사항입니다. 이것은 AI가 생성한 제안입니다.", timestamp: "00:05:23", confidence: 0.95 } ] }; handleAiSuggestions(mockSuggestion); } // 콘솔에서 실행 testAiSuggestion(); ``` ### **2. curl로 SSE 연결 테스트** ```bash curl -N -H "Accept: text/event-stream" \ "http://localhost:8083/api/suggestions/meetings/test-meeting-001/stream" ``` 예상 출력: ``` event: ai-suggestion data: {"suggestions":[...]} ``` ### **3. 브라우저 DevTools로 확인** 1. **Network 탭** → "EventStream" 필터 2. `/stream` 엔드포인트 클릭 3. **Messages** 탭에서 실시간 데이터 확인 --- ## 💻 **JavaScript API 사용법** ### **초기화** ```javascript // 자동으로 실행됨 (페이지 로드 시) initializeAiSuggestions(); ``` ### **수동 연결 종료** ```javascript closeAiSuggestions(); ``` ### **제안사항 수동 추가 (테스트용)** ```javascript addSuggestionCard({ id: "manual-001", content: "수동으로 추가한 제안사항", timestamp: "00:10:00", confidence: 0.9 }); ``` --- ## 🎨 **UI 커스터마이징** ### **신뢰도 표시 스타일** ```css /* 05-회의진행.html의