diff --git a/.gitignore b/.gitignore index b709210..d44608b 100644 --- a/.gitignore +++ b/.gitignore @@ -43,8 +43,9 @@ examples/ .claude/settings.local.json # Backup files -design/*/*/*backup.* -design/*/*backup.* -design/*backup.m* +design/*/*/*/*back* +design/*/*/*back* +design/*/*back* +design/*back* backup/ .vscode/settings.json diff --git a/claudedocs/회의진행-개선안-종합보고서.md b/claudedocs/회의진행-개선안-종합보고서.md new file mode 100644 index 0000000..1edfac5 --- /dev/null +++ b/claudedocs/회의진행-개선안-종합보고서.md @@ -0,0 +1,762 @@ +# 회의진행 화면 개선안 종합 보고서 + +**작성일**: 2025-10-25 +**버전**: v1.0 +**대상**: 회의록 작성 서비스 MVP + +--- + +## 📋 목차 +1. [논의 배경 및 목적](#1-논의-배경-및-목적) +2. [MVP 핵심 가치 재확인](#2-mvp-핵심-가치-재확인) +3. [최종 개선안](#3-최종-개선안) +4. [공수 및 일정 영향 분석](#4-공수-및-일정-영향-분석) +5. [유저스토리 수정안](#5-유저스토리-수정안) +6. [화면설계 수정안](#6-화면설계-수정안) +7. [프로토타입 수정 가이드](#7-프로토타입-수정-가이드) +8. [v2.0 백로그](#8-v20-백로그) + +--- + +## 1. 논의 배경 및 목적 + +### 1.1 논의 내용 +회의 진행 화면의 다음 기능들에 대해 MVP 관점에서 재검토: +- **회의 참석자 권한 구분**: 생성자 vs 일반 참석자 +- **메모 기능**: 개인 메모 vs 공유 메모 +- **용어 설명**: 회사 특화 용어 처리 방안 +- **관련 회의록**: 표시 방식 및 활용도 +- **중도 퇴장**: 화면 전환 방식에 따른 구현 + +### 1.2 목적 +- MVP 범위 명확화 및 불필요한 기능 제거 +- 핵심 가치 실현에 집중 +- 예산 및 일정 준수 + +--- + +## 2. MVP 핵심 가치 재확인 + +### 2.1 서비스 핵심 가치 +> **"업무지식이 없어도 누락 없이 정확하게 회의록을 작성"** + +### 2.2 MVP 필수 기능 +1. ✅ AI STT로 실시간 음성 인식 +2. ✅ AI가 주요 내용 자동 추출 및 제시 +3. ✅ 회의 종료 후 AI 자동 요약 생성 +4. ✅ 회의록 확인 및 기본 수정 +5. ✅ 회의록 공유 (이메일/링크) + +### 2.3 MVP 제외 기능 (v2.0 이관) +- ❌ 복잡한 메모 입력/편집 기능 +- ❌ 실시간 협업 메모 동기화 +- ❌ 참석자별 세밀한 권한 관리 UI +- ❌ 용어 사전 직접 검색 기능 + +--- + +## 3. 최종 개선안 + +### 3.1 회의 참석자 권한 + +#### 현재 문제점 +- 생성자 vs 참석자로 이분법적 구분 +- 회의 생성자도 참석자 중 한 명이라는 관점 누락 + +#### 개선안 +**회의 생성자 = 특별 권한을 가진 참석자** + +``` +모든 참석자 공통 기능: +- AI 제시 주요 내용 확인 및 체크 +- 회의록 실시간 확인 +- 용어 설명 확인 +- 관련 회의록 확인 +- "나가기" 버튼으로 중도 퇴장 + +회의 생성자 전용 기능: +- 회의 종료 버튼 (일반 참석자에게는 숨김) +- 녹음 제어 (일시정지/재개/종료) +``` + +#### 구현 방식 +```javascript +// 버튼 조건부 표시 +if (currentUser.id === meeting.creator_id) { + // 회의 종료 버튼 표시 + showEndMeetingButton(); + showRecordingControls(); +} +``` + +--- + +### 3.2 메모 기능 + +#### 현재 문제점 +- 텍스트 입력 메모 구현 시 공수 증가 +- 공유 메모 vs 개인 메모 선택 어려움 +- 실시간 동기화 복잡도 + +#### 개선안 (MVP 최소화) +**AI 제시 내용 체크박스 방식** + +``` +┌─────────────────────────────────┐ +│ 🤖 AI가 파악한 주요 내용 │ +├─────────────────────────────────┤ +│ ☐ 예산 500만원 증액 합의 │ +│ ☐ 일정 2주 연장 논의 │ +│ ☐ 외주 업체 3곳 검토 │ +└─────────────────────────────────┘ +``` + +**특징:** +- 참석자는 클릭만 (텍스트 입력 없음) +- 개인별 체크 (다른 사람 체크 안 보임) +- AI 요약 시 체크 수에 따라 가중치 부여 +- 편집 충돌 없음 + +**공수 절감:** +- 기존 방식 (공유+개인 메모): 38일 +- 체크박스 방식: 7일 +- **절감률: 82%** + +--- + +### 3.3 용어 설명 기능 + +#### 현재 문제점 +- 일반 전문용어와 회사 특화 용어 구분 필요 +- RAG 구축은 MVP 범위 초과 + +#### 개선안 +**간소화된 JSON 용어 사전 + AI 보조** + +##### 3.3.1 회사 용어 사전 구조 +```json +// config/terms-dictionary.json +{ + "terms": [ + { + "keyword": "레거시", + "aliases": ["구시스템", "기존ERP"], + "definition": "2020년 구축한 우리 회사 통합 ERP 시스템", + "context": "현재 클라우드 기반 신규 시스템으로 마이그레이션 중", + "category": "시스템" + } + ] +} +``` + +##### 3.3.2 용어 표시 방식 +``` +┌─────────────────────────────────┐ +│ [AI 주요 내용] [용어] │ +├─────────────────────────────────┤ +│ 📚 회의 중 언급된 용어 │ +│ │ +│ 🔹 레거시 ⭐ │ +│ 2020년 구축한 우리 회사 ERP │ +│ (회사 용어 사전) │ +│ │ +│ 🔹 POC │ +│ Proof of Concept │ +│ (AI 일반 설명) │ +└─────────────────────────────────┘ + +⭐ = 회사 용어 사전 등록 항목 +``` + +##### 3.3.3 처리 로직 +```python +def explain_term(term, stt_context, company_dict): + # 1. 회사 용어 사전 확인 (우선) + if term in company_dict: + return company_dict[term] + " ⭐" + + # 2. AI 일반 설명 (회의 맥락 포함) + else: + return ai_model.explain(term, context=stt_context) +``` + +**장점:** +- ✅ RAG 대비 공수 1/5 (4일 vs 20일) +- ✅ 초기 10-20개 용어만으로 80% 커버 +- ✅ 비개발자도 JSON 편집 가능 +- ✅ v1.5에서 자동 학습 추가 가능 + +--- + +### 3.4 관련 회의록 기능 + +#### 기존 요구사항 (UFR-AI-040) +- ✅ AI가 벡터 유사도 검색으로 관련 회의록 자동 추천 +- ✅ 관련도 배지 표시 (높음/중간/낮음) +- ✅ 최대 5개 회의록 연결 + +#### 현재 문제점 +- 회의록 제목과 관련도 배지만 표시 (목록만 나열) +- 전체 회의록을 열어봐야 내용 파악 가능 +- 회의 중 전체 회의록 읽을 시간 없음 + +#### 개선안 +**기존 기능 유지 + 핵심 내용 요약 추가** + +``` +┌─────────────────────────────────┐ +│ 📄 관련 회의록 │ +├─────────────────────────────────┤ +│ 🔥 95% 2024-01-15 주간 회의 │ +│ 💡 현재 회의와 유사한 내용: │ +│ • "예산 500만원으로 증액 1차 합의"│ +│ • "외주 업체 A, B, C 3곳 후보" │ +│ • "일정은 2주 더 필요하다는 의견"│ +│ → 전체 회의록 보기 │ +│ │ +│ 🔥 78% 2024-01-08 기획 회의 │ +│ 💡 현재 회의와 유사한 내용: │ +│ • "POC 범위를 챗봇 기능만으로" │ +│ • "개발 일정 2월 말까지" │ +│ → 전체 회의록 보기 │ +└─────────────────────────────────┘ +``` + +##### 3.4.1 유사도 계산 로직 +```python +def calculate_meeting_similarity(current, past): + # 1. 주제 유사도 (50%) + topic_similarity = cosine_similarity( + current.topics_vector, + past.topics_vector + ) + + # 2. 참석자 겹침 (20%) + attendee_overlap = len( + set(current.attendees) & set(past.attendees) + ) / len(set(current.attendees)) + + # 3. 프로젝트/태그 일치 (30%) + project_match = 1.0 if current.project == past.project else 0.3 + + return ( + topic_similarity * 0.5 + + attendee_overlap * 0.2 + + project_match * 0.3 + ) +``` + +##### 3.4.2 효율화 방안 +```python +# 과거 회의록 저장 시 요약본 미리 생성 +class Meeting: + content: str # 전체 내용 + summary: str # AI 요약본 (미리 생성 - 배치) + topics: list # 주제 태그 + +# 실시간에는 요약본만 활용 +def show_related_meetings(current): + for past in find_similar(current): + relevant_summary = extract_relevant_parts( + past.summary, # 미리 생성된 요약본 + current.topics + ) +``` + +**효과:** +- 회의록 찾는 시간: 5-10분 → 10초 +- 컨텍스트 파악: 전체 읽기 → 요약으로 즉시 +- 핵심 가치 강화: "업무지식 없어도" 실현 + +**추가 공수:** +1일 (최적화 적용 시) + +--- + +### 3.5 중도 퇴장 기능 + +#### 현재 문제점 +- 대시보드 → 회의진행 화면: 페이지 전환 (같은 탭) +- 브라우저 창 닫기 = 서비스 전체 종료 + +#### 개선안 +**"나가기" 버튼 추가** + +``` +회의진행 화면 상단: +┌─────────────────────────────────┐ +│ ← 나가기 | 회의 제목 | [회의종료] │ +└─────────────────────────────────┘ +``` + +**동작:** +```javascript +function exitMeeting() { + if (confirm('회의에서 나가시겠습니까?\n회의는 계속 진행됩니다.')) { + // 퇴장 이벤트 서버 전송 + sendExitEvent(meeting.id, user.id); + + // 대시보드로 복귀 + navigateTo('02-대시보드.html'); + } +} +``` + +**추가 공수:** +0.5일 + +--- + +## 4. 공수 및 일정 영향 분석 + +### 4.1 전체 공수 비교 + +| 항목 | 기존 계획 | 개선안 | 차이 | +|------|----------|--------|------| +| 메모 기능 | 38일 | 7일 | **-31일** ⬇️ | +| 용어 설명 | 20일 (RAG) | 4일 (JSON) | **-16일** ⬇️ | +| 관련 회의록 | 5일 (목록만) | 6일 (요약 추가) | **+1일** ⬆️ | +| 나가기 버튼 | - | 0.5일 | **+0.5일** ⬆️ | +| **순 절감** | - | - | **-45.5일** ⬇️ | + +### 4.2 MVP 일정 영향 +- ✅ 예산 및 일정 대폭 절감 +- ✅ 핵심 기능에 집중 가능 +- ✅ 빠른 시장 검증 가능 + +--- + +## 5. 유저스토리 수정안 + +### 5.1 신규 추가 (MVP 단순화) + +```markdown +# 회의 참석자 공통 기능 +UFR-PART-010: 회의 입장 +- 모든 참석자(생성자 포함)는 대시보드에서 "참여하기"로 회의 입장 +- 회의진행 화면으로 페이지 전환 (같은 탭) + +UFR-PART-020: AI 주요 내용 체크 (개인별) +- AI가 추출한 주요 내용을 체크박스로 표시 +- 각 참석자는 중요하다고 생각하는 항목 독립적으로 체크 +- 다른 참석자의 체크 여부는 보이지 않음 +- AI 요약 시 체크 수에 따라 가중치 차등 적용 + +UFR-PART-030: 회의 중도 퇴장 +- "나가기" 버튼으로 회의에서 퇴장 +- 확인 모달: "회의에서 나가시겠습니까? 회의는 계속 진행됩니다" +- 퇴장 후 대시보드로 복귀 +- 회의록은 종료 시 공유됨 + +--- + +# 회의 생성자 전용 기능 +UFR-HOST-010: 회의 종료 권한 +- 회의 생성자만 "회의 종료" 버튼으로 회의 종료 가능 +- 일반 참석자에게는 버튼 숨김 + +UFR-HOST-020: 녹음 제어 권한 +- 회의 생성자만 녹음 일시정지/재개/종료 가능 + +--- + +# 용어 설명 기능 +UFR-TERM-010: 용어 자동 감지 및 표시 +- AI가 STT 분석 중 중요 용어 자동 감지 +- "용어" 탭에 실시간으로 표시 + +UFR-TERM-020: 회사 용어 사전 우선 표시 +- 회사 용어 사전(JSON)에 등록된 용어는 ⭐ 표시 +- 클릭 시 회사 특화 설명 표시 +- 사전에 없는 용어는 AI가 일반 설명 + 회의 맥락 제공 + +UFR-TERM-030: 용어 관리 (관리자 기능) +- 관리자는 회사 용어 사전 등록/수정 가능 +- JSON 파일 직접 편집 + +``` + +### 5.2 수정 필요 + +```markdown +# 기존 수정 1 +UFR-MEET-020: 회의 종료 권한 +- 기존: "회의 생성자 또는 참석자가 회의 종료" +- 변경: "회의 생성자만 회의 종료 가능" + +--- + +# 기존 수정 2 - UFR-AI-040 개선 +UFR-AI-040: 관련 회의록 자동 연결 (개선) + +기존 기능 (유지): +- ✅ AI가 벡터 유사도 검색으로 관련 회의록 자동 추천 +- ✅ 같은 프로젝트/팀의 회의록 중 관련도 높은 순으로 표시 +- ✅ 관련도 배지 표시 + +변경 및 개선 사항: +1. **최대 개수**: 5개 → 3개로 축소 (MVP) +2. **관련도 표시 방식**: 배지(높음/중간/낮음) → 퍼센트(95%, 78%) 변경 +3. **유사 내용 요약 추가** (신규): + - AI가 추천한 각 회의록에서 현재 회의와 유사한 부분 자동 추출 + - 유사한 내용을 3-5개 문장으로 요약하여 표시 + - 전체 회의록을 열지 않아도 핵심 내용 파악 가능 + - "전체 회의록 보기" 버튼으로 상세 내용 확인 +4. **성능 최적화**: + - 과거 회의록 저장 시 요약본 미리 생성 (배치 처리) + - 실시간 요약은 캐싱된 데이터 활용 + - 성능 목표: 1초 이내 표시 + +수행절차 (기존 유지): +1. 회의 종료 시 또는 회의록 작성 중 AI가 현재 회의 내용 분석 +2. 벡터 유사도 검색을 통해 관련 회의록 탐색 +3. 관련도가 높은 회의록 자동 연결 (최대 3개로 축소) +4. 각 회의록에서 유사한 내용 추출 및 요약 (신규 추가) +5. 회의 진행 화면, 회의록 상세 조회 화면에 표시 +``` + +### 5.3 제거 (v2.0 이관) + +```markdown +# v2.0 백로그로 이관 +- 공유 메모 입력 기능 +- 개인 메모 기능 +- 사용자 직접 용어 검색 기능 +- 용어 북마크 기능 +- 참석자별 세밀한 권한 UI +``` + +--- + +## 6. 화면설계 수정안 + +### 6.1 회의진행 화면 (05-회의진행.html) + +#### 6.1.1 상단 헤더 수정 +``` +기존: +┌─────────────────────────────────┐ +│ 회의 제목 | [회의 종료] │ +└─────────────────────────────────┘ + +변경: +┌─────────────────────────────────┐ +│ ← 나가기 | 회의 제목 | [회의종료] │ +└─────────────────────────────────┘ + +조건부 표시: +- "회의 종료" 버튼: 생성자만 표시 +- "나가기" 버튼: 모든 참석자 표시 +``` + +#### 6.1.2 탭 구조 +``` +┌─────────────────────────────────┐ +│ [AI 주요 내용] [용어] [관련 회의록] │ +├─────────────────────────────────┤ +│ (탭 콘텐츠) │ +└─────────────────────────────────┘ +``` + +#### 6.1.3 AI 주요 내용 탭 +```html +
2020년 구축한 우리 회사 ERP
+Proof of Concept (개념 증명)
+${term.shortDefinition}
+💡 현재 회의와 유사한 내용:
+