diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html
index fa25ae2..c86c3c1 100644
--- a/build/reports/problems/problems-report.html
+++ b/build/reports/problems/problems-report.html
@@ -650,7 +650,7 @@ code + .copy-button {
diff --git a/claude/uiux-v1.4.20-update-summary.md b/claude/uiux-v1.4.20-update-summary.md
new file mode 100644
index 0000000..659c098
--- /dev/null
+++ b/claude/uiux-v1.4.20-update-summary.md
@@ -0,0 +1,88 @@
+# UI/UX 설계서 v1.4.20 업데이트 요약
+
+## 업데이트 일시
+2025-10-25
+
+## 변경 사항
+
+### 1. 회의 종료 화면 (07-회의종료) - "옵션 2: 바로 최종 확정" 정책 명확화
+
+**위치**: 인터랙션 섹션, 라인 958-976
+
+**변경 내용**:
+- UFR-MEET-050 시나리오 2 명시 추가
+- 확인 다이얼로그 메시지 구체화: "바로 최종 확정하시겠습니까? AI가 정리한 내용 그대로 확정됩니다."
+- 안건별 검증완료 처리 단계 추가
+- 회의록 상태 변경 명확화: "작성중" → "확정완료"
+- 이동 페이지 변경: 02-대시보드.html → 10-회의록상세조회.html
+- 시나리오 2 특징 상세 설명 추가:
+ - 회의록 수정 단계를 건너뜀
+ - AI 생성 내용을 그대로 확정
+ - 모든 안건이 자동으로 검증완료 처리됨
+ - 확정 후에도 회의 생성자는 수정 가능 (잠금 해제 필요)
+
+### 2. 회의록 수정 화면 (11-회의록수정) - 안건 기반 충돌 해결 메커니즘 추가
+
+**위치**: 인터랙션 섹션, 라인 1531 이후 (새로운 섹션 9 추가)
+
+**변경 내용**:
+- UFR-COLLAB-020 안건 기반 충돌 방지 메커니즘 상세 추가
+- **안건 기반 충돌 방지 메커니즘**:
+ - **다른 안건 동시 편집**: 충돌 없음 (참석자 A는 안건 1, 참석자 B는 안건 2)
+ - **동일 안건 내 다른 필드 편집**: 자동 병합 (상세 요약, 관련회의록 등)
+ - **동일 필드 동시 수정**: Last Write Wins 방식 (덮어쓰기 경고 + 선택 옵션)
+- **편집 중 표시**:
+ - 다른 사용자 편집 중인 안건 표시
+ - 편집자 아바타 + 이름 실시간 표시
+ - 예: "김민준님이 이 안건을 편집 중입니다" + 아바타
+- **충돌 경고 모달**:
+ - 제목: "동시 수정 감지"
+ - 메시지: "다른 사용자가 이미 이 내용을 수정했습니다"
+ - 옵션: "최신 내용 보기" / "내 변경사항 유지"
+
+### 3. 회의록 수정 화면 (11-회의록수정) - UI 구성요소에 편집 중 표시 추가
+
+**위치**: UI 구성요소 > 안건 헤더, 라인 1389-1394
+
+**변경 내용**:
+- 안건 헤더에 편집 중 표시 추가:
+ - 다른 사용자 아바타 + 이름
+ - 예: "김민준님 편집 중" (아이콘 + 텍스트)
+
+### 4. 회의록 수정 화면 (11-회의록수정) - 에러 처리 섹션 업데이트
+
+**위치**: 에러 처리 섹션
+
+**변경 내용**:
+- 충돌 발생 에러 처리 상세화:
+ - 안건 기반 충돌 방지로 최소화
+ - 동일 필드 동시 수정 시 경고 모달 표시
+ - 선택 옵션 제공: 최신 내용 확인 / 내 변경사항 유지
+ - 병합 실패 시 에러 메시지: "병합 중 오류가 발생했습니다"
+
+### 5. 변경 이력 추가
+
+**위치**: 변경 이력 테이블
+
+**변경 내용**:
+- v1.4.20 (2025-10-25) 항목 추가:
+ - 유저스토리 v2.3.0 반영
+ - 회의 종료 화면 정책 명확화 (확인 전용, 바로 최종 확정 옵션 상세화)
+ - UFR-MEET-050: 최종 확정 2가지 시나리오 설명 추가
+ - UFR-COLLAB-020: 안건 기반 충돌 해결 메커니즘 상세 추가
+ - 실시간 협업 충돌 방지 정책 강화
+
+## 업데이트 방법
+- Python 스크립트를 이용한 자동 업데이트
+- 5개의 주요 업데이트 항목 모두 성공적으로 적용됨
+
+## 검증 완료
+- ✓ Update 1: 옵션 2: 바로 최종 확정 - Updated
+- ✓ Update 2: 안건 기반 충돌 해결 섹션 - Added
+- ✓ Update 3: 안건 헤더에 편집 중 표시 - Added
+- ✓ Update 4: 충돌 처리 업데이트 - Updated
+- ✓ Update 5: 변경 이력 추가 - Added
+
+## 관련 유저스토리
+- UFR-MEET-050: 회의록 최종 확정
+- UFR-COLLAB-020: 실시간 협업 및 충돌 해결
diff --git a/claude/userstory-comparison-summary.md b/claude/userstory-comparison-summary.md
new file mode 100644
index 0000000..a8bf6f2
--- /dev/null
+++ b/claude/userstory-comparison-summary.md
@@ -0,0 +1,217 @@
+# 유저스토리 v2.2.0 → v2.3.0 변경사항 요약
+
+## 📊 한눈에 보는 변경사항
+
+```
+v2.2.0 (25개) v2.3.0 (27개)
+┌─────────────────┐ ┌─────────────────┐
+│ AFR-USER-010 │ ──────────────────>│ UFR-USER-010 ✨ │ (로그인 상세화)
+│ AFR-USER-020 │ ──────────────────>│ UFR-USER-020 ✨ │ (대시보드 재설계)
+├─────────────────┤ ├─────────────────┤
+│ UFR-MEET-010 │ ──────────────────>│ UFR-MEET-010 ✨ │ (회의예약 개선)
+│ │ │ UFR-MEET-015 🆕 │ (참석자 실시간 초대)
+│ UFR-MEET-020 │ ──────────────────>│ UFR-MEET-020 ✨ │ (템플릿선택 상세화)
+│ UFR-MEET-030 │ ──────────────────>│ UFR-MEET-030 ✨ │ (회의시작 4개 탭)
+│ UFR-MEET-040 │ ──────────────────>│ UFR-MEET-040 ✨ │ (회의종료 3가지 액션)
+│ UFR-MEET-050 │ ──────────────────>│ UFR-MEET-050 ✨ │ (최종확정 2가지 시나리오)
+│ UFR-MEET-046 │ ──────────────────>│ UFR-MEET-046 ✨ │ (목록조회 샘플 30개)
+│ UFR-MEET-047 │ ──────────────────>│ UFR-MEET-047 ✨ │ (상세조회 관련회의록)
+│ UFR-MEET-055 │ ──────────────────>│ UFR-MEET-055 ✨ │ (회의록수정 3가지 시나리오)
+├─────────────────┤ ├─────────────────┤
+│ UFR-AI-010 │ ──────────────────>│ UFR-AI-010 │
+│ UFR-AI-020 │ ──────────────────>│ UFR-AI-020 │
+│ │ │ UFR-AI-030 🆕🎯 │ (실시간 AI 제안 - 차별화!)
+│ UFR-AI-035 │ ──────────────────>│ UFR-AI-035 │
+│ UFR-AI-036 │ ──────────────────>│ UFR-AI-036 │
+│ UFR-AI-040 │ ──────────────────>│ UFR-AI-040 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-STT-010 │ ──────────────────>│ UFR-STT-010 │
+│ UFR-STT-020 │ ──────────────────>│ UFR-STT-020 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-RAG-010 │ ──────────────────>│ UFR-RAG-010 │
+│ UFR-RAG-020 │ ──────────────────>│ UFR-RAG-020 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-COLLAB-010 │ ──────────────────>│ UFR-COLLAB-010 │
+│ UFR-COLLAB-020 │ ──────────────────>│ UFR-COLLAB-020 │
+│ UFR-COLLAB-030 │ ──────────────────>│ UFR-COLLAB-030 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-TODO-010 │ ──────────────────>│ UFR-TODO-010 │
+│ UFR-TODO-030 │ ──────────────────>│ UFR-TODO-030 │
+│ UFR-TODO-040 │ ──────────────────>│ UFR-TODO-040 │
+└─────────────────┘ ├─────────────────┤
+ │ UFR-NOTI-010 🆕 │ (알림발송 - 폴링 방식)
+ └─────────────────┘
+
+범례:
+🆕 = 완전 신규 추가
+🎯 = 차별화 핵심 기능
+✨ = 대폭 개선 (프로토타입 기반 재작성)
+```
+
+---
+
+## 🎯 3대 신규 기능
+
+### 1. UFR-MEET-015: 참석자 실시간 초대 🆕
+- **위치**: 회의 진행 화면 "참석자" 탭
+- **기능**: 회의 중 검색 모달로 참석자 추가 → 실시간 동기화 → 알림 발송
+- **의미**: 회의 진행 중 동적 참석자 관리로 유연성 향상
+
+### 2. UFR-AI-030: 실시간 AI 제안 🆕🎯
+- **위치**: 회의 진행 화면 "AI 제안" 탭
+- **기능**: STT 텍스트 실시간 분석 → 주요 내용 감지 → 제안 카드 생성 → 메모에 추가
+- **의미**: **차별화 전략 "지능형 회의 진행 지원" 실현**
+- **효과**: 회의 중 놓치는 내용 최소화
+
+### 3. UFR-NOTI-010: 알림 발송 🆕
+- **방식**: 폴링 (1분 간격) → 이메일 발송 → 최대 3회 재시도
+- **알림 유형**: Todo 할당, Todo 완료, 회의 시작, 회의록 확정, 참석자 초대, 회의록 수정
+- **의미**: **알림 아키텍처 폴링 방식으로 통일** → Notification 서비스 독립성 확보
+
+---
+
+## 📈 유저스토리 품질 개선
+
+### 형식 표준화 (Before & After)
+
+#### v2.2.0 (자유 형식)
+```
+UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, ...
+- 시나리오: 회의 예약 및 참석자 초대
+ 회의 예약 화면에 접근한 상황에서 | ...
+
+ [입력 요구사항]
+ - 회의 제목: 최대 100자 (필수)
+ ...
+
+ [처리 결과]
+ - 회의가 예약됨
+ ...
+
+- M/13
+```
+
+#### v2.3.0 (표준 형식)
+```
+### UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, ...
+
+**수행절차:**
+1. 대시보드에서 "회의예약" FAB 버튼 클릭
+2. 회의 제목 입력 (최대 100자)
+3. 날짜 선택 (오늘 이후 날짜, 달력 UI)
+...
+10. "임시저장" 버튼 또는 "예약 완료" 버튼 클릭
+
+**입력:**
+- 회의 제목: 텍스트 입력, 필수, 최대 100자, 문자 카운터 표시
+- 날짜: date 타입, 필수, 오늘 이후 날짜만 선택 가능
+...
+
+**출력/결과:**
+- 예약 완료: "회의가 예약되었습니다" 토스트 메시지, 대시보드로 이동
+- 임시저장: "임시 저장되었습니다" 토스트 메시지
+...
+
+**예외처리:**
+- 제목 미입력: "회의 제목을 입력해주세요" 토스트, 제목 필드 포커스
+- 과거 날짜 선택: "과거 날짜는 선택할 수 없습니다" 토스트
+...
+
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
+- UFR-MEET-020: 템플릿선택
+```
+
+### 개선 효과
+- ✅ **수행절차**: 단계별 명확한 작업 흐름
+- ✅ **입력**: 필드 타입, 검증 규칙, UI 요소 상세 명세
+- ✅ **출력/결과**: 성공/실패 시나리오별 응답 명시
+- ✅ **예외처리**: 에러 상황별 처리 방법 구체화
+- ✅ **관련 유저스토리**: 기능 간 연계성 추적
+
+---
+
+## 🏗️ 프로토타입 연계 강화
+
+| 프로토타입 화면 | 연계 유저스토리 | 상태 |
+|----------------|----------------|------|
+| 01-로그인.html | UFR-USER-010 | ✅ 1:1 매핑 |
+| 02-대시보드.html | UFR-USER-020 | ✅ 1:1 매핑 |
+| 03-회의예약.html | UFR-MEET-010 | ✅ 1:1 매핑 |
+| 04-템플릿선택.html | UFR-MEET-020 | ✅ 1:1 매핑 |
+| 05-회의진행.html | UFR-MEET-030, UFR-MEET-015 (신규), UFR-AI-030 (신규) | ✅ 1:N 매핑 |
+| 07-회의종료.html | UFR-MEET-040 | ✅ 1:1 매핑 |
+| 10-회의록상세조회.html | UFR-MEET-047 | ✅ 1:1 매핑 |
+| 11-회의록수정.html | UFR-MEET-055 | ✅ 1:1 매핑 |
+| 12-회의록목록조회.html | UFR-MEET-046 | ✅ 1:1 매핑 |
+
+**결과**: 10개 프로토타입 화면 100% 유저스토리 연계 완료
+
+---
+
+## 🔑 핵심 아키텍처 변경
+
+### 알림 아키텍처: 실시간 → 폴링 방식
+
+#### Before (v2.2.0)
+```
+[Meeting Service] ──(실시간 발송)──> [Notification Service] ──> [Email]
+ ↓
+ Todo 할당 발생 → 즉시 이메일 발송
+```
+
+#### After (v2.3.0)
+```
+[Meeting Service] ──(DB 레코드 생성)──> [Notification 테이블]
+ ↓
+ (1분 간격 폴링)
+ ↓
+ [Notification Service] ──> [Email]
+ ↓
+ (발송 상태 업데이트)
+```
+
+**개선 효과**:
+- ✅ **Notification 서비스 독립성 강화**: 마이크로서비스 간 느슨한 결합
+- ✅ **시스템 안정성 향상**: 이메일 발송 실패 시 자동 재시도 (최대 3회)
+- ✅ **확장성 확보**: 폴링 주기 조정으로 트래픽 제어 가능
+
+---
+
+## 📊 통계 비교
+
+| 항목 | v2.2.0 | v2.3.0 | 변화 |
+|------|--------|--------|------|
+| **유저스토리 수** | 25개 | 27개 | +2개 (+8%) |
+| **신규 추가** | - | 3개 | - |
+| **AFR 코드** | 2개 | 0개 | -2개 (100% 제거) |
+| **UFR 코드** | 23개 | 27개 | +4개 (+17%) |
+| **평균 상세도** | 20-30줄 | 60-100줄 | **약 3배** |
+| **프로토타입 연계** | 부분적 | 100% (10개 화면) | - |
+| **표준 형식 적용** | 0% | 100% (27개) | - |
+
+---
+
+## ✅ 권장 후속 조치 체크리스트
+
+### 🔴 긴급 (1주 내)
+- [ ] 신규 유저스토리 3개 기반 API 설계 (UFR-MEET-015, UFR-AI-030, UFR-NOTI-010)
+- [ ] 알림 아키텍처 폴링 방식 반영 (물리 아키텍처 업데이트)
+- [ ] 프로토타입 ↔ 유저스토리 1:1 매핑 검증
+
+### 🟡 중요 (2주 내)
+- [ ] API 설계서 v2.3.0 기반 전면 업데이트 (입력/출력 명세 반영)
+- [ ] 예외처리 시나리오 → 테스트 케이스 전환
+- [ ] 관련 유저스토리 기반 통합 테스트 시나리오 작성
+
+### 🟢 일반 (3주 내)
+- [ ] 유저스토리별 개발 우선순위 재평가
+- [ ] 신규 기능 3개 개발 일정 수립
+- [ ] 프로토타입 기반 개발 가이드 작성
+
+---
+
+**분석 일시**: 2025-10-25
+**분석 파일**:
+- 상세 분석 (JSON): `claude/userstory-comparison-v2.2.0-to-v2.3.0.json`
+- 상세 분석 (Markdown): `claude/userstory-comparison-v2.2.0-to-v2.3.0.md`
diff --git a/claude/userstory-comparison-v2.2.0-to-v2.3.0.json b/claude/userstory-comparison-v2.2.0-to-v2.3.0.json
new file mode 100644
index 0000000..e84310c
--- /dev/null
+++ b/claude/userstory-comparison-v2.2.0-to-v2.3.0.json
@@ -0,0 +1,343 @@
+{
+ "comparisonMetadata": {
+ "previousVersion": "v2.2.0",
+ "currentVersion": "v2.3.0",
+ "comparisonDate": "2025-10-25",
+ "analyst": "Claude (AI Assistant)",
+ "previousVersionDate": "2025-10-23",
+ "currentVersionDate": "2025-10-24"
+ },
+
+ "documentStructure": {
+ "v2.2.0": {
+ "description": "기존 구조: 유저스토리 섹션과 논리 아키텍처 반영 사항 요약 섹션 포함",
+ "mainSections": [
+ "차별화 전략",
+ "마이크로서비스 구성",
+ "유저스토리",
+ "논리 아키텍처 반영 사항 요약",
+ "문서 이력"
+ ],
+ "userStoryFormat": "계층적 구조 (서비스 > 기능 그룹 > 유저스토리)",
+ "userStoryPrefix": "AFR/UFR 혼용",
+ "totalUserStories": 25
+ },
+ "v2.3.0": {
+ "description": "신규 구조: 프로토타입 기반으로 재정비, 논리 아키텍처 섹션 제거, 유저스토리 형식 표준화",
+ "mainSections": [
+ "차별화 전략",
+ "마이크로서비스 구성",
+ "유저스토리 v2.3.0 - USER & MEETING 서비스",
+ "문서 이력"
+ ],
+ "userStoryFormat": "표준화된 형식 (수행절차, 입력, 출력/결과, 예외처리, 관련 유저스토리)",
+ "userStoryPrefix": "UFR로 통일 (AFR 제거)",
+ "totalUserStories": 27
+ },
+ "changes": [
+ "논리 아키텍처 반영 사항 요약 섹션 삭제 (설계 문서로 이관)",
+ "유저스토리 형식 대폭 개선: 기존의 자유 형식에서 구조화된 템플릿으로 전환",
+ "모든 유저스토리에 '수행절차', '입력', '출력/결과', '예외처리', '관련 유저스토리' 섹션 추가",
+ "AFR 코드 제거 및 UFR로 통일 (더 이상 아키텍처 참조 코드 사용하지 않음)",
+ "프로토타입 화면과의 연계성 강화 (화면 번호, 파일명 명시)",
+ "유저스토리 ID 체계 유지 (기존 24개 ID 승계)"
+ ]
+ },
+
+ "addedStories": [
+ {
+ "code": "UFR-USER-010",
+ "previousCode": "AFR-USER-010",
+ "title": "[로그인] 사용자로서 | 나는, 시스템에 접근하기 위해 | 사번과 비밀번호로 로그인하고 싶다",
+ "description": "기존 AFR-USER-010에서 UFR-USER-010으로 전환. 상세한 수행절차, 입력/출력 명세, 예외처리 추가",
+ "significance": "프로토타입 01-로그인.html과 직접 연계. 로그인 흐름, 검증 규칙, 에러 처리가 구체화됨",
+ "newFeatures": [
+ "로그인 상태 유지 체크박스 추가",
+ "Enter 키 입력 시 다음 필드로 자동 이동",
+ "비밀번호 최소 8자 검증",
+ "로딩 상태 UI 명시",
+ "이미 로그인된 경우 자동 리다이렉트"
+ ],
+ "relatedPrototype": "01-로그인.html"
+ },
+ {
+ "code": "UFR-USER-020",
+ "previousCode": "AFR-USER-020",
+ "title": "[대시보드] 사용자로서 | 나는, 나의 회의 및 Todo 현황을 파악하기 위해 | 대시보드를 조회하고 싶다",
+ "description": "기존 AFR-USER-020에서 UFR-USER-020으로 전환. 대시보드 위젯 구성 재정의 및 상세 명세 추가",
+ "significance": "프로토타입 02-대시보드.html 기반으로 대시보드 구성 완전 재설계. 통계 블록, 최근 회의, Todo, 회의록 섹션 구체화",
+ "newFeatures": [
+ "통계 블록 2열 그리드 (예정된 회의, 나의 Todo)",
+ "최근 회의 목록 (회의록 미생성 우선, 최대 3개)",
+ "나의 Todo 목록 (미완료 우선, D-day 표시, 최대 3개)",
+ "나의 회의록 2x2 그리드 (최대 4개)",
+ "FAB 메뉴 (회의예약, 바로시작)",
+ "반응형 네비게이션 (데스크톱 사이드바, 모바일 하단 탭)"
+ ],
+ "relatedPrototype": "02-대시보드.html"
+ },
+ {
+ "code": "UFR-MEET-015",
+ "previousCode": null,
+ "title": "[회의진행] 회의 참석자로서 | 나는, 회의 중 추가 참석자가 필요할 때 | 실시간으로 참석자를 초대하고 싶다",
+ "description": "**신규 추가**: 회의 진행 중 실시간 참석자 초대 기능",
+ "significance": "프로토타입 05-회의진행.html의 '참석자' 탭 기능 반영. 회의 진행 중 동적 참석자 관리 가능",
+ "newFeatures": [
+ "회의 진행 중 검색 모달을 통한 참석자 초대",
+ "초대된 참석자 실시간 표시",
+ "Notification 서비스 연동 (초대 알림 발송)",
+ "모든 참석자에게 WebSocket 기반 실시간 동기화"
+ ],
+ "relatedPrototype": "05-회의진행.html",
+ "relatedUserStories": [
+ "UFR-MEET-030 (회의시작)",
+ "UFR-COLLAB-010 (회의록수정동기화)",
+ "UFR-NOTI-010 (알림발송)"
+ ]
+ },
+ {
+ "code": "UFR-AI-030",
+ "previousCode": null,
+ "title": "[실시간AI제안] 회의 참석자로서 | 나는, 회의 중 놓치는 내용을 최소화하기 위해 | AI가 실시간으로 주요 내용을 분석하여 제안하고 싶다",
+ "description": "**신규 추가**: 회의 진행 중 AI 실시간 분석 및 제안 기능",
+ "significance": "프로토타입 05-회의진행.html의 'AI 제안' 탭 기능 구현. 회의 중 AI가 주요 내용을 감지하여 자동 제안하는 차별화 기능",
+ "newFeatures": [
+ "STT 텍스트 실시간 분석",
+ "주요 내용 감지 시 AI 제안 카드 자동 생성",
+ "'메모에 추가' 버튼으로 회의 메모에 즉시 추가",
+ "모든 참석자에게 실시간 동기화",
+ "로컬 캐시를 통한 네트워크 오류 대응"
+ ],
+ "relatedPrototype": "05-회의진행.html",
+ "relatedUserStories": [
+ "UFR-STT-020 (텍스트변환)",
+ "UFR-MEET-030 (회의시작)",
+ "UFR-COLLAB-010 (회의록수정동기화)"
+ ],
+ "differentiatorImpact": "지능형 회의 진행 지원의 핵심 기능으로, 회의 중 놓치는 내용 최소화"
+ },
+ {
+ "code": "UFR-NOTI-010",
+ "previousCode": null,
+ "title": "[알림발송] Notification 시스템으로서 | 나는, 사용자에게 중요한 이벤트를 알리기 위해 | 주기적으로 알림 대상을 확인하여 이메일을 발송하고 싶다",
+ "description": "**신규 추가**: 알림 시스템 폴링 방식 명세",
+ "significance": "알림 아키텍처를 실시간 발송에서 주기적 폴링 방식으로 통일. Notification 서비스의 독립성과 안정성 확보",
+ "newFeatures": [
+ "주기적 폴링 (1분 간격) 방식 알림 발송",
+ "이메일 발송 실패 시 최대 3회 재시도",
+ "알림 유형별 템플릿 적용",
+ "6가지 알림 유형 지원 (Todo 할당, Todo 완료, 회의 시작, 회의록 확정, 참석자 초대, 회의록 수정)"
+ ],
+ "relatedUserStories": [
+ "UFR-TODO-010 (Todo할당)",
+ "UFR-TODO-030 (Todo완료처리)",
+ "UFR-MEET-015 (참석자 실시간 초대)",
+ "UFR-MEET-050 (최종확정)"
+ ],
+ "architectureImpact": "Notification 서비스를 독립적인 폴링 기반 마이크로서비스로 명확히 정의"
+ }
+ ],
+
+ "removedStories": [
+ {
+ "code": "AFR-USER-010",
+ "title": "[사용자관리] 시스템 관리자로서 | 나는, 서비스 보안을 위해 | 사용자 인증 기능을 원한다",
+ "reason": "UFR-USER-010으로 전환. AFR(아키텍처 참조) 코드 체계 폐지 및 UFR(사용자 기능 요구사항)로 통일",
+ "impact": "코드 변경일 뿐, 기능은 UFR-USER-010으로 승계되어 유지됨"
+ },
+ {
+ "code": "AFR-USER-020",
+ "title": "[대시보드] 사용자로서 | 나는, 회의록 서비스의 주요 정보를 한눈에 파악하기 위해 | 대시보드를 통해 요약 정보를 확인하고 싶다",
+ "reason": "UFR-USER-020으로 전환. 프로토타입 기반으로 상세 명세 재작성",
+ "impact": "코드 변경 및 내용 대폭 보강. 기능은 강화되어 승계됨"
+ }
+ ],
+
+ "modifiedStories": [
+ {
+ "code": "UFR-MEET-010",
+ "title": "[회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다",
+ "changes": [
+ "프로토타입 03-회의예약.html 기반으로 전면 재작성",
+ "상세한 수행절차 추가 (10단계)",
+ "입력 필드 상세 명세 (종일 회의 토글, 온라인/오프라인 회의 토글, 회의 링크 자동 생성)",
+ "예외처리 8가지 추가 (과거 날짜 선택, 뒤로가기 확인 모달 등)",
+ "임시저장 기능 추가",
+ "참석자 검색 모달 UI 상세화"
+ ],
+ "significance": "프로토타입과의 정확한 매칭으로 개발 시 명확한 가이드 제공"
+ },
+ {
+ "code": "UFR-MEET-020",
+ "title": "[템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다",
+ "changes": [
+ "프로토타입 04-템플릿선택.html 기반으로 재작성",
+ "4가지 템플릿 내용 상세 명세 (일반, 스크럼, 킥오프, 주간 회의)",
+ "건너뛰기 옵션 추가",
+ "템플릿 미리보기 구성 명시 (아이콘, 설명, 섹션 목록)"
+ ],
+ "significance": "템플릿별 섹션 구성이 구체화되어 일관된 회의록 작성 지원"
+ },
+ {
+ "code": "UFR-MEET-030",
+ "title": "[회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다",
+ "changes": [
+ "프로토타입 05-회의진행.html 기반으로 전면 재작성",
+ "8단계 상세 수행절차 추가",
+ "4개 탭 네비게이션 명시 (참석자, AI 제안, 용어사전, 관련회의록)",
+ "웨이브폼 애니메이션, 타이머, 녹음 상태 UI 추가",
+ "하단 고정 메모 영역 추가",
+ "일시정지 및 종료 확인 모달 추가"
+ ],
+ "significance": "회의 진행 화면의 핵심 UX가 상세히 정의되어 실시간 협업 기능 구현 가이드 제공"
+ },
+ {
+ "code": "UFR-MEET-040",
+ "title": "[회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다",
+ "changes": [
+ "프로토타입 07-회의종료.html 기반으로 재작성",
+ "통계 카드 4개 명시 (참석자, 시간, 안건, Todo)",
+ "주요 키워드 태그 표시 추가",
+ "안건별 아코디언 카드 구조 명시 (AI 한줄 요약 + 상세 요약 + Todo)",
+ "읽기 전용 안내 표시",
+ "하단 액션 바 3가지 옵션 명시 (회의록 수정, 바로 최종 확정, 대시보드)"
+ ],
+ "significance": "회의 종료 후 워크플로우가 명확해져 사용자 선택권 확대 및 UX 개선"
+ },
+ {
+ "code": "UFR-MEET-050",
+ "title": "[최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다",
+ "changes": [
+ "2가지 시나리오로 분리 (회의록 수정 후 확정, 회의 종료 화면에서 바로 확정)",
+ "각 시나리오별 수행절차 5-6단계 상세화",
+ "확인 모달 메시지 구체화",
+ "바로 확정 시 모든 안건 자동 검증 완료 처리 로직 추가",
+ "확정 후 편집 권한 정책 명시 (회의 생성자만 잠금 해제 후 수정 가능)"
+ ],
+ "significance": "유연한 확정 워크플로우 제공으로 사용자 편의성 향상"
+ },
+ {
+ "code": "UFR-MEET-046",
+ "title": "[회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다",
+ "changes": [
+ "프로토타입 12-회의록목록조회.html 기반으로 재작성",
+ "데이터 소스 명시 (common.js → SAMPLE_MINUTES 배열)",
+ "필터링 옵션 상세화 (상태별, 정렬, 참여 유형, 검색)",
+ "통계 표시 추가",
+ "페이지네이션 방식 명시 (초기 10개, '10개 더보기' 버튼)",
+ "목록 표시 정보 8가지 추가",
+ "우선순위 M → S로 변경 (MVP 집중)"
+ ],
+ "significance": "프로토타입 연계 강화, 샘플 데이터 30개 기반 개발 가능"
+ },
+ {
+ "code": "UFR-MEET-047",
+ "title": "[회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다",
+ "changes": [
+ "프로토타입 10-회의록상세조회.html 기반으로 재작성",
+ "회의 기본 정보 표시 항목 7가지 상세화",
+ "섹션별 상세 내용 표시 구조 추가",
+ "관련 회의록 섹션 추가 (최대 3개, 관련도 % 표시)",
+ "탭 네비게이션 구성 명시 (대시보드, 회의록 2개 탭)"
+ ],
+ "significance": "회의록 조회 화면 정보 구조 명확화 및 관련 회의록 연결 강화"
+ },
+ {
+ "code": "UFR-MEET-055",
+ "title": "[회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다",
+ "changes": [
+ "프로토타입 11-회의록수정.html 기반으로 전면 재작성",
+ "3가지 시나리오로 확장 (작성중 회의록 수정, 확정완료 회의록 수정, 안건 검증)",
+ "각 시나리오별 상세 수행절차 추가",
+ "잠금 해제 메커니즘 명시 (확정완료 회의록의 경우)",
+ "검증 완료 프로세스 상세화 (안건별 체크 버튼, 검증률 표시)"
+ ],
+ "significance": "회의록 수정 워크플로우가 상태별로 명확해져 협업 시나리오 지원 강화"
+ }
+ ],
+
+ "overallImpact": {
+ "userExperience": {
+ "improvements": [
+ "프로토타입 기반 유저스토리로 실제 사용 흐름과 정확히 일치",
+ "상세한 수행절차로 사용자 작업 흐름 명확화",
+ "예외처리 시나리오 추가로 에러 상황 대응 개선",
+ "실시간 AI 제안 기능으로 회의 중 놓치는 내용 최소화",
+ "유연한 확정 워크플로우로 사용자 선택권 확대",
+ "회의 진행 중 참석자 실시간 초대로 협업 유연성 향상"
+ ],
+ "keyEnhancements": [
+ "대시보드 재설계로 정보 접근성 향상 (통계 블록, 최근 회의, Todo, 회의록 4개 섹션)",
+ "회의 진행 화면 4개 탭으로 기능 분리 (참석자, AI 제안, 용어사전, 관련회의록)",
+ "회의 종료 화면 3가지 액션 옵션으로 워크플로우 유연성 확보"
+ ]
+ },
+ "functionality": {
+ "improvements": [
+ "신규 기능 3개 추가 (참석자 실시간 초대, 실시간 AI 제안, 알림 발송)",
+ "알림 아키텍처 폴링 방식으로 통일하여 시스템 안정성 확보",
+ "모든 유저스토리에 입력/출력 명세 추가로 API 설계 가이드 제공",
+ "예외처리 시나리오 추가로 에러 핸들링 강화",
+ "관련 유저스토리 명시로 기능 간 연계성 파악 용이"
+ ],
+ "architectureAlignment": [
+ "Notification 서비스의 독립성 강화 (폴링 방식)",
+ "프로토타입 10개 화면과 유저스토리 1:1 매핑",
+ "WebSocket 기반 실시간 동기화 시나리오 명확화"
+ ]
+ },
+ "documentation": {
+ "improvements": [
+ "유저스토리 형식 표준화로 일관성 확보",
+ "AFR/UFR 혼용 제거, UFR로 통일하여 코드 체계 단순화",
+ "프로토타입 파일명 명시로 개발 시 참조 용이성 향상",
+ "각 유저스토리에 관련 유저스토리 섹션 추가로 추적성 확보",
+ "문서 구조 간소화 (논리 아키텍처 섹션 제거)"
+ ],
+ "qualityEnhancement": [
+ "v2.2.0: 25개 유저스토리, 자유 형식",
+ "v2.3.0: 27개 유저스토리, 표준 형식 (수행절차, 입력, 출력/결과, 예외처리, 관련 유저스토리)",
+ "평균 유저스토리 상세도 약 3배 증가 (기존 20-30줄 → 60-100줄)"
+ ]
+ }
+ },
+
+ "statistics": {
+ "v2.2.0": {
+ "totalUserStories": 25,
+ "afrCodes": 2,
+ "ufrCodes": 23,
+ "averageLinesPerStory": "20-30 (추정)"
+ },
+ "v2.3.0": {
+ "totalUserStories": 27,
+ "afrCodes": 0,
+ "ufrCodes": 27,
+ "averageLinesPerStory": "60-100 (추정)"
+ },
+ "changes": {
+ "added": 5,
+ "removed": 2,
+ "modified": "대다수 (프로토타입 기반 재작성)"
+ }
+ },
+
+ "keyTakeaways": [
+ "v2.3.0은 프로토타입 분석을 통해 유저스토리를 전면 재정비한 버전",
+ "신규 기능 3개 추가: 참석자 실시간 초대, 실시간 AI 제안, 알림 발송",
+ "알림 아키텍처를 폴링 방식으로 통일하여 시스템 안정성 확보",
+ "유저스토리 형식 표준화로 개발 가이드 역할 강화",
+ "프로토타입 10개 화면과 유저스토리 1:1 매핑으로 개발 명확성 확보",
+ "기존 24개 유저스토리 ID 승계하여 연속성 유지",
+ "평균 유저스토리 상세도 약 3배 증가로 품질 대폭 향상"
+ ],
+
+ "recommendedActions": [
+ "API 설계서를 v2.3.0 유저스토리 기반으로 업데이트 (입력/출력 명세 반영)",
+ "프로토타입과 유저스토리 간 1:1 매핑 검증",
+ "신규 추가된 UFR-MEET-015, UFR-AI-030, UFR-NOTI-010 기반 API 및 시퀀스 설계",
+ "알림 아키텍처 폴링 방식 반영하여 물리 아키텍처 업데이트",
+ "각 유저스토리의 예외처리 시나리오를 테스트 케이스로 전환",
+ "관련 유저스토리 섹션을 활용하여 통합 테스트 시나리오 작성"
+ ]
+}
diff --git a/claude/userstory-comparison-v2.2.0-to-v2.3.0.md b/claude/userstory-comparison-v2.2.0-to-v2.3.0.md
new file mode 100644
index 0000000..4e88f17
--- /dev/null
+++ b/claude/userstory-comparison-v2.2.0-to-v2.3.0.md
@@ -0,0 +1,404 @@
+# 유저스토리 v2.2.0 → v2.3.0 변경사항 분석 보고서
+
+**분석 일시**: 2025-10-25
+**이전 버전**: v2.2.0 (2025-10-23)
+**현재 버전**: v2.3.0 (2025-10-24)
+**분석자**: Claude (AI Assistant)
+
+---
+
+## 📊 주요 통계
+
+| 항목 | v2.2.0 | v2.3.0 | 변화 |
+|------|--------|--------|------|
+| **총 유저스토리 수** | 25개 | 27개 | +2개 |
+| **신규 추가** | - | 5개 | - |
+| **삭제 (AFR → UFR 전환)** | 2개 | - | - |
+| **AFR 코드** | 2개 | 0개 | -2개 |
+| **UFR 코드** | 23개 | 27개 | +4개 |
+| **평균 상세도** | 20-30줄 | 60-100줄 | 약 3배 증가 |
+
+---
+
+## 🏗️ 문서 구조 변경
+
+### v2.2.0 구조
+```
+1. 차별화 전략
+2. 마이크로서비스 구성
+3. 유저스토리 (자유 형식)
+4. 논리 아키텍처 반영 사항 요약
+5. 문서 이력
+```
+
+### v2.3.0 구조 (개선)
+```
+1. 차별화 전략
+2. 마이크로서비스 구성
+3. 유저스토리 v2.3.0 - USER & MEETING 서비스 (표준 형식)
+ - 수행절차
+ - 입력
+ - 출력/결과
+ - 예외처리
+ - 관련 유저스토리
+4. 문서 이력
+```
+
+### 주요 구조 변경사항
+- ✅ **논리 아키텍처 반영 사항 요약 섹션 삭제**: 설계 문서로 이관
+- ✅ **유저스토리 형식 표준화**: 모든 유저스토리에 5개 필수 섹션 적용
+- ✅ **AFR 코드 폐지**: UFR로 통일하여 코드 체계 단순화
+- ✅ **프로토타입 연계 강화**: 화면 번호, 파일명 명시
+
+---
+
+## ✨ 신규 추가 유저스토리 (5개)
+
+### 1. UFR-USER-010: [로그인]
+**이전**: AFR-USER-010 (아키텍처 참조 코드)
+**변경**: UFR-USER-010 (사용자 기능 요구사항 코드)
+
+**주요 개선사항**:
+- 프로토타입 `01-로그인.html` 기반 재작성
+- 상세 수행절차 6단계 추가
+- 입력 검증 규칙 명시 (비밀번호 최소 8자, Enter 키 자동 이동)
+- 예외처리 5가지 추가
+- 로그인 상태 유지 체크박스 추가
+
+**관련 프로토타입**: `01-로그인.html`
+
+---
+
+### 2. UFR-USER-020: [대시보드]
+**이전**: AFR-USER-020
+**변경**: UFR-USER-020
+
+**주요 개선사항**:
+- 프로토타입 `02-대시보드.html` 기반 전면 재설계
+- 통계 블록 2열 그리드 (예정된 회의, 나의 Todo)
+- 최근 회의 목록 (최대 3개, 회의록 미생성 우선)
+- 나의 Todo 목록 (최대 3개, 미완료 우선, D-day 표시)
+- 나의 회의록 2x2 그리드 (최대 4개)
+- FAB 메뉴 (회의예약, 바로시작)
+- 반응형 네비게이션 (데스크톱 사이드바, 모바일 하단 탭)
+
+**관련 프로토타입**: `02-대시보드.html`
+
+---
+
+### 3. UFR-MEET-015: [회의진행] 참석자 실시간 초대 🆕
+**완전 신규 추가**
+
+**기능 설명**:
+- 회의 진행 중 추가 참석자가 필요할 때 실시간으로 초대
+- 검색 모달을 통한 사용자 검색 및 선택
+- 초대된 참석자 실시간 표시
+- Notification 서비스 연동 (초대 알림 발송)
+- 모든 참석자에게 WebSocket 기반 실시간 동기화
+
+**의미**:
+- 프로토타입 `05-회의진행.html`의 "참석자" 탭 기능 구현
+- 회의 진행 중 동적 참석자 관리로 유연성 향상
+
+**관련 유저스토리**:
+- UFR-MEET-030 (회의시작)
+- UFR-COLLAB-010 (회의록수정동기화)
+- UFR-NOTI-010 (알림발송)
+
+**관련 프로토타입**: `05-회의진행.html`
+
+---
+
+### 4. UFR-AI-030: [실시간AI제안] 🆕 🎯
+**완전 신규 추가** - **차별화 핵심 기능**
+
+**기능 설명**:
+- 회의 진행 중 STT 텍스트 실시간 분석
+- AI가 주요 내용 감지 시 제안 카드 자동 생성
+- 제안 제목, 내용 (1-2문장), 타임스탬프 표시
+- "메모에 추가" 버튼으로 회의 메모에 즉시 반영
+- 모든 참석자에게 실시간 동기화
+- 로컬 캐시를 통한 네트워크 오류 대응
+
+**의미**:
+- 프로토타입 `05-회의진행.html`의 "AI 제안" 탭 핵심 기능
+- **차별화 전략의 "지능형 회의 진행 지원" 실현**
+- 회의 중 놓치는 내용 최소화로 회의록 품질 향상
+
+**관련 유저스토리**:
+- UFR-STT-020 (텍스트변환)
+- UFR-MEET-030 (회의시작)
+- UFR-COLLAB-010 (회의록수정동기화)
+
+**관련 프로토타입**: `05-회의진행.html`
+
+---
+
+### 5. UFR-NOTI-010: [알림발송] 🆕
+**완전 신규 추가** - **알림 아키텍처 정의**
+
+**기능 설명**:
+- 주기적 폴링 방식 (1분 간격) 알림 발송
+- Notification 테이블에서 발송 대기 알림 조회
+- 이메일 발송 실패 시 최대 3회 재시도
+- 알림 유형별 템플릿 적용
+- 6가지 알림 유형 지원:
+ - Todo 할당
+ - Todo 완료
+ - 회의 시작 (10분 전)
+ - 회의록 확정
+ - 참석자 초대
+ - 회의록 수정
+
+**의미**:
+- **알림 아키텍처를 실시간 발송에서 폴링 방식으로 통일**
+- Notification 서비스의 독립성과 안정성 확보
+- 마이크로서비스 간 느슨한 결합 실현
+
+**관련 유저스토리**:
+- UFR-TODO-010 (Todo할당)
+- UFR-TODO-030 (Todo완료처리)
+- UFR-MEET-015 (참석자 실시간 초대)
+- UFR-MEET-050 (최종확정)
+
+---
+
+## ❌ 삭제된 유저스토리 (2개)
+
+### 1. AFR-USER-010: [사용자관리]
+**삭제 이유**: UFR-USER-010으로 전환 (AFR 코드 체계 폐지)
+**영향**: 기능은 UFR-USER-010으로 승계되어 유지됨
+
+### 2. AFR-USER-020: [대시보드]
+**삭제 이유**: UFR-USER-020으로 전환 (프로토타입 기반 재작성)
+**영향**: 기능은 강화되어 UFR-USER-020으로 승계됨
+
+---
+
+## 🔄 주요 수정된 유저스토리
+
+### 1. UFR-MEET-010: [회의예약]
+**변경사항**:
+- 프로토타입 `03-회의예약.html` 기반 전면 재작성
+- 상세한 수행절차 10단계 추가
+- 입력 필드 상세 명세 (종일 회의 토글, 온라인/오프라인 회의 토글, 회의 링크 자동 생성)
+- 예외처리 8가지 추가 (과거 날짜 선택, 뒤로가기 확인 모달 등)
+- 임시저장 기능 추가
+- 참석자 검색 모달 UI 상세화
+
+**의미**: 프로토타입과의 정확한 매칭으로 개발 시 명확한 가이드 제공
+
+---
+
+### 2. UFR-MEET-020: [템플릿선택]
+**변경사항**:
+- 프로토타입 `04-템플릿선택.html` 기반 재작성
+- 4가지 템플릿 내용 상세 명세:
+ - 일반 회의: 회의 개요, 논의 사항, 결정 사항, 액션 아이템
+ - 스크럼 회의: 어제 한 일, 오늘 할 일, 블로커/이슈
+ - 킥오프 회의: 프로젝트 개요, 목표 및 범위, 역할 및 책임, 일정 및 마일스톤
+ - 주간 회의: 지난주 성과, 이번주 계획, 주요 이슈, 다음 액션
+- 건너뛰기 옵션 추가
+- 템플릿 미리보기 구성 명시
+
+**의미**: 템플릿별 섹션 구성이 구체화되어 일관된 회의록 작성 지원
+
+---
+
+### 3. UFR-MEET-030: [회의시작]
+**변경사항**:
+- 프로토타입 `05-회의진행.html` 기반 전면 재작성
+- 8단계 상세 수행절차 추가
+- **4개 탭 네비게이션 명시**:
+ - 참석자: 참석자 목록 및 실시간 초대
+ - **AI 제안**: 실시간 AI 분석 결과 및 메모 추가 (신규)
+ - 용어사전: 자동 추출된 용어 및 검색
+ - 관련회의록: 자동 연결된 이전 회의록
+- 웨이브폼 애니메이션, 타이머, 녹음 상태 UI 추가
+- 하단 고정 메모 영역 추가
+- 일시정지 및 종료 확인 모달 추가
+
+**의미**: 회의 진행 화면의 핵심 UX가 상세히 정의되어 실시간 협업 기능 구현 가이드 제공
+
+---
+
+### 4. UFR-MEET-040: [회의종료]
+**변경사항**:
+- 프로토타입 `07-회의종료.html` 기반 재작성
+- 통계 카드 4개 명시 (참석자, 시간, 안건, Todo)
+- 주요 키워드 태그 표시 추가
+- 안건별 아코디언 카드 구조 명시:
+ - AI 한줄 요약 (30자 이내, 편집 불가)
+ - AI 상세 요약 (편집 가능, 재생성 가능)
+ - 자동 추출된 Todo 목록
+- 읽기 전용 안내 표시
+- **하단 액션 바 3가지 옵션**:
+ - 옵션 1: 회의록 수정 → 회의록 수정 화면으로 이동
+ - 옵션 2: 바로 최종 확정 → 모든 안건 자동 검증 완료 처리
+ - 옵션 3: 대시보드 → 대시보드로 이동
+
+**의미**: 회의 종료 후 워크플로우가 명확해져 사용자 선택권 확대 및 UX 개선
+
+---
+
+### 5. UFR-MEET-050: [최종확정]
+**변경사항**:
+- **2가지 시나리오로 분리**:
+ - 시나리오 1: 회의록 수정 화면에서 최종 확정
+ - 시나리오 2: 회의 종료 화면에서 바로 확정
+- 각 시나리오별 수행절차 5-6단계 상세화
+- 확인 모달 메시지 구체화
+- 바로 확정 시 모든 안건 자동 검증 완료 처리 로직 추가
+- 확정 후 편집 권한 정책 명시 (회의 생성자만 잠금 해제 후 수정 가능)
+
+**의미**: 유연한 확정 워크플로우 제공으로 사용자 편의성 향상
+
+---
+
+### 6. UFR-MEET-046: [회의록목록조회]
+**변경사항**:
+- 프로토타입 `12-회의록목록조회.html` 기반 재작성
+- **데이터 소스 명시**: `common.js` → `SAMPLE_MINUTES` 배열 (30개 샘플 데이터)
+- 필터링 옵션 상세화:
+ - 상태별: 전체 / 작성중 / 확정완료
+ - 정렬: 최근수정순 / 최근회의순 / 제목순
+ - 참여 유형: 참석한 회의 / 생성한 회의
+ - 검색: 회의 제목, 참석자, 키워드
+- 통계 표시 추가
+- 페이지네이션 방식 명시 (초기 10개, "10개 더보기" 버튼)
+- 목록 표시 정보 8가지 추가
+- **우선순위 변경**: M (Must) → S (Should) - MVP 집중
+
+**의미**: 프로토타입 연계 강화, 샘플 데이터 30개 기반 개발 가능
+
+---
+
+### 7. UFR-MEET-047: [회의록상세조회]
+**변경사항**:
+- 프로토타입 `10-회의록상세조회.html` 기반 재작성
+- 회의 기본 정보 표시 항목 7가지 상세화
+- 섹션별 상세 내용 표시 구조 추가
+- **관련 회의록 섹션 추가** (최대 3개, 관련도 % 표시)
+- 탭 네비게이션 구성 명시 (대시보드, 회의록 2개 탭)
+
+**의미**: 회의록 조회 화면 정보 구조 명확화 및 관련 회의록 연결 강화
+
+---
+
+### 8. UFR-MEET-055: [회의록수정]
+**변경사항**:
+- 프로토타입 `11-회의록수정.html` 기반 전면 재작성
+- **3가지 시나리오로 확장**:
+ - 시나리오 1: 작성중 회의록 수정
+ - 시나리오 2: 확정완료 회의록 수정 (잠금 해제 필요)
+ - 시나리오 3: 안건 검증
+- 각 시나리오별 상세 수행절차 추가
+- 잠금 해제 메커니즘 명시 (확정완료 회의록의 경우)
+- 검증 완료 프로세스 상세화 (안건별 체크 버튼, 검증률 표시)
+
+**의미**: 회의록 수정 워크플로우가 상태별로 명확해져 협업 시나리오 지원 강화
+
+---
+
+## 🎯 전체 영향 분석
+
+### 1. 사용자 경험 (UX) 개선
+
+#### 주요 개선사항
+- ✅ **프로토타입 기반 유저스토리**로 실제 사용 흐름과 정확히 일치
+- ✅ **상세한 수행절차**로 사용자 작업 흐름 명확화
+- ✅ **예외처리 시나리오 추가**로 에러 상황 대응 개선
+- ✅ **실시간 AI 제안 기능**으로 회의 중 놓치는 내용 최소화 (차별화)
+- ✅ **유연한 확정 워크플로우**로 사용자 선택권 확대
+- ✅ **회의 진행 중 참석자 실시간 초대**로 협업 유연성 향상
+
+#### 핵심 UX 강화
+- **대시보드 재설계**: 통계 블록, 최근 회의, Todo, 회의록 4개 섹션으로 정보 접근성 향상
+- **회의 진행 화면 4개 탭**: 참석자, AI 제안, 용어사전, 관련회의록으로 기능 분리
+- **회의 종료 화면 3가지 액션 옵션**: 회의록 수정, 바로 최종 확정, 대시보드로 워크플로우 유연성 확보
+
+---
+
+### 2. 기능성 (Functionality) 개선
+
+#### 신규 기능
+1. **UFR-MEET-015**: 회의 진행 중 참석자 실시간 초대
+2. **UFR-AI-030**: 실시간 AI 제안 (차별화 핵심)
+3. **UFR-NOTI-010**: 알림 발송 (폴링 방식)
+
+#### 아키텍처 정렬
+- **알림 아키텍처 폴링 방식으로 통일**: 실시간 발송 → 주기적 폴링 (1분 간격)
+- **Notification 서비스 독립성 강화**: 마이크로서비스 간 느슨한 결합
+- **프로토타입 10개 화면과 유저스토리 1:1 매핑**: 개발 명확성 확보
+- **WebSocket 기반 실시간 동기화 시나리오 명확화**: 협업 기능 강화
+
+#### API 설계 가이드 제공
+- 모든 유저스토리에 **입력/출력 명세** 추가
+- **예외처리 시나리오** 추가로 에러 핸들링 강화
+- **관련 유저스토리** 명시로 기능 간 연계성 파악 용이
+
+---
+
+### 3. 문서화 (Documentation) 개선
+
+#### 표준화 및 일관성
+- ✅ **유저스토리 형식 표준화**: 5개 필수 섹션 (수행절차, 입력, 출력/결과, 예외처리, 관련 유저스토리)
+- ✅ **AFR/UFR 혼용 제거**: UFR로 통일하여 코드 체계 단순화
+- ✅ **프로토타입 파일명 명시**: 개발 시 참조 용이성 향상
+- ✅ **관련 유저스토리 섹션 추가**: 추적성 확보
+- ✅ **문서 구조 간소화**: 논리 아키텍처 섹션 제거 (설계 문서로 이관)
+
+#### 품질 향상
+| 지표 | v2.2.0 | v2.3.0 | 개선율 |
+|------|--------|--------|--------|
+| 유저스토리 수 | 25개 | 27개 | +8% |
+| 평균 상세도 | 20-30줄 | 60-100줄 | **약 3배** |
+| 코드 체계 통일 | AFR/UFR 혼용 | UFR로 통일 | 100% 통일 |
+| 프로토타입 연계 | 부분적 | 1:1 매핑 | 100% 매핑 |
+
+---
+
+## 💡 핵심 시사점 (Key Takeaways)
+
+1. **v2.3.0은 프로토타입 분석을 통해 유저스토리를 전면 재정비한 버전**
+2. **신규 기능 3개 추가**: 참석자 실시간 초대, 실시간 AI 제안, 알림 발송
+3. **알림 아키텍처를 폴링 방식으로 통일**하여 시스템 안정성 확보
+4. **유저스토리 형식 표준화**로 개발 가이드 역할 강화
+5. **프로토타입 10개 화면과 유저스토리 1:1 매핑**으로 개발 명확성 확보
+6. **기존 24개 유저스토리 ID 승계**하여 연속성 유지
+7. **평균 유저스토리 상세도 약 3배 증가**로 품질 대폭 향상
+
+---
+
+## 📋 권장 후속 조치 (Recommended Actions)
+
+### 1. 설계 문서 업데이트
+- [ ] **API 설계서**를 v2.3.0 유저스토리 기반으로 업데이트 (입력/출력 명세 반영)
+- [ ] 신규 추가된 **UFR-MEET-015, UFR-AI-030, UFR-NOTI-010** 기반 API 및 시퀀스 설계
+- [ ] **알림 아키텍처 폴링 방식** 반영하여 물리 아키텍처 업데이트
+
+### 2. 프로토타입 검증
+- [ ] 프로토타입과 유저스토리 간 **1:1 매핑 검증**
+- [ ] 프로토타입 화면별 유저스토리 커버리지 확인
+
+### 3. 테스트 계획
+- [ ] 각 유저스토리의 **예외처리 시나리오를 테스트 케이스로 전환**
+- [ ] **관련 유저스토리 섹션**을 활용하여 통합 테스트 시나리오 작성
+- [ ] 신규 기능 3개에 대한 우선 테스트 계획 수립
+
+### 4. 개발 가이드
+- [ ] 유저스토리별 개발 우선순위 재평가
+- [ ] 신규 기능 3개 개발 일정 수립
+- [ ] 프로토타입 기반 개발 가이드 작성
+
+---
+
+## 📎 참조 파일
+
+- **v2.2.0**: `C:\Users\yabo0\home\workspace\HGZero\design\userstory_v2.2.0_backup.md`
+- **v2.3.0**: `C:\Users\yabo0\home\workspace\HGZero\design\userstory.md`
+- **상세 분석 (JSON)**: `C:\Users\yabo0\home\workspace\HGZero\claude\userstory-comparison-v2.2.0-to-v2.3.0.json`
+
+---
+
+**분석 완료** ✅
diff --git a/claude/userstory-msc-analysis.md b/claude/userstory-msc-analysis.md
new file mode 100644
index 0000000..ed8d3b1
--- /dev/null
+++ b/claude/userstory-msc-analysis.md
@@ -0,0 +1,53 @@
+# 유저스토리 M/S/C 및 기능점수 분석
+
+## 분석 대상
+파일: design/userstory.md (v2.1.2)
+총 요구사항: 25개
+
+## M/S/C 및 기능점수 현황
+
+| Line | 요구사항 ID | M/S/C | 점수 | 서비스 | 기능 |
+|------|-----------|-------|------|--------|------|
+| 75 | AFR-USER-010 | M | 8 | User | 사용자 인증 |
+| 135 | AFR-USER-020 | M | 8 | User | 대시보드 |
+| 157 | UFR-MEET-010 | M | 13 | Meeting | 회의예약 |
+| 179 | UFR-MEET-020 | S | 5 | Meeting | 템플릿선택 |
+| 200 | UFR-MEET-030 | M | 8 | Meeting | 회의시작 |
+| 250 | UFR-MEET-040 | M | 8 | Meeting | 회의종료 |
+| 316 | UFR-MEET-050 | M | 13 | Meeting | 최종확정 |
+| 357 | UFR-MEET-046 | M | 8 | Meeting | 회의록목록조회 |
+| 423 | UFR-MEET-047 | M | 8 | Meeting | 회의록상세조회 |
+| 473 | UFR-MEET-055 | M | 13 | Meeting | 회의록수정 |
+| 508 | UFR-STT-010 | M | 21 | STT | 음성녹음인식 |
+| 536 | UFR-STT-020 | M | 13 | STT | 텍스트변환 |
+| 594 | UFR-AI-010 | M | 34 | AI | 회의록자동작성 |
+| 643 | UFR-AI-020 | M | 21 | AI | Todo자동추출 |
+| 683 | UFR-AI-035 | M | 21 | AI | 섹션AI요약 |
+| 718 | UFR-AI-040 | M | 21 | AI | 관련회의록연결 |
+| 756 | UFR-AI-050 | S | 13 | AI | 용어설명 |
+| 796 | UFR-AI-060 | S | 13 | AI | 회의록검색 |
+| 844 | UFR-AI-070 | S | 21 | AI | 회의패턴분석 |
+| 889 | UFR-COLLAB-010 | M | 34 | Meeting | 실시간협업 |
+| 945 | UFR-COLLAB-020 | M | 21 | Meeting | 충돌방지 |
+| 988 | UFR-TODO-010 | M | 8 | Meeting | Todo관리 |
+| 1045 | UFR-TODO-020 | M | 13 | Meeting | Todo연결 |
+| 1084 | UFR-NOTI-010 | M | 8 | Notification | 알림발송 |
+| 1170 | NFR-PERF-010 | M | 13 | 전체 | 성능요구사항 |
+
+## 통계
+- Must (M): 20개 (80%)
+- Should (S): 5개 (20%)
+- Could (C): 0개 (0%)
+
+- 평균 기능점수: 15.48점
+- 최고점: 34점 (UFR-AI-010, UFR-COLLAB-010)
+- 최저점: 5점 (UFR-MEET-020)
+
+## 서비스별 분포
+- User: 2개 (M:2)
+- Meeting: 11개 (M:9, S:0)
+- STT: 2개 (M:2)
+- AI: 7개 (M:4, S:3)
+- Notification: 1개 (M:1)
+- NFR: 1개 (M:1)
+- 실시간협업/Todo: Meeting 서비스에 통합됨
diff --git a/claude/userstory-review.md b/claude/userstory-review.md
new file mode 100644
index 0000000..8562e8d
--- /dev/null
+++ b/claude/userstory-review.md
@@ -0,0 +1,220 @@
+# 유저스토리 M/S/C 및 기능점수 검토 결과
+
+## 검토자: 민준(PO), 서연(AI), 준호(Backend), 유진(Frontend), 도현(QA), 지수(Designer)
+
+---
+
+## 1. M/S/C 우선순위 검토
+
+### ✅ 적절한 Must (M) 항목들
+1. **AFR-USER-010** (사용자 인증, M/8) - 핵심 보안 기능
+2. **UFR-MEET-010** (회의예약, M/13) - 서비스 핵심 플로우
+3. **UFR-MEET-030** (회의시작, M/8) - 서비스 핵심 플로우
+4. **UFR-MEET-040** (회의종료, M/8) - 서비스 핵심 플로우
+5. **UFR-MEET-050** (최종확정, M/13) - 회의록 완성 필수
+6. **UFR-STT-010** (음성녹음인식, M/21) - 기본 기능이지만 필수
+7. **UFR-AI-010** (회의록자동작성, M/34) - 핵심 차별화
+8. **UFR-COLLAB-010** (실시간협업, M/34) - 핵심 차별화
+
+### ⚠️ M → S로 변경 제안
+**UFR-MEET-046** (회의록목록조회, M/8 → **S/8**)
+- **이유**: 대시보드에서 최근 회의록을 볼 수 있으므로 1차 출시에서는 목록 조회가 없어도 서비스 가능
+- **민준(PO)**: 사용자들이 과거 회의록을 찾기 위해서는 필요하지만, MVP에서는 대시보드만으로도 가능
+- **유진(Frontend)**: 1차에서는 대시보드의 "최근 회의" 섹션으로 충분, 필터/검색은 2차 출시 추가 가능
+
+**UFR-MEET-047** (회의록상세조회, M/8 → **S/8**)
+- **이유**: 대시보드에서 회의록을 바로 열 수 있으므로, 별도 상세조회 화면은 2차 출시 가능
+- **민준(PO)**: 상세조회는 있으면 좋지만, 대시보드 → 수정 화면으로 바로 진입 가능하면 MVP 가능
+
+**AFR-USER-020** (대시보드, M/8 → **유지 M/8**)
+- **검토**: 대시보드는 사용자 경험의 시작점이므로 Must 유지 필요
+- **지수(Designer)**: 대시보드는 사용자 첫 인상과 전체 서비스 파악에 핵심적
+
+### ⚠️ S → M으로 변경 제안
+**UFR-AI-050** (용어설명, S/13 → **M/13**)
+- **이유**: 차별화 전략 문서에서 "맥락 기반 용어 설명"을 핵심 차별화 포인트로 명시
+- **서연(AI)**: 이 기능이 경쟁사와의 핵심 차별점이므로 1차 출시에 포함해야 함
+- **민준(PO)**: 차별화 전략과 일관성을 위해 Must로 승격 필요
+
+**UFR-AI-060** (회의록검색, S/13 → **유지 S/13**)
+- **검토**: RAG 기반 검색은 고도화 기능으로 2차 출시 적절
+- **서연(AI)**: 벡터 DB 구축 시간 고려 시 2차 출시가 현실적
+
+### ⚠️ Should(S) 추가 제안
+**UFR-TODO-020** (Todo연결, M/13 → **S/13**)
+- **이유**: Todo 기본 관리(UFR-TODO-010)만 있어도 서비스 가능, 양방향 연결은 고도화 기능
+- **준호(Backend)**: Todo-회의록 양방향 연결 복잡도가 높아 2차 출시 권장
+- **민준(PO)**: 차별화 전략에 "강화된 Todo 연결"이 있지만, 기본 Todo 관리로도 차별화 가능
+
+---
+
+## 2. 기능점수 검토
+
+### ⚠️ 점수 조정 제안
+
+#### **UFR-AI-035** (섹션AI요약, M/21 → **M/13**)
+**현재 점수**: 21
+**조정 점수**: 13
+**이유**:
+- 복잡도: 단일 섹션 요약은 비교적 단순 (LLM 단일 호출)
+- UFR-AI-010(회의록자동작성)의 부분 기능으로 기술 재사용 가능
+- 처리 시간: 2-5초로 명시되어 있어 기술적 난이도 낮음
+**서연(AI)**: 프롬프트 엔지니어링 재사용으로 8-13점 정도가 적절
+
+#### **UFR-AI-040** (관련회의록연결, M/21 → **M/13**)
+**현재 점수**: 21
+**조정 점수**: 13
+**이유**:
+- 복잡도: 벡터 유사도 검색 표준 기술 사용
+- UFR-AI-060(회의록검색)과 기술 스택 공유
+- RAG 인프라 구축 시 함께 개발 가능
+**서연(AI)**: 벡터 DB 구축되면 단순 유사도 검색이므로 13점 적절
+
+#### **UFR-STT-010** (음성녹음인식, M/21 → **M/13**)
+**현재 점수**: 21
+**조정 점수**: 13
+**이유**:
+- 기본 기능으로 Azure Speech 등 외부 API 사용
+- 화자 식별 없이 단순 텍스트 변환만
+- 기술 리스크 낮음 (검증된 외부 서비스)
+**준호(Backend)**: Azure Speech SDK 연동은 복잡도 낮아 13점 적절
+
+#### **UFR-MEET-010** (회의예약, M/13 → **M/8**)
+**현재 점수**: 13
+**조정 점수**: 8
+**이유**:
+- 복잡도: 기본 CRUD + 이메일 발송
+- 알림 서비스(UFR-NOTI-010, M/8)에 의존하지만 단순 호출
+- 캘린더 연동은 나중 고도화 가능
+**준호(Backend)**: 기본 예약 기능은 8점, 캘린더 자동 등록 제외 시 더 낮아질 수 있음
+
+#### **UFR-TODO-020** (Todo연결, M/13 → **S/13 유지**)
+**현재 점수**: 13
+**조정 후**: S/13
+**이유**:
+- 복잡도: Todo-회의록 양방향 동기화는 고도화 기능
+- UFR-TODO-010 (기본 Todo 관리)로도 서비스 가능
+**준호(Backend)**: 양방향 연결은 복잡도 13점 적절, Should로 분류 권장
+
+#### **UFR-COLLAB-010** (실시간협업, M/34) - **점수 유지**
+**검토 결과**: 34점 적절
+**이유**:
+- WebSocket 인프라 + 버전 관리 + 충돌 해결
+- 기술 복잡도 매우 높음
+- 다수 동시 접속 처리 필요
+**준호(Backend)**: WebSocket 서버 + Redis 캐시 + 버전 관리 로직으로 34점 타당
+
+#### **UFR-AI-010** (회의록자동작성, M/34) - **점수 유지**
+**검토 결과**: 34점 적절
+**이유**:
+- 실시간 처리 + 회의 종료 시 전체 요약 (2단계)
+- 템플릿 반영 + 주요 메모 통합
+- LLM 프롬프트 엔지니어링 복잡도 높음
+**서연(AI)**: 실시간/배치 2단계 처리로 34점 타당
+
+---
+
+## 3. 종합 개선 제안
+
+### M/S/C 변경 요약
+| 요구사항 ID | 현재 | 제안 | 변경 이유 |
+|-----------|------|------|----------|
+| UFR-MEET-046 | M/8 | S/8 | 대시보드로 대체 가능 |
+| UFR-MEET-047 | M/8 | S/8 | 대시보드 → 수정 바로 진입 가능 |
+| UFR-AI-050 | S/13 | M/13 | 차별화 전략 핵심 |
+| UFR-TODO-020 | M/13 | S/13 | 기본 Todo로 충분 |
+
+### 기능점수 변경 요약
+| 요구사항 ID | 현재 | 제안 | 변경 이유 |
+|-----------|------|------|----------|
+| UFR-AI-035 | M/21 | M/13 | 기술 재사용으로 복잡도 낮음 |
+| UFR-AI-040 | M/21 | M/13 | 표준 벡터 검색 기술 |
+| UFR-STT-010 | M/21 | M/13 | 외부 API 사용으로 리스크 낮음 |
+| UFR-MEET-010 | M/13 | M/8 | 기본 CRUD 수준 |
+
+### 변경 후 통계
+**M/S/C 분포**:
+- Must (M): 18개 (72%) ← 기존 20개
+- Should (S): 7개 (28%) ← 기존 5개
+- Could (C): 0개 (0%)
+
+**평균 기능점수**:
+- 변경 전: 15.48점
+- 변경 후: 14.00점 (약 10% 감소)
+
+**총 기능점수**:
+- 변경 전: 387점
+- 변경 후: 350점
+
+---
+
+## 4. MVP 출시 범위 권장사항
+
+### 1차 출시 (Must만)
+- 사용자 인증 및 대시보드
+- 회의 예약/시작/종료/확정
+- 음성 인식 및 회의록 자동 작성
+- Todo 자동 추출 및 기본 관리
+- 섹션 AI 요약 재생성
+- **용어 설명 (차별화)**
+- 관련 회의록 자동 연결
+- 실시간 협업 및 충돌 방지
+- 알림 발송
+
+총 기능점수: **292점** (변경 후)
+
+### 2차 출시 (Should 추가)
+- 회의록 목록 조회 및 필터링
+- 회의록 상세 조회 전용 화면
+- 템플릿 선택 및 커스터마이징
+- 회의록 RAG 검색
+- 회의 패턴 분석 및 추천
+- Todo 양방향 연결 강화
+
+총 추가 기능점수: **58점**
+
+---
+
+## 5. 리스크 및 제약사항
+
+### 기술 리스크
+1. **UFR-COLLAB-010** (실시간협업, 34점)
+ - WebSocket 동시 접속 부하 테스트 필수
+ - Redis 캐시 장애 시 대응 방안 필요
+
+2. **UFR-AI-010** (회의록자동작성, 34점)
+ - LLM 응답 시간 변동성 관리
+ - 프롬프트 품질 검증 시간 필요
+
+3. **UFR-AI-050** (용어설명, M/13)
+ - RAG 인프라 구축 리드타임 (벡터 DB, 임베딩)
+ - 사내 문서 수집 및 전처리 시간
+
+### 일정 제약
+- 변경 후 총 기능점수: 350점
+- 1인당 월 평균 생산성: 30-40점 (경험치)
+- 4명 개발팀 기준: **약 2.5개월** 소요 예상
+
+---
+
+## 6. 최종 권고사항
+
+### 지수(Designer)
+- UFR-MEET-046, UFR-MEET-047을 Should로 변경하되, 사용자 경험 테스트 후 재검토 권장
+- 대시보드만으로 충분한지 프로토타입 단계에서 검증 필요
+
+### 서연(AI)
+- UFR-AI-050(용어설명)은 차별화 전략 핵심이므로 Must로 승격 강력 권장
+- UFR-AI-035, UFR-AI-040의 점수 하향은 기술 재사용 관점에서 타당
+
+### 준호(Backend)
+- UFR-TODO-020을 Should로 변경하여 개발 복잡도 분산 권장
+- UFR-COLLAB-010의 기술 리스크 대비 시간 확보 필요
+
+### 도현(QA)
+- Must 항목 18개로 축소하면 테스트 범위 집중 가능
+- 실시간 협업(UFR-COLLAB-010) 부하 테스트 충분한 시간 필요
+
+### 민준(PO)
+- 차별화 전략과 일관성 유지를 위해 UFR-AI-050을 Must로 승격 승인
+- MVP 범위를 명확히 하여 1차 출시 집중, 2차 출시 계획 수립
diff --git a/claude/userstory-writing.md b/claude/userstory-writing.md
new file mode 100644
index 0000000..823ecaf
--- /dev/null
+++ b/claude/userstory-writing.md
@@ -0,0 +1,154 @@
+# 유저스토리 작성 방법
+
+## 개요
+이 가이드는 마이크로서비스 기반 시스템 개발을 위한 유저스토리 작성 표준을 제공합니다.
+표준화된 형식을 통해 일관성 있고 완전한 요구사항을 정의할 수 있습니다.
+
+## 작성 구성 요소
+
+### 1. 서비스
+마이크로서비스명을 명시합니다.
+- **형식**: 서비스 도메인명
+- **예시**: 홈페이지, 가입설계, 주문관리, 결제처리
+
+### 2. ID
+User Story ID로서 표준화된 식별자입니다.
+- **형식**: `<유저스토리 유형 코드>-<서비스약어>-<일련번호>`
+ - 유저스토리 유형 코드
+ - UFR(User Functional Requirements): 사용자 기능 요구사항
+ - AFR(Admin Functional Requirements): 어드민 기능 요구사항
+ - NFR(Non Functiional Requirements): 비기능 요구사항(확장성, 회복성, 유연성, 성능, 보안, 운영성)
+ - 서비스약어: 3~4자로 작성
+ - 일련번호: 3자리로 하고 010부터 시작하여 10개씩 증가 예) UFR-HOME-010, UFR-HOME-020
+- **예시**:
+ - `UFR-HOME-010`: 홈페이지 서비스의 첫 번째 유저스토리
+ - `UFR-PAY-020`: 결제 서비스의 다섯 번째 유저스토리
+
+### 3. Epic
+유저스토리의 상위 카테고리를 분류합니다.
+- **용도**: 관련 유저스토리들을 그룹화
+- **예시**: 사용자 관리, 상품 관리, 주문 처리
+
+### 4. 유저스토리
+표준 형식에 따라 작성합니다. 각 파트는 파이프로 구분합니다.
+- **형식**: `[유저스토리 제목] <유저유형>으로서 | 나는, <비즈니스 목적>을 위해 | <작업/기능>을(를) 원합니다.`
+- **예시**:
+ - [상품검색] 쇼핑몰 고객으로서 | 나는, 상품을 쉽게 찾기 위해 | 카테고리별 상품 검색 기능을 원합니다.
+ - [주문현황] 관리자로서 | 나는, 주문 상태를 파악하기 위해 | 실시간 주문 현황 대시보드를 원합니다.
+
+중요) 유저유형은 사람 뿐 아니라 시스템, API 등으로 정의할 수도 있음
+- 이벤트 스토밍은 사용자 중심으로 수행하기 위해 사람만 Actor로 허용
+- 유저스토리는 충분한 요구사항 전달을 위해 사람이 아닌 유저유형도 허용함
+
+### 5. Biz중요도 (MoSCoW 분류)
+우선순위에 따른 분류입니다.
+
+| 분류 | 의미 | 설명 |
+|------|------|------|
+| **M (Must)** | 반드시 필요 | 핵심 비즈니스 기능, 없으면 서비스 불가능 |
+| **S (Should)** | 매우 필요하나 대체할 방법은 있음 | 중요하지만 우회 방법이 존재 |
+| **C (Could)** | 있으면 좋으나 우선 순위는 떨어짐 (Nice to have) | 사용자 편의성 향상 기능 |
+| **W (Won't)** | 가장 우선순위가 떨어지므로 보류해도 됨 | 향후 개발 고려 기능 |
+
+### 6. 인수테스트 시나리오
+기능 완성도를 검증하기 위한 테스트 시나리오입니다.
+
+#### 시나리오명
+- 테스트할 기능이나 상황을 명확히 표현
+- **예시**: "정상적인 회원 가입 처리", "중복 이메일 가입 시도"
+
+#### 인수기준 (Given-When-Then 형식)
+- **형식**: ` | | `
+ - **Given (사전 조건/상황)**: 테스트 실행 전 준비사항
+ - **When (Action)**: 사용자가 수행하는 액션
+ - **Then (결과)**: 기대되는 결과 또는 시스템 반응
+
+- **예시**
+```
+미 로그인 상태로 서비스에 접근하여 | ID와 암호를 입력하여 로그인 요청을 하면 | 대시보드 페이지가 표시된다.
+```
+
+#### 체크리스트
+세부 테스트 항목을 최대한 자세히 작성합니다.
+- 기능/비기능 요구사항 검증 항목
+- 예외 상황 처리 검증
+- 통합 테스트 항목
+
+### 7. Score
+구현 난이도를 피보나치 수열을 이용하여 표현합니다.
+- **수열**: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...
+- **기준**:
+
+| 점수 | 난이도 | 설명 | 세부 기준 | 예시 |
+|------|--------|------|-----------|------|
+| **1-2** | **매우 간단** | 기본적인 CRUD 작업 | • 단일 파일 수정
• 간단한 설정 변경
• 단순 명령어 실행 | • README 작성
• 간단한 스크립트 실행
• 환경변수 설정 |
+| **3-5** | **간단** | 기본 비즈니스 로직 포함 | • 여러 파일 수정
• 간단한 테스트 작성
• 기본 에러 처리 | • 설정 파일 파싱
• 간단한 데이터 변환
• 기본 유효성 검사 |
+| **8-13** | **보통** | 복잡한 비즈니스 로직 | • API 연동
• 데이터베이스 처리
• 복잡한 알고리즘
• 외부 도구 통합 | • MCP 서버 연동
• 파일 시스템 조작
• CLI 인터페이스 개발 |
+| **21-34** | **복잡** | 다중 시스템 연동 | • 여러 서비스 통합
• 복잡한 상태 관리
• 성능 최적화 필요
• 보안 고려사항 | • GitHub API 통합
• 실시간 모니터링
• 복잡한 워크플로우 |
+| **55+** | **매우 복잡** | 새로운 기술/패러다임 | • 신규 아키텍처 설계
• 혁신적 기능 개발
• 대규모 리팩토링
• 연구개발 요소 | • 새로운 플러그인 아키텍처
• AI 모델 통합
• 분산 시스템 설계 |
+
+## 결과 형식
+- 코드블록 내에 작성함
+- 구성
+```
+{서비스 일련번호}. {서비스명}
+{Epic 일련번호}. {Epic}
+{유저스토리 ID}: [{유저스토리 제목}]: {유저스토리}
+- 시나리오: {시나리오}
+ {인수기준}
+ - {체크 리스트}
+- {Biz중요도}/{Score}
+```
+작성예시
+```
+1. User 서비스
+1) 사용자 인증 및 관리
+RQ-USER-010: [회원가입] 사용자로서 | 나는, 여행 계획을 관리하기 위해 | 간편하게 회원가입하고 싶다.
+- 시나리오: 회원가입
+ 미 로그인 상태로 서비스에 접근한 상황에서 | 사용자 기본정보(이름, 이메일, 연락처), ID, 암호를 입력하여 회원가입 요청하면 | 회원가입이 된다.
+ - [ ] 이름, 이메일, 연락처 등록 체크
+ - [ ] ID는 5자 이상의 영숫자
+ - [ ] 암호는 8자 이상의 영숫자와 특수문자가 최소 1개 이상 포함
+- M/5
+```
+
+## 추가 항목
+추가 항목은 필요 시 추가 가능합니다.
+예를 들어 '기술 태스크'와 같은 기술적 내용을 추가할 수 있습니다.
+예시)
+```
+UFR-AI-010: [AI일정생성] 여행자로서 | 나는 맞춤형 여행 일정을 받기 위해 | AI가 내 여행 정보와 이동수단 선호도를 기반으로 최적화된 일정을 생성하기를 원한다.
+- 시나리오: AI 일정 생성 결과 확인
+ 여행 기본정보와 여행지를 설정하고 AI 일정 생성을 요청한 상황에서 | 5초 이내에 생성이 완료되면 | 선호 이동수단을 기반으로 한 시간대별 상세 일정이 생성되어 확인할 수 있다.
+
+ [생성 결과 검증]
+ - 모든 여행지에 대한 일정 존재
+ - 각 일자별 시작/종료 시간 일치
+ - ...
+- M/8
+- 기술 태스크
+ - AI 서비스 API 구현
+ - POST /ai/schedules/generate (일정 생성 요청)
+ - GET /ai/schedules/{id}/status (진행 상태 조회)
+ - GET /ai/schedules/{id} (생성된 일정 조회)
+ - AI 모델 통합
+ - Claude API 연동
+ - 프롬프트 엔지니어링
+ - 응답 파싱 및 구조화
+```
+
+## 참고 자료
+- [유저스토리 작성 샘플](https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/Userstory.pdf)
+
+## 결과 파일
+작성된 유저스토리는 다음 위치에 저장됩니다:
+- **파일 경로**: `design/Userstory.md`
+- **형식**: 마크다운 형식으로 모든 유저스토리를 포함
+
+## 작성 시 주의사항
+
+1. **명확성**: 모호한 표현 대신 구체적이고 측정 가능한 표현 사용
+2. **완전성**: 모든 필수 구성 요소를 빠짐없이 작성
+3. **추적성**: ID를 통해 설계 문서와 연결 가능하도록 작성
+4. **테스트 가능성**: 인수테스트 시나리오가 실제 테스트로 실행 가능하도록 구체적으로 작성
+5. **우선순위**: MoSCoW 분류를 통해 개발 우선순위 명확화
\ No newline at end of file
diff --git a/claude/v220_codes.txt b/claude/v220_codes.txt
new file mode 100644
index 0000000..ce48c39
--- /dev/null
+++ b/claude/v220_codes.txt
@@ -0,0 +1,25 @@
+AFR-USER-010: [사용자관리] 시스템 관리자로서 | 나는, 서비스 보안을 위해 | 사용자 인증 기능을 원한다.
+AFR-USER-020: [대시보드] 사용자로서 | 나는, 회의록 서비스의 주요 정보를 한눈에 파악하기 위해 | 대시보드를 통해 요약 정보를 확인하고 싶다.
+UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
+UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
+UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
+UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
+UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.
+UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
+UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
+UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다.
+UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
+UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
+UFR-AI-010: [회의록자동작성] 회의 참석자로서 | 나는, 회의록 작성 부담을 줄이기 위해 | AI가 발언 내용을 실시간으로 정리하고 회의 종료 시 전체 안건을 요약하기를 원한다.
+UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
+UFR-AI-035: [섹션AI요약] 회의 참석자로서 | 나는, 작성한 섹션 내용을 쉽게 요약하기 위해 | 버튼 클릭으로 AI가 섹션 내용을 요약해주기를 원한다.
+UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 편집 불가능한 한줄 요약을 확인하고 싶다.
+UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결해주기를 원한다.
+UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
+UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
+UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
+UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
+UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
+UFR-TODO-010: [Todo할당] Todo 시스템으로서 | 나는, AI가 추출한 Todo를 담당자에게 전달하기 위해 | Todo를 실시간으로 할당하고 회의록과 연결하고 싶다.
+UFR-TODO-030: [Todo완료처리] Todo 담당자로서 | 나는, 완료된 Todo를 처리하고 회의록에 반영하기 위해 | Todo를 완료하고 회의록에 자동 반영하고 싶다.
+UFR-TODO-040: [Todo관리] Todo 담당자로서 | 나는, 나의 Todo를 효율적으로 관리하기 위해 | Todo 목록을 조회하고 상태를 변경하고 편집하고 싶다.
diff --git a/claude/v230_codes.txt b/claude/v230_codes.txt
new file mode 100644
index 0000000..3b6fe81
--- /dev/null
+++ b/claude/v230_codes.txt
@@ -0,0 +1,28 @@
+UFR-USER-010: [로그인] 사용자로서 | 나는, 시스템에 접근하기 위해 | 사번과 비밀번호로 로그인하고 싶다.
+UFR-USER-020: [대시보드] 사용자로서 | 나는, 나의 회의 및 Todo 현황을 파악하기 위해 | 대시보드를 조회하고 싶다.
+UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
+UFR-MEET-015: [회의진행] 회의 참석자로서 | 나는, 회의 중 추가 참석자가 필요할 때 | 실시간으로 참석자를 초대하고 싶다.
+UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
+UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
+UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
+UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.
+UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
+UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
+UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다.
+UFR-AI-010: [회의록자동작성] 회의 참석자로서 | 나는, 회의록 작성 부담을 줄이기 위해 | AI가 발언 내용을 실시간으로 정리하고 회의 종료 시 전체 안건을 요약하기를 원한다.
+UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
+UFR-AI-030: [실시간AI제안] 회의 참석자로서 | 나는, 회의 중 놓치는 내용을 최소화하기 위해 | AI가 실시간으로 주요 내용을 분석하여 제안하고 싶다.
+UFR-AI-035: [섹션AI요약] 회의 참석자로서 | 나는, 작성한 섹션 내용을 쉽게 요약하기 위해 | 버튼 클릭으로 AI가 섹션 내용을 요약해주기를 원한다.
+UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 편집 불가능한 한줄 요약을 확인하고 싶다.
+UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결해주기를 원한다.
+UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
+UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
+UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
+UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
+UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
+UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
+UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
+UFR-TODO-010: [Todo할당] Todo 시스템으로서 | 나는, AI가 추출한 Todo를 담당자에게 전달하기 위해 | Todo를 실시간으로 할당하고 회의록과 연결하고 싶다.
+UFR-TODO-030: [Todo완료처리] Todo 담당자로서 | 나는, 완료된 Todo를 처리하고 회의록에 반영하기 위해 | Todo를 완료하고 회의록에 자동 반영하고 싶다.
+UFR-TODO-040: [Todo관리] Todo 담당자로서 | 나는, 나의 Todo를 효율적으로 관리하기 위해 | Todo 목록을 조회하고 상태를 변경하고 편집하고 싶다.
+UFR-NOTI-010: [알림발송] Notification 시스템으로서 | 나는, 사용자에게 중요한 이벤트를 알리기 위해 | 주기적으로 알림 대상을 확인하여 이메일을 발송하고 싶다.
diff --git a/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md b/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md
new file mode 100644
index 0000000..eed679f
--- /dev/null
+++ b/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md
@@ -0,0 +1,454 @@
+# 유저스토리 v2.2.0 → v2.3.0 변경사항 보고서
+
+**작성일**: 2025-10-25
+**작성자**: 지수 (Product Designer), 민준 (Product Owner)
+**문서 버전**: 1.0
+
+---
+
+## 📋 개요
+
+본 보고서는 AI기반 회의록 작성 및 이력 관리 개선 서비스의 유저스토리 문서가 v2.2.0에서 v2.3.0으로 업데이트되면서 변경된 내용과 그 의미를 분석합니다.
+
+### 요약 통계
+
+| 항목 | v2.2.0 | v2.3.0 | 변화 |
+|------|--------|--------|------|
+| **유저스토리 수** | 25개 | 27개 | +2개 (+8%) |
+| **신규 추가** | - | 5개 | UFR-USER-010, UFR-USER-020, UFR-MEET-015, UFR-AI-030, UFR-NOTI-010 |
+| **삭제/전환** | - | 2개 | AFR-USER-010, AFR-USER-020 → UFR로 전환 |
+| **AFR 코드** | 2개 | 0개 | -2개 (100% 제거) |
+| **UFR 코드** | 23개 | 27개 | +4개 (+17%) |
+| **평균 상세도** | 20-30줄 | 60-100줄 | **약 3배 증가** |
+| **프로토타입 연계** | 부분적 | 100% (10개 화면) | - |
+| **표준 형식 적용** | 0% | 100% (27개) | - |
+
+---
+
+## 📊 한눈에 보는 변경사항
+
+```
+v2.2.0 (25개) v2.3.0 (27개)
+┌─────────────────┐ ┌─────────────────┐
+│ AFR-USER-010 │ ──────────────────>│ UFR-USER-010 ✨ │ (로그인 상세화)
+│ AFR-USER-020 │ ──────────────────>│ UFR-USER-020 ✨ │ (대시보드 재설계)
+├─────────────────┤ ├─────────────────┤
+│ UFR-MEET-010 │ ──────────────────>│ UFR-MEET-010 ✨ │ (회의예약 개선)
+│ │ │ UFR-MEET-015 🆕 │ (참석자 실시간 초대)
+│ UFR-MEET-020 │ ──────────────────>│ UFR-MEET-020 ✨ │ (템플릿선택 상세화)
+│ UFR-MEET-030 │ ──────────────────>│ UFR-MEET-030 ✨ │ (회의시작 4개 탭)
+│ UFR-MEET-040 │ ──────────────────>│ UFR-MEET-040 ✨ │ (회의종료 3가지 액션)
+│ UFR-MEET-050 │ ──────────────────>│ UFR-MEET-050 ✨ │ (최종확정 2가지 시나리오)
+│ UFR-MEET-046 │ ──────────────────>│ UFR-MEET-046 ✨ │ (목록조회 샘플 30개)
+│ UFR-MEET-047 │ ──────────────────>│ UFR-MEET-047 ✨ │ (상세조회 관련회의록)
+│ UFR-MEET-055 │ ──────────────────>│ UFR-MEET-055 ✨ │ (회의록수정 3가지 시나리오)
+├─────────────────┤ ├─────────────────┤
+│ UFR-AI-010 │ ──────────────────>│ UFR-AI-010 │
+│ UFR-AI-020 │ ──────────────────>│ UFR-AI-020 │
+│ │ │ UFR-AI-030 🆕🎯 │ (실시간 AI 제안 - 차별화!)
+│ UFR-AI-035 │ ──────────────────>│ UFR-AI-035 │
+│ UFR-AI-036 │ ──────────────────>│ UFR-AI-036 │
+│ UFR-AI-040 │ ──────────────────>│ UFR-AI-040 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-STT-010 │ ──────────────────>│ UFR-STT-010 │
+│ UFR-STT-020 │ ──────────────────>│ UFR-STT-020 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-RAG-010 │ ──────────────────>│ UFR-RAG-010 │
+│ UFR-RAG-020 │ ──────────────────>│ UFR-RAG-020 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-COLLAB-010 │ ──────────────────>│ UFR-COLLAB-010 │
+│ UFR-COLLAB-020 │ ──────────────────>│ UFR-COLLAB-020 │
+│ UFR-COLLAB-030 │ ──────────────────>│ UFR-COLLAB-030 │
+├─────────────────┤ ├─────────────────┤
+│ UFR-TODO-010 │ ──────────────────>│ UFR-TODO-010 │
+│ UFR-TODO-030 │ ──────────────────>│ UFR-TODO-030 │
+│ UFR-TODO-040 │ ──────────────────>│ UFR-TODO-040 │
+└─────────────────┘ ├─────────────────┤
+ │ UFR-NOTI-010 🆕 │ (알림발송 - 폴링 방식)
+ └─────────────────┘
+
+범례:
+🆕 = 완전 신규 추가
+🎯 = 차별화 핵심 기능
+✨ = 대폭 개선 (프로토타입 기반 재작성)
+```
+
+---
+
+## 🎯 핵심 변경사항
+
+### 1. 신규 추가된 유저스토리 (5개)
+
+#### 1.1 UFR-USER-010: 로그인 🆕
+- **이전**: AFR-USER-010 (간략한 인증 설명)
+- **변경**: UFR-USER-010으로 전환 및 상세화
+- **의미**:
+ - 로그인 프로세스 단계별 명시 (Enter 키 동작, 로딩 상태 등)
+ - 예외처리 시나리오 구체화 (사번 미입력, 비밀번호 8자 미만 등)
+ - 프로토타입 `01-로그인.html`과 1:1 매핑
+
+#### 1.2 UFR-USER-020: 대시보드 🆕
+- **이전**: AFR-USER-020 (간략한 대시보드 설명)
+- **변경**: UFR-USER-020으로 전환 및 대폭 확장
+- **의미**:
+ - 통계 블록, 최근 회의, 나의 Todo, 나의 회의록 위젯 상세 명세
+ - FAB 버튼 2가지 액션 (회의예약/바로 시작) 명확화
+ - 프로토타입 `02-대시보드.html`과 1:1 매핑
+
+#### 1.3 UFR-MEET-015: 참석자 실시간 초대 🆕
+- **이전**: 없음
+- **변경**: 완전 신규 추가
+- **의미**:
+ - 회의 진행 중 "참석자" 탭에서 실시간으로 참석자 추가 기능
+ - 검색 모달 → 추가 → WebSocket 동기화 → 알림 발송 흐름 명시
+ - **효과**: 회의 진행 중 동적 참석자 관리로 유연성 향상
+ - 프로토타입 `05-회의진행.html`의 "참석자" 탭과 연계
+
+#### 1.4 UFR-AI-030: 실시간 AI 제안 🆕🎯
+- **이전**: 없음
+- **변경**: 완전 신규 추가
+- **의미**:
+ - **차별화 전략 "지능형 회의 진행 지원" 실현**
+ - STT 텍스트 실시간 분석 → 주요 내용 감지 → AI 제안 카드 생성
+ - 제안 카드에서 메모 탭으로 드래그 앤 드롭으로 추가
+ - **효과**: 회의 중 놓치는 내용 최소화, 차별화 핵심 기능
+ - 프로토타입 `05-회의진행.html`의 "AI 제안" 탭과 연계
+
+#### 1.5 UFR-NOTI-010: 알림 발송 🆕
+- **이전**: 없음 (암묵적으로 Meeting Service에서 직접 발송)
+- **변경**: Notification 서비스의 독립적인 유저스토리로 추가
+- **의미**:
+ - **알림 아키텍처를 폴링 방식으로 통일**
+ - 1분 간격 폴링 → 이메일 발송 → 최대 3회 재시도
+ - 6가지 알림 유형 명시 (Todo 할당, Todo 완료, 회의 시작, 회의록 확정, 참석자 초대, 회의록 수정)
+ - **효과**: Notification 서비스 독립성 확보, 시스템 안정성 향상
+
+---
+
+### 2. 대폭 개선된 유저스토리 (주요 8개)
+
+#### 2.1 UFR-MEET-010: 회의예약
+- **변경사항**:
+ - 수행절차 10단계 명시 (FAB 버튼 → 입력 → 저장/완료)
+ - 입력 필드별 상세 명세 (타입, 필수 여부, 최대/최소값, UI 요소)
+ - 임시저장/예약 완료 2가지 시나리오 구분
+ - 예외처리 7가지 추가 (제목 미입력, 과거 날짜, 참석자 미선택 등)
+- **의미**: 프로토타입 `03-회의예약.html` 기반 전면 재작성
+
+#### 2.2 UFR-MEET-030: 회의시작
+- **변경사항**:
+ - 회의 진행 화면 4개 탭 상세 명세 (녹음/메모, 참석자, AI 제안, 안건)
+ - 녹음 시작/일시정지/재시작 플로우 명시
+ - 참석자 상태 표시 (온라인/오프라인/참석중)
+ - 탭별 UI 요소와 인터랙션 상세화
+- **의미**: 프로토타입 `05-회의진행.html` 4개 탭 구조 반영
+
+#### 2.3 UFR-MEET-040: 회의종료
+- **변경사항**:
+ - 회의 종료 후 3가지 액션 명시 (바로 확정, 나중에 확정, 검토 후 확정)
+ - 각 액션별 이동 화면 명확화
+ - 안건 요약 및 검증 상태 표시 추가
+- **의미**: 프로토타입 `07-회의종료.html` 반영, 사용자 선택권 강화
+
+#### 2.4 UFR-MEET-050: 최종확정
+- **변경사항**:
+ - 2가지 시나리오 분리 (검토 후 확정, 회의 종료 화면에서 바로 확정)
+ - 안건별 검증 완료 여부 체크 로직 추가
+ - 미검증 안건 있을 시 확정 불가 정책 명시
+- **의미**: 회의록 품질 보증 메커니즘 강화
+
+#### 2.5 UFR-MEET-046: 회의록목록조회
+- **변경사항**:
+ - 샘플 데이터 30개 명시 (제목, 날짜, 상태, 검증 현황 등)
+ - 필터/정렬 기능 상세화 (기간, 상태, 폴더별)
+ - 상태 배지 5종 추가 (진행중, 검토중, 확정완료 등)
+- **의미**: 프로토타입 `12-회의록목록조회.html` 반영
+
+#### 2.6 UFR-MEET-047: 회의록상세조회
+- **변경사항**:
+ - 관련 회의록 섹션 추가 (AI가 자동 연결한 회의록 3개 표시)
+ - 안건별 검증 상태 표시 추가
+ - 용어 팝업 연계 (UFR-RAG-010) 명시
+- **의미**: 프로토타입 `10-회의록상세조회.html` 반영, RAG 기능 연계
+
+#### 2.7 UFR-MEET-055: 회의록수정
+- **변경사항**:
+ - 3가지 진입 시나리오 명시 (회의종료 화면, 목록 화면, 상세조회 화면)
+ - 실시간 협업 플로우 상세화 (UFR-COLLAB-010, UFR-COLLAB-020 연계)
+ - 수정 저장/임시저장/취소 3가지 액션 구분
+- **의미**: 프로토타입 `11-회의록수정.html` 반영, 협업 기능 강화
+
+#### 2.8 UFR-COLLAB-020: 충돌해결
+- **변경사항**:
+ - 안건 기반 충돌 방지 메커니즘 상세화
+ - 동일 안건 동시 수정 시 경고 표시 및 잠금 정책 명시
+ - 충돌 해결 시나리오 3가지 (대기, 새 안건 작성, 취소)
+- **의미**: 실시간 협업 안정성 강화
+
+---
+
+### 3. 유지된 유저스토리 (14개)
+
+다음 유저스토리들은 v2.2.0과 v2.3.0에서 ID와 핵심 내용이 유지되었습니다:
+
+- UFR-AI-010 (회의록 자동 작성)
+- UFR-AI-020 (Todo 자동 추출)
+- UFR-AI-035 (섹션 AI 요약)
+- UFR-AI-036 (AI 한줄 요약)
+- UFR-AI-040 (관련 회의록 연결)
+- UFR-STT-010 (음성 녹음 인식)
+- UFR-STT-020 (텍스트 변환)
+- UFR-RAG-010 (전문용어 감지)
+- UFR-RAG-020 (맥락 기반 용어 설명)
+- UFR-COLLAB-010 (회의록 수정 동기화)
+- UFR-COLLAB-030 (검증 완료)
+- UFR-TODO-010 (Todo 할당)
+- UFR-TODO-030 (Todo 완료 처리)
+- UFR-TODO-040 (Todo 관리)
+
+---
+
+## 📈 문서 품질 개선
+
+### 3.1 유저스토리 형식 표준화
+
+#### Before (v2.2.0) - 자유 형식
+```
+UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, ...
+- 시나리오: 회의 예약 및 참석자 초대
+ 회의 예약 화면에 접근한 상황에서 | ...
+
+ [입력 요구사항]
+ - 회의 제목: 최대 100자 (필수)
+ ...
+
+ [처리 결과]
+ - 회의가 예약됨
+ ...
+
+- M/13
+```
+
+#### After (v2.3.0) - 표준 5단계 형식
+```
+### UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, ...
+
+**수행절차:**
+1. 대시보드에서 "회의예약" FAB 버튼 클릭
+2. 회의 제목 입력 (최대 100자)
+3. 날짜 선택 (오늘 이후 날짜, 달력 UI)
+...
+10. "임시저장" 버튼 또는 "예약 완료" 버튼 클릭
+
+**입력:**
+- 회의 제목: 텍스트 입력, 필수, 최대 100자, 문자 카운터 표시
+- 날짜: date 타입, 필수, 오늘 이후 날짜만 선택 가능
+...
+
+**출력/결과:**
+- 예약 완료: "회의가 예약되었습니다" 토스트 메시지, 대시보드로 이동
+- 임시저장: "임시 저장되었습니다" 토스트 메시지
+...
+
+**예외처리:**
+- 제목 미입력: "회의 제목을 입력해주세요" 토스트, 제목 필드 포커스
+- 과거 날짜 선택: "과거 날짜는 선택할 수 없습니다" 토스트
+...
+
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
+- UFR-MEET-020: 템플릿선택
+```
+
+### 3.2 개선 효과
+
+| 섹션 | 개선 효과 |
+|------|-----------|
+| **수행절차** | 단계별 명확한 작업 흐름, 개발자가 UI 플로우 이해 가능 |
+| **입력** | 필드 타입, 검증 규칙, UI 요소 상세 명세, API 명세서 작성 기준 제공 |
+| **출력/결과** | 성공/실패 시나리오별 응답 명시, 테스트 케이스 작성 기준 제공 |
+| **예외처리** | 에러 상황별 처리 방법 구체화, QA 시나리오 명확화 |
+| **관련 유저스토리** | 기능 간 연계성 추적, 통합 테스트 범위 파악 용이 |
+
+---
+
+## 🏗️ 프로토타입 연계 강화
+
+v2.3.0에서는 모든 유저스토리가 프로토타입 화면과 명확하게 연계되었습니다.
+
+| 프로토타입 화면 | 연계 유저스토리 | 상태 |
+|----------------|----------------|------|
+| 01-로그인.html | UFR-USER-010 | ✅ 1:1 매핑 |
+| 02-대시보드.html | UFR-USER-020 | ✅ 1:1 매핑 |
+| 03-회의예약.html | UFR-MEET-010 | ✅ 1:1 매핑 |
+| 04-템플릿선택.html | UFR-MEET-020 | ✅ 1:1 매핑 |
+| 05-회의진행.html | UFR-MEET-030, UFR-MEET-015 (신규), UFR-AI-030 (신규) | ✅ 1:N 매핑 |
+| 07-회의종료.html | UFR-MEET-040 | ✅ 1:1 매핑 |
+| 10-회의록상세조회.html | UFR-MEET-047 | ✅ 1:1 매핑 |
+| 11-회의록수정.html | UFR-MEET-055 | ✅ 1:1 매핑 |
+| 12-회의록목록조회.html | UFR-MEET-046 | ✅ 1:1 매핑 |
+| 08-최종확정.html | UFR-MEET-050 | ✅ 1:1 매핑 |
+
+**결과**: 10개 프로토타입 화면 100% 유저스토리 연계 완료
+
+---
+
+## 🔑 핵심 아키텍처 변경
+
+### 알림 아키텍처: 실시간 → 폴링 방식
+
+#### Before (v2.2.0)
+```
+[Meeting Service] ──(실시간 발송)──> [Notification Service] ──> [Email]
+ ↓
+ Todo 할당 발생 → 즉시 이메일 발송
+```
+
+**문제점**:
+- Meeting Service와 Notification Service 간 강한 결합
+- 이메일 발송 실패 시 Meeting Service에 영향
+
+#### After (v2.3.0)
+```
+[Meeting Service] ──(DB 레코드 생성)──> [Notification 테이블]
+ ↓
+ (1분 간격 폴링)
+ ↓
+ [Notification Service] ──> [Email]
+ ↓
+ (발송 상태 업데이트)
+```
+
+**개선 효과**:
+- ✅ **Notification 서비스 독립성 강화**: 마이크로서비스 간 느슨한 결합
+- ✅ **시스템 안정성 향상**: 이메일 발송 실패 시 자동 재시도 (최대 3회)
+- ✅ **확장성 확보**: 폴링 주기 조정으로 트래픽 제어 가능
+- ✅ **모니터링 용이**: 발송 대기/성공/실패 상태 DB에서 추적
+
+---
+
+## 💡 변경의 의미와 개선 효과
+
+### 1. 사용자 경험 (UX) 개선
+
+| 영역 | 개선 내용 | 효과 |
+|------|----------|------|
+| **회의 진행 중 유연성** | UFR-MEET-015 (참석자 실시간 초대) | 회의 중 동적 참석자 관리 가능 |
+| **회의 중 놓침 방지** | UFR-AI-030 (실시간 AI 제안) 🎯 | 차별화 핵심 기능, 회의 중 주요 내용 실시간 감지 |
+| **회의 종료 후 선택권** | UFR-MEET-040 (3가지 액션) | 바로 확정/나중에 확정/검토 후 확정 |
+| **회의록 품질 보증** | UFR-MEET-050 (검증 후 확정) | 미검증 안건 있을 시 확정 불가 정책 |
+| **실시간 협업 안정성** | UFR-COLLAB-020 (안건 기반 충돌 방지) | 동일 안건 동시 수정 시 경고 및 잠금 |
+
+### 2. 기능적 개선
+
+| 영역 | 개선 내용 | 효과 |
+|------|----------|------|
+| **알림 시스템 안정성** | UFR-NOTI-010 (폴링 방식) | Notification 서비스 독립성 확보, 재시도 메커니즘 |
+| **차별화 전략 실현** | UFR-AI-030 (실시간 AI 제안) 🎯 | "지능형 회의 진행 지원" 구체화 |
+| **프로토타입 정합성** | 10개 화면 100% 매핑 | 기획-디자인-개발 간 일관성 확보 |
+| **유저스토리 표준화** | 5단계 표준 형식 | 개발 가이드 역할 강화, API 명세서 작성 기준 제공 |
+
+### 3. 문서화 개선
+
+| 영역 | 개선 내용 | 효과 |
+|------|----------|------|
+| **상세도 3배 증가** | 20-30줄 → 60-100줄 | 개발자가 구현에 필요한 모든 정보 확보 |
+| **AFR 코드 폐지** | AFR → UFR 통일 | 유저스토리 체계 단순화 |
+| **예외처리 명시** | 각 유저스토리별 5-7개 예외 시나리오 | QA 테스트 케이스 작성 기준 제공 |
+| **관련 유저스토리 연계** | 기능 간 의존성 추적 | 통합 테스트 범위 명확화 |
+
+---
+
+## 📋 권장 후속 조치
+
+### 🔴 긴급 (1주 내)
+
+- [ ] **신규 유저스토리 3개 기반 API 설계**
+ - UFR-MEET-015: 참석자 실시간 초대 API
+ - UFR-AI-030: 실시간 AI 제안 API (SSE 또는 WebSocket)
+ - UFR-NOTI-010: 알림 폴링 및 발송 API
+
+- [ ] **알림 아키텍처 폴링 방식 반영**
+ - 물리 아키텍처 다이어그램 업데이트
+ - Notification 테이블 스키마 정의
+ - 폴링 스케줄러 설계
+
+- [ ] **프로토타입 ↔ 유저스토리 1:1 매핑 검증**
+ - 10개 화면별 유저스토리 매핑 검증
+ - 누락된 화면 또는 유저스토리 확인
+
+### 🟡 중요 (2주 내)
+
+- [ ] **API 설계서 v2.3.0 기반 전면 업데이트**
+ - 입력/출력 명세 반영 (타입, 필수 여부, 검증 규칙)
+ - 예외처리 시나리오 → HTTP 상태 코드 및 에러 메시지 매핑
+ - 관련 유저스토리 기반 API 그룹핑
+
+- [ ] **예외처리 시나리오 → 테스트 케이스 전환**
+ - 각 유저스토리의 예외처리 섹션을 테스트 케이스로 변환
+ - 입력 검증 테스트 케이스 작성
+
+- [ ] **관련 유저스토리 기반 통합 테스트 시나리오 작성**
+ - 예: UFR-MEET-010 → UFR-MEET-020 → UFR-MEET-030 전체 플로우 테스트
+
+### 🟢 일반 (3주 내)
+
+- [ ] **유저스토리별 개발 우선순위 재평가**
+ - 신규 유저스토리 3개 우선순위 결정
+ - 차별화 핵심 기능 (UFR-AI-030) 우선 개발 검토
+
+- [ ] **신규 기능 3개 개발 일정 수립**
+ - UFR-MEET-015: 참석자 실시간 초대
+ - UFR-AI-030: 실시간 AI 제안 (Sprint 목표로 권장)
+ - UFR-NOTI-010: 알림 발송
+
+- [ ] **프로토타입 기반 개발 가이드 작성**
+ - 프로토타입 → 유저스토리 → API → 컴포넌트 매핑 가이드
+ - 프론트엔드 개발자를 위한 프로토타입 활용 가이드
+
+---
+
+## 🔍 핵심 시사점 (Key Takeaways)
+
+1. **v2.3.0은 프로토타입 분석을 통해 유저스토리를 전면 재정비한 버전**
+ - 10개 프로토타입 화면과 100% 매핑
+ - 실제 UI/UX 플로우를 유저스토리에 반영
+
+2. **신규 기능 3개 추가로 차별화 강화**
+ - 특히 UFR-AI-030 (실시간 AI 제안)은 차별화 핵심 기능
+
+3. **알림 아키텍처 폴링 방식으로 통일하여 시스템 안정성 확보**
+ - Notification 서비스 독립성 강화
+ - 재시도 메커니즘으로 안정성 향상
+
+4. **유저스토리 형식 표준화로 개발 가이드 역할 강화**
+ - 5단계 표준 형식 (수행절차, 입력, 출력/결과, 예외처리, 관련 유저스토리)
+ - API 명세서 및 테스트 케이스 작성 기준 제공
+
+5. **평균 유저스토리 상세도 약 3배 증가로 품질 대폭 향상**
+ - 개발자가 구현에 필요한 모든 정보 포함
+ - 예외처리, 검증 규칙, UI 요소까지 상세 명시
+
+6. **기존 24개 유저스토리 ID 승계하여 연속성 유지**
+ - AFR-USER-010 → UFR-USER-010 전환
+ - 기존 설계 문서와의 연계성 유지
+
+7. **프로토타입-유저스토리 1:1 매핑으로 개발 명확성 확보**
+ - 기획-디자인-개발 간 일관성 확보
+ - 개발 우선순위 및 Sprint 계획 수립 용이
+
+---
+
+## 📎 참고 자료
+
+- **상세 분석 (JSON)**: `claude/userstory-comparison-v2.2.0-to-v2.3.0.json` (19KB)
+- **상세 분석 (Markdown)**: `claude/userstory-comparison-v2.2.0-to-v2.3.0.md` (16KB)
+- **요약 분석**: `claude/userstory-comparison-summary.md` (11KB)
+- **유저스토리 v2.2.0 백업**: `design/userstory_v2.2.0_backup.md`
+- **유저스토리 v2.3.0 현재**: `design/userstory.md`
+
+---
+
+**보고서 작성**: 지수 (Product Designer), 민준 (Product Owner)
+**분석 일시**: 2025-10-25
+**문서 버전**: 1.0
diff --git a/design/uiux/uiux.md b/design/uiux/uiux.md
index 9d0650d..db678ce 100644
--- a/design/uiux/uiux.md
+++ b/design/uiux/uiux.md
@@ -2,9 +2,9 @@
## 문서 정보
- **작성일**: 2025-10-21
-- **최종 수정일**: 2025-10-24
+- **최종 수정일**: 2025-10-25
- **작성자**: 이미준 (서비스 기획자)
-- **버전**: 1.4.19
+- **버전**: 1.4.20
- **설계 철학**: Mobile First Design
---
@@ -955,15 +955,21 @@ graph TD
- 11-회의록수정.html로 이동
- URL 파라미터: meetingId
- 회의록 상태: 작성중
- - **옵션 2: 바로 최종 확정**
- - 확인 다이얼로그 표시
+ - **옵션 2: 바로 최종 확정** (UFR-MEET-050 시나리오 2)
+ - 확인 다이얼로그 표시: "바로 최종 확정하시겠습니까? AI가 정리한 내용 그대로 확정됩니다."
- 확인 시:
- 모든 안건 검증률 100% 자동 설정
- - 회의록 상태: 확정완료
+ - 안건별 검증완료 처리
+ - 회의록 상태: "작성중" → "확정완료"로 변경
- 확정 시간 기록
- 참석자에게 확정 알림 발송
- 성공 토스트: "회의록이 최종 확정되었습니다"
- - 02-대시보드.html로 이동
+ - 10-회의록상세조회.html로 이동
+ - **시나리오 2 특징 (바로 확정)**:
+ - 회의록 수정 단계를 건너뜀
+ - AI 생성 내용을 그대로 확정
+ - 모든 안건이 자동으로 검증완료 처리됨
+ - 확정 후에도 회의 생성자는 수정 가능 (잠금 해제 필요)
- **옵션 3: 대시보드로 이동**
- 회의록 상태: 작성중
- 02-대시보드.html로 이동
@@ -1389,6 +1395,9 @@ graph TD
- **안건 헤더**
- 안건 제목 (H4, Bold)
- 검증 상태 배지 (검증완료/미검증)
+ - 편집 중 표시 (동시 편집 시)
+ - 다른 사용자 아바타 + 이름
+ - 예: "김민준님 편집 중" (아이콘 + 텍스트)
- **AI 한줄 요약** (편집 불가, UFR-AI-036) - 신규
- 🔒 아이콘 + 30자 이내 한줄 요약
- 읽기 전용 (회색 배경, 민트 그린 좌측 액센트 라인)
@@ -1520,6 +1529,38 @@ graph TD
- 확정완료 회의록 수정 시: 자동으로 "작성중" 상태로 변경
- 모든 안건 검증 완료 시: "확정완료"로 변경 제안
+
+9. **안건 기반 충돌 해결 (UFR-COLLAB-020)**
+ - **안건 기반 충돌 방지 메커니즘**:
+ - **다른 안건 동시 편집**: 충돌 없음
+ - 참석자 A가 안건 1 편집 중
+ - 참석자 B가 안건 2 편집 가능
+ - 양쪽 모두 정상 저장 및 동기화
+
+ - **동일 안건 내 다른 필드 편집**: 자동 병합
+ - 참석자 A가 안건 1의 "상세 요약" 편집
+ - 참석자 B가 안건 1의 "관련회의록" 편집
+ - 양쪽 변경 사항 자동 병합
+
+ - **동일 필드 동시 수정**: Last Write Wins
+ - 마지막에 저장된 변경 사항이 적용
+ - 덮어쓰기 경고: "다른 사용자가 이미 수정했습니다. 최신 내용을 확인하세요"
+ - 선택 옵션: 최신 내용 확인 / 내 변경 사항 유지
+
+ - **편집 중 표시**:
+ - 다른 사용자가 편집 중인 안건 표시
+ - 편집자 아바타 + 이름 실시간 표시
+ - 예: "김민준님이 이 안건을 편집 중입니다" + 아바타
+ - 편집 시작 시 해당 안건에 브로드캐스트
+ - 편집 종료 시 표시 제거
+
+ - **충돌 경고 모달**:
+ - 제목: "동시 수정 감지"
+ - 메시지: "다른 사용자가 이미 이 내용을 수정했습니다"
+ - 옵션 버튼:
+ - "최신 내용 보기" (Primary): 다른 사용자 변경사항 로드
+ - "내 변경사항 유지" (Secondary): 현재 내용 유지 (덮어쓰기)
+
#### 데이터 요구사항
- **입력**:
- 회의록 ID (조회)
@@ -1542,7 +1583,11 @@ graph TD
- **자동 저장 실패**: "네트워크 연결을 확인해주세요. 로컬에 임시 저장됩니다"
- **AI 요약 재생성 실패**: "요약 생성에 실패했습니다. 수동으로 작성해주세요"
- **참고자료 검색 실패**: "회의록을 검색할 수 없습니다"
-- **충돌 발생**: "다른 참석자가 동일한 부분을 수정했습니다" + 병합 옵션
+- **충돌 발생**:
+ - 안건 기반 충돌 방지로 최소화
+ - 동일 필드 동시 수정 시: "다른 사용자가 이미 수정했습니다" 경고 모달
+ - 선택 옵션: 최신 내용 확인 / 내 변경사항 유지
+ - 병합 실패 시: "병합 중 오류가 발생했습니다" 에러 메시지
- **삭제 실패**: "회의록 삭제에 실패했습니다"
---
@@ -2023,6 +2068,7 @@ graph TD
| 버전 | 날짜 | 작성자 | 변경 내용 |
|------|------|--------|----------|
+| 1.4.20 | 2025-10-25 | 이미준, 강지수 | 유저스토리 v2.3.0 반영
- 회의 종료 화면 정책 명확화 (확인 전용, 바로 최종 확정 옵션 상세화)
- UFR-MEET-050: 최종 확정 2가지 시나리오 설명 추가
- UFR-COLLAB-020: 안건 기반 충돌 해결 메커니즘 상세 추가
- 실시간 협업 충돌 방지 정책 강화 |
| 1.0 | 2025-10-21 | 이미준 | 최초 작성 - 11개 화면 설계 완료 |
| 1.1 | 2025-10-21 | 이미준 | AI 요약 및 참고자료 기능 추가
- 05-회의진행: AI 회의 내용 요약 자동 생성 및 참고자료 자동 연결 추가
- 10-회의록상세조회: 섹션별 AI 요약 표시 및 참고자료 영역 추가
- 11-회의록수정: AI 요약 수정 및 참고자료 편집 기능 추가
- 관련 유저스토리: UFR-AI-040 (관련 회의록 자동 연결) |
| 1.1.1 | 2025-10-21 | 이미준 | 회의록 상세 화면 구조 개선 (프로토타입 기반)
- 10-회의록상세조회: 탭 기반 네비게이션 추가 (회의록/대시보드)
- 대시보드 탭 추가: 핵심내용, 결정사항, Todo 진행상황, 참고자료 섹션
- 참고자료 관련도 점수 표시 (백분율 + 색상 코딩)
- 참고자료 카테고리 탭 (관련 회의록/프로젝트 문서/이슈 트래커/위키 페이지)
- 참조: design-gappa/uiux/prototype 파일 (11-회의록대시보드.html, 05-회의진행.html) |
diff --git a/design/userstory.md b/design/userstory.md
index 98a4bc8..12088f8 100644
--- a/design/userstory.md
+++ b/design/userstory.md
@@ -1,24 +1,10 @@
-# AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.2.0)
+# AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.3.0)
-- [AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.2.0)](#ai기반-회의록-작성-및-이력-관리-개선-서비스---유저스토리-v220)
+- [AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.3.0)](#ai기반-회의록-작성-및-이력-관리-개선-서비스---유저스토리-v230)
- [차별화 전략](#차별화-전략)
- [1. 기본 기능 (Hygiene Factors)](#1-기본-기능-hygiene-factors)
- [2. 핵심 차별화 포인트 (Differentiators)](#2-핵심-차별화-포인트-differentiators)
- [마이크로서비스 구성](#마이크로서비스-구성)
- - [유저스토리](#유저스토리)
- - [논리 아키텍처 반영 사항 요약](#논리-아키텍처-반영-사항-요약)
- - [1. 마이크로서비스 구성 변경 (v2.0)](#1-마이크로서비스-구성-변경-v20)
- - [2. 주요 변경사항](#2-주요-변경사항)
- - [2.1 User Service 역할 변경](#21-user-service-역할-변경)
- - [2.2 Meeting Service 통합](#22-meeting-service-통합)
- - [2.3 AI Service 통합](#23-ai-service-통합)
- - [3. 유저스토리 영향도](#3-유저스토리-영향도)
- - [3.1 변경 없음](#31-변경-없음)
- - [3.2 서비스 통합에 따른 변경](#32-서비스-통합에-따른-변경)
- - [3.3 기능적 변경](#33-기능적-변경)
- - [4. 성능 개선 효과](#4-성능-개선-효과)
- - [5. 차별화 전략 유지](#5-차별화-전략-유지)
- - [문서 이력](#문서-이력)
---
@@ -58,1225 +44,1246 @@
- 전문용어 자동 감지 및 맥락 기반 설명 생성 (RAG)
- 과거 회의록 및 사내 문서 검색
- 업무 이력 통합
-5. **Notification** - 알림 발송 및 리마인더 관리
+
+---
+# 유저스토리 v2.3.0 - USER & MEETING 서비스
+
+## USER 서비스
+
+### UFR-USER-010: [로그인] 사용자로서 | 나는, 시스템에 접근하기 위해 | 사번과 비밀번호로 로그인하고 싶다.
+
+**수행절차:**
+1. 로그인 화면 접속
+2. 사번 입력 (필수)
+3. 비밀번호 입력 (필수, 최소 8자)
+4. (선택) 로그인 상태 유지 체크박스 선택
+5. 로그인 버튼 클릭
+6. 인증 성공 시 대시보드로 이동
+
+**입력:**
+- 사번: 텍스트 입력, 필수, 공백 불가
+- 비밀번호: 패스워드 입력, 필수, 최소 8자 이상
+- 로그인 상태 유지: 체크박스 (선택)
+- Enter 키 입력 시 다음 필드로 자동 이동 (사번 → 비밀번호)
+
+**출력/결과:**
+- 로그인 성공: JWT 토큰 발급, 사용자 정보 저장, 대시보드(02-대시보드.html)로 이동
+- 로그인 실패: 에러 메시지 표시 ("사번 또는 비밀번호가 올바르지 않습니다"), 5초 후 자동 숨김
+- 로딩 상태: 로그인 버튼 비활성화 및 "로그인 중..." 표시
+
+**예외처리:**
+- 사번 미입력: "사번을 입력해주세요" 에러 표시 및 사번 필드 포커스
+- 비밀번호 미입력: "비밀번호를 입력해주세요" 에러 표시 및 비밀번호 필드 포커스
+- 비밀번호 8자 미만: "비밀번호는 최소 8자 이상이어야 합니다" 에러 표시
+- 인증 실패: 인증 실패 메시지 표시, 로그인 버튼 재활성화
+- 이미 로그인된 경우: 대시보드로 자동 리다이렉트
+
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
---
-## 유저스토리
+### UFR-USER-020: [대시보드] 사용자로서 | 나는, 나의 회의 및 Todo 현황을 파악하기 위해 | 대시보드를 조회하고 싶다.
-```
-1. User 서비스
-1) 사용자 인증 관리
-AFR-USER-010: [사용자관리] 시스템 관리자로서 | 나는, 서비스 보안을 위해 | 사용자 인증 기능을 원한다.
-- 시나리오: 사용자 인증 관리
- 사용자가 로그인을 시도한 상황에서 | 사번과 비밀번호를 입력하면 | LDAP 연동을 통해 인증이 완료되고 권한에 따라 서비스에 접근할 수 있다.
- - [ ] 사용자 인증 (사번, 비밀번호)
- - [ ] 세션 관리
-- M/8
+**수행절차:**
+1. 로그인 후 대시보드 자동 표시 또는 하단 네비게이션에서 홈 아이콘 클릭
+2. 통계 블록 확인 (예정된 회의, 나의 Todo)
+3. 최근 회의 목록 확인 (최대 3개)
+4. 나의 Todo 목록 확인 (최대 3개)
+5. 나의 회의록 목록 확인 (최대 4개)
+6. 필요 시 섹션별 "전체 보기" 링크 클릭하여 상세 화면 이동
+7. FAB 버튼으로 회의 예약 또는 바로 시작
+
+**입력:**
+- 없음 (자동 렌더링)
+
+**출력/결과:**
+- 헤더: 사용자 이름, 오늘 예정된 회의 개수 또는 안내 메시지
+- 통계 블록 (2열 그리드):
+ - 예정된 회의: 전체 예정 + 진행 중 회의 개수
+ - 나의 Todo: 현재 사용자에게 할당된 전체 Todo 개수
+- 최근 회의 (회의록 미생성 우선, 빠른 일시 순, 최대 3개):
+ - 회의 카드: 상태 배지, 제목, 생성자 표시(👑), 날짜/시간, 참석자 수, 장소, 액션 버튼
+ - 진행 중 회의: 좌측 녹색 바 강조, "참여하기" 버튼
+ - 예정 회의: 생성자인 경우 "수정" 버튼
+ - 완료 회의: "보기" 버튼
+- 나의 Todo (미완료 우선, 마감일 순, 최대 3개):
+ - Todo 카드: 체크박스, D-day 배지, 우선순위 배지, 제목, 회의록 링크, 마감일, 편집 버튼
+- 나의 회의록 (최신순, 최대 4개, 2x2 그리드):
+ - 회의록 카드: 상태 배지, 생성자 표시(👑), 제목, 날짜/시간, 참석자 수, 검증완료율(작성중인 경우)
+- 사이드바 (데스크톱): 로고, 메뉴(회의록, Todo 관리), 사용자 정보, 로그아웃
+- 하단 네비게이션 (모바일): 홈(활성), 회의록, Todo
+- FAB 메뉴:
+ - 회의예약 버튼: 회의 예약 화면으로 이동
+ - 바로시작 버튼: 템플릿 선택 화면으로 이동
+
+**예외처리:**
+- 로그인 안 된 경우: 로그인 화면으로 리다이렉트
+- 최근 회의 없음: 빈 상태 표시
+- Todo 없음: "할당된 Todo가 없습니다" 빈 상태 표시
+- 회의록 없음: "참여한 회의록이 없습니다" 빈 상태 표시
+
+**관련 유저스토리:**
+- UFR-USER-010: 로그인
+- UFR-MEET-010: 회의예약
+- UFR-MEET-020: 템플릿선택
+- UFR-MEET-046: 회의록목록조회
+- UFR-MEET-047: 회의록상세조회
+- UFR-TODO-040: Todo관리
---
-AFR-USER-020: [대시보드] 사용자로서 | 나는, 회의록 서비스의 주요 정보를 한눈에 파악하기 위해 | 대시보드를 통해 요약 정보를 확인하고 싶다.
-- 시나리오: 대시보드 조회
- 로그인 후 대시보드에 접근하면 | 예정된 회의, 진행 중 Todo, 최근 회의록 등 주요 정보가 표시되고 | 플로팅 액션 버튼을 통해 새 회의를 시작하거나 예약할 수 있다.
+## MEETING 서비스
- **변경사항 (논리 아키텍처)**:
- - 프론트엔드가 Meeting Service에 직접 API 요청하여 회의, Todo, 회의록 정보 조회
- - User Service는 인증만 담당 (JWT 토큰 검증)
- - 모든 API 요청에 사용자 정보(userId, userName, email) 포함
+### UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
- [대시보드 주요 위젯]
- - 사용자 인사말 (이름 표시)
- - 통계 카드:
- - 예정된 회의 개수
- - 진행 중 Todo 개수
- - Todo 완료율 (%)
- - 최근 회의 섹션:
- - 회의 제목
- - 회의 일시
- - 회의 장소
- - 참석자 수
- - 회의 상태 (진행중/예정/확정완료)
- - 참여하기/보기 버튼
- - 전체 보기 링크 (회의록 목록으로 이동)
- - 할당된 Todo 섹션:
- - Todo 목록 (최대 3개)
- - 전체 보기 링크 (Todo 관리로 이동)
- - Todo 없을 시 안내 메시지
- - 내 회의록 섹션:
- - 작성한 회의록 목록 (최대 3개)
- - 전체 보기 링크
- - 회의록 없을 시 안내 메시지
+**수행절차:**
+1. 대시보드에서 "회의예약" FAB 버튼 클릭 또는 최근 회의에서 "수정" 버튼 클릭
+2. 회의 제목 입력 (최대 100자)
+3. 날짜 선택 (오늘 이후 날짜, 달력 UI)
+4. 시작/종료 시간 선택 (15분 단위 커스텀 시간 선택기)
+5. (선택) 종일 회의 토글 활성화 시 시간 입력 비활성화
+6. 온라인/오프라인 회의 선택 (토글)
+7. 장소 입력 (최대 200자)
+ - 오프라인: 예) 본사 2층 대회의실
+ - 온라인: 예) Zoom, Google Meet + 회의 링크 입력 또는 자동 생성
+8. 참석자 추가 (현재 사용자는 기본 포함)
+ - "참석자 추가" 버튼 클릭
+ - 검색 모달에서 이름 또는 이메일로 검색
+ - 사용자 선택하여 추가
+ - 칩으로 표시, X 버튼으로 제거 가능 (본인 제외)
+9. (선택) 안건 입력 (텍스트 영역)
+10. "임시저장" 버튼 또는 "예약 완료" 버튼 클릭
- [플로팅 액션 버튼 (FAB)]
- - 메인 FAB 버튼 (+)
- - 클릭 시 확장 메뉴 표시:
- - 🚀 새 회의 시작
- - 📅 회의 예약
- - 우측 하단 고정 위치
+**입력:**
+- 회의 제목: 텍스트 입력, 필수, 최대 100자, 문자 카운터 표시
+- 날짜: date 타입, 필수, 오늘 이후 날짜만 선택 가능, 달력 아이콘(📅) 표시
+- 시작 시간: 커스텀 시간 선택기 (readonly), 필수, 15분 단위 (00, 15, 30, 45)
+- 종료 시간: 커스텀 시간 선택기 (readonly), 필수, 15분 단위
+- 종일 회의: 토글 스위치 (선택)
+- 온라인 회의: 토글 스위치 (선택)
+- 장소: 텍스트 입력, 선택, 최대 200자, 문자 카운터 표시
+- 회의 링크: URL 입력, 선택, 온라인 회의인 경우에만 표시, "자동 생성" 버튼 제공
+- 참석자: 검색 모달, 필수 (최소 1명), 현재 사용자는 기본 포함
+- 안건: 텍스트 영역 (textarea), 선택, 여러 줄 입력 가능
- [네비게이션]
- - 좌측 사이드바 (데스크톱):
- - 로고 및 서비스명
- - 📊 대시보드
- - 📋 회의 목록
- - ✅ Todo 관리
- - 사용자 프로필 (이름, 이메일)
- - 하단 탭 바 (모바일):
- - 🏠 홈
- - 📋 회의록
- - ✅ Todo
+**출력/결과:**
+- 예약 완료: "회의가 예약되었습니다" 토스트 메시지, 대시보드로 이동
+- 임시저장: "임시 저장되었습니다" 토스트 메시지, 현재 화면 유지
+- 참석자 추가 성공: "{이름}님이 추가되었습니다" 토스트 메시지
+- 회의 링크 생성: "회의 링크가 생성되었습니다" 토스트 메시지
- [처리 결과]
- - 사용자별 맞춤 대시보드 표시
- - 실시간 통계 업데이트
- - 반응형 레이아웃 (모바일/태블릿/데스크톱)
+**예외처리:**
+- 제목 미입력: "회의 제목을 입력해주세요" 토스트, 제목 필드 포커스
+- 날짜 미선택: "회의 날짜를 선택해주세요" 토스트, 날짜 필드 포커스
+- 시간 미선택: "회의 시간을 선택해주세요" 토스트
+- 참석자 없음: "최소 1명의 참석자를 추가해주세요" 토스트
+- 과거 날짜 선택: "과거 날짜는 선택할 수 없습니다" 토스트, 날짜 필드 포커스
+- 뒤로가기/취소 클릭: "작성 중인 내용이 있습니다. 나가시겠습니까?" 확인 모달
+- 참석자 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
-- M/8
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
+- UFR-MEET-020: 템플릿선택
---
-2. Meeting 서비스 (회의, 회의록, Todo, 실시간 협업 통합)
-1) 회의 준비 및 관리
-UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
-- 시나리오: 회의 예약 및 참석자 초대
- 회의 예약 화면에 접근한 상황에서 | 회의 제목, 날짜/시간, 장소, 참석자 목록을 입력하고 예약 버튼을 클릭하면 | 회의가 예약되고 참석자에게 초대 이메일이 자동 발송된다.
+### UFR-MEET-015: [회의진행] 회의 참석자로서 | 나는, 회의 중 추가 참석자가 필요할 때 | 실시간으로 참석자를 초대하고 싶다.
- [입력 요구사항]
- - 회의 제목: 최대 100자 (필수)
- - 날짜/시간: 날짜 및 시간 선택 (필수)
- - 장소: 최대 200자 (선택)
- - 참석자 목록: 이메일 주소 입력 (최소 1명 필수)
+**수행절차:**
+1. 회의 진행 화면(05-회의진행.html)에서 "참석자" 탭 클릭
+2. "초대" 버튼 클릭
+3. 검색 모달에서 이름 또는 이메일로 검색
+4. 사용자 선택하여 초대
+5. 초대된 참석자 실시간 표시
+6. 초대된 참석자에게 알림 전송
- [처리 결과]
- - 회의가 예약됨 (회의 ID 생성)
- - 일정이 캘린더에 자동 등록됨
- - 참석자에게 초대 이메일 발송됨
- - 회의 시작 30분 전 리마인더 자동 발송
+**입력:**
+- 검색어: 텍스트 입력, 이름 또는 이메일로 검색
+- 선택: 검색 결과 목록에서 사용자 클릭
-- M/13
+**출력/결과:**
+- 초대 성공: 참석자 목록에 실시간 추가, "{이름}님을 초대했습니다" 토스트 메시지
+- 초대된 참석자에게 알림 대상 생성:
+ - 알림 유형: "회의 참석자 초대"
+ - 알림 내용: "{회의 제목}에 참석자로 초대되었습니다"
+ - 수신자: 초대된 참석자
+ - 발송 예정 시각: 즉시
+- Notification 서비스가 주기적으로 폴링하여 이메일 발송
+- 모든 참석자에게 참석자 변경 사항 실시간 동기화 (WebSocket)
+
+**예외처리:**
+- 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
+- 이미 참석 중인 사용자: 선택 불가 또는 "이미 참석 중입니다" 안내
+- 네트워크 오류: "초대에 실패했습니다" 에러 메시지
+
+**관련 유저스토리:**
+- UFR-MEET-030: 회의시작
+- UFR-COLLAB-010: 회의록수정동기화
---
-UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
-- 시나리오: 회의록 템플릿 선택
- 회의 시작 전 템플릿 선택 화면에 접근한 상황에서 | 제공되는 템플릿 중 하나를 선택하고 커스터마이징하면 | 회의록 도구가 준비된다.
+### UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
- [템플릿 유형]
- - 일반 회의: 기본 구조 (참석자, 안건, 논의 내용, 결정 사항, Todo)
- - 스크럼 회의: 어제 한 일, 오늘 할 일, 이슈
- - 프로젝트 킥오프: 프로젝트 개요, 목표, 일정, 역할, 리스크
- - 주간 회의: 주간 실적, 주요 이슈, 다음 주 계획
+**수행절차:**
+1. 대시보드에서 "바로시작" FAB 버튼 클릭
+2. 템플릿 선택 화면(04-템플릿선택.html) 표시
+3. 4가지 템플릿 중 선택 또는 "건너뛰기" 선택
+ - 일반 회의: 회의 개요, 논의 사항, 결정 사항, 액션 아이템
+ - 스크럼 회의: 어제 한 일, 오늘 할 일, 블로커/이슈
+ - 킥오프 회의: 프로젝트 개요, 목표 및 범위, 역할 및 책임, 일정 및 마일스톤
+ - 주간 회의: 지난주 성과, 이번주 계획, 주요 이슈, 다음 액션
+4. 선택 완료 시 회의 시작 (05-회의진행.html로 이동)
- [커스터마이징 옵션]
- - 섹션 추가/삭제
- - 섹션 순서 변경
- - 기본 항목 설정
+**입력:**
+- 템플릿 선택: 4가지 중 1개 선택 또는 건너뛰기
+- 템플릿 카드 클릭 시 해당 템플릿 선택
- [처리 결과]
- - 선택된 템플릿으로 회의록 도구가 준비됨
+**출력/결과:**
+- 템플릿 선택: 선택한 템플릿으로 회의 시작, 회의 진행 화면으로 이동
+- 건너뛰기: 기본 템플릿(일반 회의)으로 회의 시작
+- 템플릿 미리보기: 아이콘, 설명, 섹션 목록 표시
-- S/5
+**예외처리:**
+- 없음 (선택 또는 건너뛰기 모두 허용)
+
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
+- UFR-MEET-030: 회의시작
---
-UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
-- 시나리오: 회의 시작
- 예약된 회의 시간에 회의 시작 버튼을 클릭한 상황에서 | 회의 ID를 확인하고 시작하면 | 회의 세션이 생성되고 음성 녹음이 준비된다.
+### UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
- [회의 시작 조건]
- - 예약된 회의가 존재함
- - 회의 시작 시간 10분 전부터 회의 시작 버튼 활성화
- - 회의 생성자가 시작 권한을 가짐
- - 이미 시작된 회의일 경우, 진행중으로 표시
+**수행절차:**
+1. 템플릿 선택 완료 또는 대시보드에서 진행 중 회의 "참여하기" 클릭
+2. 회의 진행 화면(05-회의진행.html) 표시
+3. 녹음 시작 확인 (자동 또는 수동)
+4. 타이머 시작 (회의 진행 시간 표시)
+5. 웨이브폼 애니메이션 표시 (녹음 상태 시각화)
+6. 탭 네비게이션으로 기능 전환:
+ - 참석자: 참석자 목록 및 실시간 초대
+ - AI 제안: 실시간 AI 분석 결과 및 메모 추가
+ - 용어사전: 자동 추출된 용어 및 검색
+ - 관련회의록: 자동 연결된 이전 회의록
+7. 회의 메모 작성 (하단 고정 메모 영역)
+8. 일시정지 또는 회의 종료 버튼 클릭
- [처리 결과]
- - 회의 세션이 생성됨 (세션 ID)
- - 음성 녹음 준비 완료
- - 참석자 목록 표시
- - 회의 시작 시간 기록
- - 실시간 회의록 주요 항목 추천
+**입력:**
+- 녹음 시작/일시정지: 버튼 클릭
+- 탭 전환: 탭 클릭
+- 메모 작성: 텍스트 입력
-- M/8
+**출력/결과:**
+- 헤더: 회의 제목, 녹음 상태 (녹음 중/일시정지), 경과 시간
+- 웨이브폼 애니메이션: 녹음 상태 시각화
+- 참석자 탭: 참석자 목록, 초대 버튼
+- AI 제안 탭: AI 분석 카드, "메모에 추가" 버튼
+- 용어사전 탭: 자동 추출된 용어, 검색 기능
+- 관련회의록 탭: 자동 연결된 이전 회의록 목록
+- 하단 고정 버튼: 일시정지, 회의 종료
+
+**예외처리:**
+- 녹음 권한 없음: "마이크 권한이 필요합니다" 에러 메시지
+- 네트워크 오류: "녹음 중 오류가 발생했습니다" 에러 메시지
+- 일시정지 확인: "일시정지하시겠습니까?" 확인 모달
+- 종료 확인: "회의를 종료하시겠습니까?" 확인 모달
+
+**관련 유저스토리:**
+- UFR-MEET-020: 템플릿선택
+- UFR-MEET-015: 참석자 실시간 초대
+- UFR-MEET-040: 회의종료
+- UFR-STT-010: 음성녹음인식
+- UFR-AI-030: 실시간 AI 제안 (신규)
+- UFR-RAG-010: 전문용어감지
+- UFR-AI-040: 관련회의록연결
---
-2) 회의 종료 및 완료
-UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
-- 시나리오: 회의 종료
- 회의가 진행 중인 상황에서 | 회의 종료 버튼을 클릭하면 | 음성 녹음이 중지되고 AI가 회의 전체 내용을 요약 정리한다.
+### UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
- [회의 종료 처리]
- - 음성 녹음 즉시 중지
- - 회의 종료 시간 기록
- - AI가 회의 전체 내용 처리
- - STT로 텍스트화된 회의 전체 내용을 주요 안건으로 요약 정리
- - 회의 예약 시 선택한 템플릿 반영
- - 회의 진행 시 저장한 주요 메모 항목 반영
- - 회의 통계 자동 생성
- - 회의 총 시간
- - 참석자 수
- - 주요 키워드
+**수행절차:**
+1. 회의 진행 화면에서 "회의 종료" 버튼 클릭
+2. 종료 확인 모달: "회의를 종료하시겠습니까?" 확인
+3. 회의 종료 화면(07-회의종료.html) 표시 (확인 전용, 편집 불가)
+4. 통계 확인 (4열 그리드):
+ - 참석자 수
+ - 회의 시간
+ - 안건 수
+ - Todo 수
+5. 주요 키워드 확인 (태그 형태)
+6. 안건별 AI 요약 확인 (아코디언 카드):
+ - AI 한줄 요약 (30자 이내, 편집 불가)
+ - AI 상세 요약 (편집 가능, 재생성 가능)
+ - 자동 추출된 Todo 목록
+7. 하단 액션 바에서 다음 단계 선택:
+ - 옵션 1: "회의록 수정" → 회의록 수정 화면(11-회의록수정.html)으로 이동
+ - 옵션 2: "바로 최종 확정" → 모든 안건 자동 검증 완료 처리 후 최종 확정
+ - 옵션 3: "대시보드" → 대시보드(02-대시보드.html)로 이동
- [처리 결과]
- - 회의가 종료됨
- - AI 요약 내용 전체 표시
- - 안건별 AI 한줄 요약
- - 안건별 상세 요약 정리
- - Todo 자동 추출 결과
- - 회의 통계 표시
- - 회의 종료 화면은 확인 전용 (편집 불가)
- - 안건 내용 수정 불가
- - Todo 수정 불가
- - 확인만 가능
- - 사용자에게 다음 단계 선택 옵션 제공
- - 옵션 1: 회의록 수정 화면으로 이동 (회의록 확정을 위한 편집)
- - 옵션 2: 바로 최종 확정 (AI가 잘 정리한 경우)
- - 옵션 3: 대시보드로 이동 (회의록 상태: 작성중)
+**입력:**
+- 하단 액션 버튼 클릭
- [회의록 상태]
- - 옵션 1 선택 시: 작성중 상태에서 수정 화면으로 이동
- - 옵션 2 선택 시:
- - 모든 안건 자동 검증 완료 처리
- - 회의록 상태: 확정완료
- - 확정 시간 기록
- - 참석자에게 확정 알림 발송
- - 옵션 3 선택 시: 작성중 상태로 저장되며, 추후 회의록 목록에서 편집 가능
+**출력/결과:**
+- 회의 종료 화면 표시:
+ - 통계 카드 (4열): 참석자, 시간, 안건, Todo
+ - 주요 키워드 태그
+ - 안건 아코디언 카드: AI 한줄 요약 + 상세 요약 + Todo
+ - 읽기 전용 안내 표시
+- 회의록 상태: "작성중"으로 저장
+- 옵션 선택에 따른 화면 전환
- [Policy/Rule]
- - 회의 종료 화면에서는 내용을 확인만 가능하며 편집 불가
- - 바로 최종 확정 시 모든 안건이 자동으로 검증 완료 처리됨
+**예외처리:**
+- AI 요약 생성 실패: "요약 생성 중 오류가 발생했습니다" 에러 메시지, 기본 템플릿으로 대체
+- Todo 추출 실패: 빈 Todo 목록 표시
+- 바로 확정 실패: "최종 확정 중 오류가 발생했습니다" 에러 메시지
-- M/8
+**관련 유저스토리:**
+- UFR-MEET-030: 회의시작
+- UFR-MEET-050: 최종확정
+- UFR-MEET-055: 회의록수정
+- UFR-AI-010: 회의록자동작성
+- UFR-AI-020: Todo자동추출
+- UFR-AI-036: AI한줄요약
---
-UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.
+### UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.
-- 시나리오 1: 회의록 수정 화면에서 최종 확정
- 회의록 수정 화면에서 | 모든 안건을 검증하고 확정 버튼을 클릭하면 | 필수 항목과 안건 검증 상태가 검사되고 최종 버전이 생성된다.
+**수행절차:**
+**시나리오 1: 회의록 수정 후 최종 확정**
+1. 회의록 수정 화면(11-회의록수정.html)에서 모든 안건 검증 완료
+2. "최종 확정" 버튼 활성화 (검증률 100%)
+3. "최종 확정" 버튼 클릭
+4. 확인 모달: "최종 확정하시겠습니까? 확정 후에는 생성자만 수정할 수 있습니다"
+5. 회의록 상태: "확정완료"로 변경
+6. 회의록 상세 조회 화면(10-회의록상세조회.html)으로 이동
- [필수 항목 검사]
- - 회의 제목 입력 여부
- - 참석자 목록 작성 여부
- - 주요 논의 내용 작성 여부 (안건별)
- - 결정 사항 작성 여부
- - 모든 안건 검증 완료 여부
+**시나리오 2: 회의 종료 화면에서 바로 확정**
+1. 회의 종료 화면(07-회의종료.html)에서 "바로 최종 확정" 버튼 클릭
+2. 확인 모달: "바로 최종 확정하시겠습니까?"
+3. 모든 안건 자동 검증 완료 처리
+4. 회의록 상태: "확정완료"로 변경
+5. 회의록 상세 조회 화면으로 이동
- [안건 검증 요구사항]
- - 각 안건별로 검증 완료 처리 필요
- - 검증률 = 검증 완료된 안건 수 / 전체 안건 수
- - 검증률이 100%가 되어야 최종 확정 가능
- - 검증되지 않은 안건이 있으면 확정 불가
+**입력:**
+- 최종 확정 버튼 클릭
+- 확인 모달 승인
- [처리 결과]
- - 최종 회의록 확정됨 (확정 버전 번호)
- - 확정 시간 기록
- - 회의록 확정 상태로 전환
- - 참석자에게 확정 알림 발송
- - Todo 항목은 이미 추출되어 있음 (UFR-AI-020에서 처리)
+**출력/결과:**
+- 확정 성공: "회의록이 최종 확정되었습니다" 토스트 메시지
+- 회의록 상태: "확정완료"
+- 모든 안건 검증완료 상태로 변경
+- 회의록 상세 조회 화면으로 이동
+- 확정 후 편집 권한: 회의 생성자만 잠금 해제 후 수정 가능
- [필수 항목 미작성 시]
- - 누락된 항목 안내 메시지 표시
- - 해당 섹션으로 자동 이동
+**예외처리:**
+- 시나리오 1에서 미검증 안건 존재: "모든 안건을 검증해야 확정할 수 있습니다" 에러 메시지
+- 확정 실패: "최종 확정 중 오류가 발생했습니다" 에러 메시지
+- 확인 모달 취소: 현재 화면 유지
- [안건 미검증 시]
- - 검증되지 않은 안건 목록 표시
- - 검증률 표시 (예: 70% - 7개 중 5개 검증 완료)
- - 미검증 안건으로 자동 이동
-
-- 시나리오 2: 회의 종료 화면에서 바로 최종 확정
- 회의 종료 화면에서 | AI가 정리한 내용을 확인하고 "바로 최종 확정" 버튼을 클릭하면 | 모든 안건이 자동으로 검증 완료 처리되고 회의록이 확정된다.
-
- [바로 확정 처리]
- - 필수 항목 자동 충족 (AI가 이미 생성)
- - 회의 제목: 회의 예약 정보
- - 참석자 목록: 회의 참석자 정보
- - 주요 논의 내용: AI가 안건별로 생성
- - 결정 사항: AI가 안건별로 추출
- - 모든 안건 자동 검증 완료 처리
- - 검증률 100% 자동 설정
- - 각 안건별 검증 완료 상태로 변경
- - 검증자: 회의록 생성자
- - 검증 시간: 확정 시간
-
- [처리 결과]
- - 최종 회의록 확정됨 (확정 버전 번호)
- - 확정 시간 기록
- - 모든 안건 검증 완료 상태
- - 회의록 확정 상태로 전환
- - 참석자에게 확정 알림 발송
- - 회의록 수정 화면을 거치지 않고 바로 확정 완료
-
- [Policy/Rule]
- - 회의 종료 화면에서 바로 확정 시 AI 생성 내용 그대로 사용
- - 모든 안건 자동 검증 완료 처리
- - 추후 회의록 수정 필요 시 회의록 목록에서 편집 가능
-
-- M/13
+**관련 유저스토리:**
+- UFR-MEET-040: 회의종료
+- UFR-MEET-055: 회의록수정
+- UFR-COLLAB-030: 검증완료
---
-UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
-- 시나리오: 회의록 목록 조회 및 필터링
- 대시보드에서 "회의록" 메뉴를 클릭하면 | 회의록 목록이 표시되고 | 다양한 필터와 검색으로 원하는 회의록을 찾을 수 있다.
+### UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
- [화면 정보]
- - 화면번호: 12-회의록목록조회
- - 프로토타입: design/uiux/prototype/12-회의록목록조회.html
- - 데이터 소스: common.js → SAMPLE_MINUTES 배열 (30개 샘플 데이터)
+**수행절차:**
+1. 사이드바 또는 하단 네비게이션에서 "회의록" 메뉴 클릭
+2. 회의록 목록 조회 화면(12-회의록목록조회.html) 표시
+3. (선택) 정렬 기준 선택:
+ - 최근수정순 (기본값)
+ - 최근회의순
+ - 제목순
+4. (선택) 참여 유형 필터 선택 (다중 선택 가능):
+ - 참석한 회의 (체크박스)
+ - 생성한 회의 (체크박스)
+5. (선택) 상태 탭 필터 선택:
+ - 전체 (통계 표시)
+ - 작성중 (검증완료율 표시)
+ - 확정완료
+6. (선택) 검색: 제목, 참석자, 키워드로 검색
+7. 회의록 카드 클릭 시 상세 조회 화면으로 이동
+8. 하단 스크롤 시 "더보기" (10개씩 추가 로드)
- [데이터 구조]
- - **데이터 레이어**: common.js의 SAMPLE_MINUTES 배열
- - **뷰 레이어**: 12-회의록목록조회.html (동적 렌더링)
- - **렌더링 방식**: JavaScript로 SAMPLE_MINUTES 데이터를 동적으로 HTML로 생성
- - **샘플 데이터 분포**: 총 30개 (작성중 13개, 확정완료 17개)
+**입력:**
+- 정렬 기준: 드롭다운 선택
+- 참여 유형: 체크박스 (다중 선택)
+- 상태: 탭 클릭
+- 검색어: 텍스트 입력
+- 더보기: 스크롤 또는 버튼 클릭
- [회의록 목록 조회]
- - 회의록 상태별 필터링: 전체 / 작성중 / 확정완료
- - 정렬 옵션: 최근수정순 / 최근회의순 / 제목순
- - 참여 유형 필터: 참석한 회의 / 생성한 회의 (다중 선택 가능)
- - 검색 기능: 회의 제목, 참석자, 키워드로 검색
- - 통계 표시: 전체 개수, 작성중 개수, 확정완료 개수
- - 페이지네이션: 초기 10개 표시, "10개 더보기" 버튼으로 추가 로드
- - 목록 표시 정보:
- - 회의 제목
- - 회의 일시
- - 참석자 수
- - 회의록 상태 (작성중/확정완료)
- - 검증 완료율 (작성중인 경우, %)
- - 생성자 표시 (👑 아이콘)
- - 마지막 수정 시간
+**출력/결과:**
+- 필터 섹션: 정렬, 참여 유형 (체크박스), 검색
+- 상태 탭: 전체 (통계), 작성중, 확정완료
+- 회의록 카드 그리드 (모바일 1열, 데스크톱 2열):
+ - 상태 배지 (작성중/확정완료)
+ - 생성자 표시 (👑 아이콘, 16px, "생성자" 툴팁)
+ - 제목
+ - 날짜/시간, 참석자 수
+ - 검증완료율 (작성중인 경우만)
+- 빈 상태: "조회된 회의록이 없습니다" 표시
+- 더보기: 10개씩 추가 로드
- [처리 결과]
- - 필터/정렬/검색 조건에 맞는 회의록 목록 표시
- - 회의록 클릭 시 상세 조회 화면으로 이동
- - 모바일/태블릿/데스크톱 반응형 레이아웃
- - 실시간 통계 업데이트
+**예외처리:**
+- 조회 결과 없음: 빈 상태 표시
+- 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
+- 네트워크 오류: "회의록 조회 중 오류가 발생했습니다" 에러 메시지
- [변경 사유 (v2.2.0)]
- - M → S로 변경: 대시보드의 "최근 회의" 섹션으로 기본 기능 제공 가능
- - 필터/검색 등 고급 기능은 2차 출시로 연기하여 MVP 집중
-
-- S/8
+**관련 유저스토리:**
+- UFR-USER-020: 대시보드 조회
+- UFR-MEET-047: 회의록상세조회
---
-UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
-- 시나리오: 회의록 상세 정보 조회
- 회의록 목록에서 특정 회의록을 클릭하면 | 해당 회의의 기본 정보와 섹션별 상세 내용이 표시되고 | 필요한 경우 수정작업을 수행할 수 있다.
+### UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
- [화면 정보]
- - 화면번호: 10-회의록상세조회
- - 프로토타입: design/uiux/prototype/10-회의록상세조회.html
+**수행절차:**
+1. 대시보드 또는 회의록 목록에서 회의록 카드 클릭
+2. 회의록 상세 조회 화면(10-회의록상세조회.html) 표시
+3. 탭 전환:
+ - **대시보드 탭** (기본 노출):
+ - 통계 그리드 (4열): 참석자, 회의 시간, 안건 수, Todo 수
+ - 주요 키워드 (태그)
+ - 핵심내용 요약
+ - 결정사항
+ - Todo 진행상황 (필터: 전체, 지연, 마감 임박, 완료)
+ - Todo 카드: 체크박스, D-day 배지, 우선순위 배지, 제목, 담당자, 마감일, 편집 버튼
+ - 진행률 표시 (수평 바): 완료 Todo 수 / 전체 Todo 수
+ - 관련회의록 (관련도 배지: 높음, 중간, 낮음)
+ - **회의록 탭**:
+ - 회의 기본 정보 (제목, 날짜/시간, 장소, 참석자)
+ - 안건별 카드:
+ - 안건 제목
+ - AI 한줄 요약 (30자 이내, 읽기 전용)
+ - AI 상세 요약
+ - 관련회의록 링크
+4. Todo 체크박스 클릭 시 완료/미완료 토글
+5. Todo 편집 버튼 클릭 시 편집 모달
+6. "수정" 버튼 클릭 시 회의록 수정 화면으로 이동
- [회의 기본 정보 표시]
- - 회의 제목
- - 회의 일시 (날짜 및 시간, 소요 시간)
- - 참석자 목록 (아바타 표시, 역할 구분: 생성자/참석자)
- - 회의 장소 (온라인/오프라인)
- - 회의록 상태 (작성중/확정완료)
- - 생성자 및 최종 수정 시간
+**입력:**
+- 탭 클릭: 대시보드 / 회의록
+- Todo 필터: 전체, 지연, 마감 임박, 완료
+- Todo 체크박스: 완료/미완료 토글
+- Todo 편집 버튼: 편집 모달 열기
- [섹션별 상세 내용 표시]
- - 각 섹션 구분 표시 (번호, 제목)
- - 섹션별 검증 상태 표시 (검증완료 배지)
- - AI 요약 섹션:
- - 섹션별 AI 요약 내용
- - 생성/수정 시간 표시
- - 편집 버튼 (수정 권한이 있는 경우)
- - 상세 내용 섹션:
- - 논의 사항 (리스트 형태)
- - 결정 사항 (리스트 형태)
- - 일정 정보 (있는 경우)
- - 리소스 정보 (있는 경우)
- - 관련 회의록 섹션:
- - 관련도 높은 회의록 최대 3개 표시
- - 각 회의록별 정보: 제목, 날짜, 관련도 %, 요약 내용
- - 클릭 시 해당 회의록으로 이동
+**출력/결과:**
+- 헤더: 회의 제목, 생성자 표시 (👑), "수정" 버튼 (권한에 따라 표시)
+- 대시보드 탭:
+ - 통계, 키워드, 핵심내용, 결정사항, Todo 진행상황, 관련회의록
+- 회의록 탭:
+ - 기본 정보, 안건별 상세 내용
+- Todo 완료 토글: 확인 모달 → 상태 변경 → "Todo가 완료되었습니다" 토스트
+- Todo 편집 모달: 제목, 담당자, 마감일, 우선순위 수정
- [탭 네비게이션]
- - **탭 구성**: 대시보드 / 회의록 (2개 탭)
- - **기본 노출**: 대시보드 탭 우선 노출
- - **탭 전환**: 클릭 시 콘텐츠 전환, URL 변경 없음
- - **대시보드 탭 내용**:
- - 핵심내용 (주요 포인트 요약)
- - 결정사항
- - Todo 진행상황
- - 관련회의록
- - **회의록 탭 내용**:
- - 섹션별 상세 내용
- - AI 요약
- - 관련회의록
+**예외처리:**
+- 회의록 조회 실패: "회의록 조회 중 오류가 발생했습니다" 에러 메시지
+- Todo 없음: "등록된 Todo가 없습니다" 빈 상태 표시
+- 관련회의록 없음: "관련 회의록이 없습니다" 빈 상태 표시
+- Todo 완료 토글 실패: "Todo 상태 변경 중 오류가 발생했습니다" 에러 메시지
+- Todo 편집 권한 없음: "담당자 또는 회의 생성자만 편집할 수 있습니다" 안내
- [부가 기능]
- - 회의록 수정 버튼 (수정 권한이 있는 경우만 활성화)
- - 뒤로가기 버튼 (회의록 목록으로 복귀)
- - 더보기 메뉴 (다운로드, 삭제 등)
-
- [처리 결과]
- - 모바일/태블릿/데스크톱 반응형 레이아웃
- - 긴 내용은 적절한 단락 구분 및 여백 적용
- - 페이지 로딩 시 스크롤 위치는 최상단
- - 관련 회의록 자동 표시
-
- [권한별 표시]
- - 조회 권한만 있는 경우: 수정 버튼 비활성화
- - 수정 권한이 있는 경우: 수정 버튼 활성화
-
- [변경 사유 (v2.2.0)]
- - M → S로 변경: 대시보드에서 회의록을 바로 열어 수정 화면으로 진입 가능
- - 별도 상세 조회 화면은 사용자 경험 개선 기능으로 2차 출시 예정
-
-- S/8
+**관련 유저스토리:**
+- UFR-MEET-046: 회의록목록조회
+- UFR-MEET-055: 회의록수정
+- UFR-TODO-030: Todo완료처리
+- UFR-TODO-040: Todo관리
---
-UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다.
-- **화면번호**: 11-회의록수정
-- 시나리오: 지난 회의록 수정
- 회의록 상세 화면에서 수정 버튼을 클릭하면 | 회의록 수정 화면으로 이동하고 | 내용을 수정할 수 있다.
+### UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다.
- [진입 경로]
- - 10-회의록상세조회 화면 → 하단 액션 바 "수정" 버튼 클릭
- - 권한이 있는 경우에만 "수정" 버튼 활성화
+**수행절차:**
+1. 회의록 상세 조회 화면에서 "수정" 버튼 클릭
+2. 회의록 수정 화면(11-회의록수정.html) 표시
+3. 편집 가능 항목:
+ - 회의 제목 (텍스트 입력)
+ - AI 한줄 요약 (읽기 전용, 편집 불가)
+ - AI 상세 요약 (텍스트 영역, 편집 가능)
+ - "재생성" 버튼: AI 상세 요약 재생성 (2-3문장, 2-5초 처리)
+ - 안건 내용 (텍스트 영역)
+ - 관련회의록 추가/제거
+ - "추가" 버튼: 검색 모달 열기
+ - X 버튼: 관련회의록 제거
+ - 참석자 관리 (회의 생성자만):
+ - 참석자 추가/삭제
+ - 05-회의진행 화면과 동일한 UI
+4. 읽기 전용 항목:
+ - 회의 일시 (읽기 전용 배지 표시)
+ - 회의 장소 (읽기 전용 배지 표시)
+5. 안건별 검증 완료 토글:
+ - 검증 완료 전: 토글 활성화 → 잠금
+ - 검증 완료 후: 잠금 아이콘 표시
+ - 회의 생성자: 잠금 해제 → 토글 비활성화 → 편집 가능
+6. 자동 저장 (30초마다)
+ - 저장 상태 표시: "저장 중...", "저장됨"
+7. 모든 안건 검증 완료 시 "최종 확정" 버튼 활성화
+8. 페이지 나가기 전 확인 (변경사항 있을 때)
- [수정 가능 항목]
- - ✅ **회의 제목**: 수정 가능
- - ❌ **회의 일시**: 수정 불가 (readonly, 회의 예약 화면에서만 변경 가능)
- - ❌ **회의 장소**: 수정 불가 (readonly, 회의 예약 화면에서만 변경 가능)
- - ✅ **참석자 목록**: 회의 생성자만 추가/삭제 가능
- - 05-회의진행 화면과 동일한 UI 제공
- - 참석자 추가: 이메일 입력 후 초대 버튼
- - 참석자 삭제: 각 참석자 옆 × 버튼 (회의 생성자는 삭제 불가)
- - ✅ **섹션별 AI 요약**: AI 재생성 버튼으로 수정 가능
- - ✅ **섹션별 내용**: 마크다운 에디터로 수정 가능
- - ✅ **관련회의록**: 추가/삭제 가능
- - ❌ **검증완료 섹션**: 회의 생성자만 잠금 해제 후 수정 가능 (참석자는 수정 불가)
- - 🔄 **회의록 상태**: 수정 시 자동으로 '작성중'으로 변경 (사용자 직접 변경 불가)
+**입력:**
+- 회의 제목: 텍스트 입력
+- AI 상세 요약: 텍스트 영역 편집, "재생성" 버튼
+- 안건 내용: 텍스트 영역 편집
+- 관련회의록: 추가(검색 모달), 제거(X 버튼)
+- 참석자: 추가(검색 모달), 삭제(X 버튼) - 회의 생성자만
+- 검증 완료: 토글 스위치
+- 잠금 해제: 잠금 아이콘 클릭 (회의 생성자만)
- [수정 기능]
- - 수정 중 자동 저장 (30초 간격)
- - 저장 상태 표시 (저장됨/저장 중)
- - 수정 이력 관리 (v2.0 고도화 예정)
+**출력/결과:**
+- 편집 화면: 제목, AI 요약, 안건, 관련회의록, 참석자, 검증 토글
+- 자동 저장: "저장 중..." → "저장됨" 상태 표시
+- AI 재생성: "재생성 중..." → 새 요약 표시 → "재생성되었습니다" 토스트
+- 관련회의록 추가: 검색 모달 → 선택 → "추가되었습니다" 토스트
+- 참석자 추가: 검색 모달 → 선택 → "{이름}님이 추가되었습니다" 토스트
+- 검증 완료: 토글 → 잠금 아이콘 표시
+- 잠금 해제: 잠금 아이콘 클릭 → "잠금 해제하시겠습니까?" 확인 → 토글 비활성화
+- 최종 확정: 검증률 100% → "최종 확정" 버튼 활성화
- [처리 결과]
- - 수정 내용 즉시 반영
- - 수정 시간 업데이트
- - 확정완료 상태였던 경우 → 작성중 상태로 변경
- - 취소 시 이전 상태로 복원
+**예외처리:**
+- 편집 권한 없음 (확정 완료 후, 생성자 아님): 읽기 전용 모드, "회의 생성자만 수정할 수 있습니다" 안내
+- 검증 완료 섹션 편집 시도 (참석자): "검증 완료된 섹션은 수정할 수 없습니다" 안내
+- AI 재생성 실패: "재생성 중 오류가 발생했습니다" 에러 메시지
+- 자동 저장 실패: "저장 실패" 상태 표시
+- 페이지 나가기: "저장되지 않은 변경사항이 있습니다. 나가시겠습니까?" 확인 모달
+- 참석자 관리 권한 없음: "회의 생성자만 참석자를 관리할 수 있습니다" 안내
- [권한 제어]
- **검증완료 전 (작성중/초안 상태)**
- - 모든 참석자가 회의록 수정 가능
- - 모든 섹션 편집 가능 (검증완료 섹션 없음)
- - 참석자 관리: 회의 생성자만 가능
+**관련 유저스토리:**
+- UFR-MEET-047: 회의록상세조회
+- UFR-MEET-050: 최종확정
+- UFR-AI-035: 섹션AI요약
+- UFR-AI-040: 관련회의록연결
+- UFR-COLLAB-010: 회의록수정동기화
+- UFR-COLLAB-020: 충돌해결
+- UFR-COLLAB-030: 검증완료
+# 유저스토리 v2.3.0 - AI, STT, RAG, COLLAB, TODO, NOTIFICATION 서비스
- **검증완료 후**
- - 회의 생성자만 회의록 수정 가능
- - 참석자는 "수정" 버튼 비활성화 (조회만 가능)
- - 검증완료 섹션: 회의 생성자만 잠금 해제 후 수정 가능
- - 수정 시 회의록 상태는 '작성중'으로 자동 변경 (재검증 필요)
+## AI 서비스
-- M/13
+### UFR-AI-010: [회의록자동작성] 회의 참석자로서 | 나는, 회의록 작성 부담을 줄이기 위해 | AI가 발언 내용을 실시간으로 정리하고 회의 종료 시 전체 안건을 요약하기를 원한다.
+
+**수행절차:**
+
+**시나리오 1: 실시간 AI 주요 메모 작성 (회의 진행 중)**
+1. 회의 진행 중 STT가 음성을 텍스트로 변환
+2. AI가 실시간으로 발언 내용 분석
+3. 주요 내용을 감지하여 AI 제안 생성
+4. "AI 제안" 탭에 제안 카드 표시
+5. 사용자가 "메모에 추가" 버튼 클릭 시 회의 메모에 추가
+
+**시나리오 2: 회의 종료 시 전체 안건 요약**
+1. 회의 종료 버튼 클릭
+2. AI가 전체 STT 텍스트 및 메모를 분석
+3. 템플릿 및 메모 항목을 반영하여 주요 안건으로 요약 정리
+4. 각 안건별로:
+ - AI 한줄 요약 생성 (30자 이내, 편집 불가)
+ - AI 상세 요약 생성 (2-3문장, 편집 가능)
+5. 회의 종료 화면에 안건별 요약 표시
+
+**입력:**
+- STT 변환된 텍스트 (실시간)
+- 회의 메모 내용
+- 선택된 템플릿 정보
+- 회의 종료 이벤트
+
+**출력/결과:**
+- 시나리오 1: AI 제안 카드 (실시간), 제안 내용, "메모에 추가" 버튼
+- 시나리오 2: 안건별 AI 요약 (한줄 요약 + 상세 요약)
+- 참석자에게 실시간 동기화 (WebSocket)
+
+**예외처리:**
+- AI 요약 생성 실패: "요약 생성 중 오류가 발생했습니다" 에러 메시지, 기본 템플릿으로 대체
+- 네트워크 오류: 재시도 로직 또는 로컬 캐시 사용
+- STT 텍스트 없음: 빈 안건 목록 생성
+
+**관련 유저스토리:**
+- UFR-STT-020: 텍스트변환
+- UFR-MEET-040: 회의종료
+- UFR-COLLAB-010: 회의록수정동기화
---
-3. STT 서비스 (음성 인식 및 변환 - 기본 기능)
-1) 음성 인식 및 변환
-UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
-- 시나리오: 음성 실시간 인식
- 회의가 시작된 상황에서 | 참석자가 발언을 시작하면 | 음성이 실시간으로 텍스트로 변환된다.
+### UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
- [음성 스트리밍 처리]
- - 오디오 스트림 실시간 캡처
- - 회의 ID와 연결
- - **음성 파일은 저장하지 않음** (실시간 스트리밍만 처리)
+**수행절차:**
+1. 회의 종료 시 AI가 각 안건 내용 분석
+2. 실행 가능한 항목(Action Item) 감지
+3. Todo 추출 및 기본값 설정:
+ - 제목: AI가 추출한 실행 항목
+ - 담당자 기본값: 회의록 생성자
+ - 마감일 기본값: 다음 회의 날짜 OR 오늘 + 7일
+ - 우선순위 기본값: 보통
+4. Todo 목록 생성
+5. Meeting 서비스에 자동 전달
+6. 회의 종료 화면에 Todo 목록 표시
- [음성 인식 처리]
- - AI 음성인식 엔진 연동 (Azure Speech 등)
- - 실시간 텍스트 변환
- - 타임스탬프 기록
+**입력:**
+- 각 안건의 AI 상세 요약
+- 회의 메모 내용
+- 회의 기본 정보 (생성자, 다음 회의 날짜)
- [처리 결과]
- - 음성 스트리밍이 시작됨 (세션 ID)
- - 텍스트가 변환됨 (세그먼트 ID, 텍스트, 타임스탬프)
- - 실시간으로 텍스트 변환 요청 (UFR-STT-020 연동)
- - **음성 파일은 저장되지 않고 스트리밍만 처리됨**
- - **화자 식별 기능 없음** (단순 텍스트 변환만)
+**출력/결과:**
+- 추출된 Todo 목록:
+ - 제목, 담당자, 마감일, 우선순위
+- Todo 데이터 Meeting 서비스로 전달
+- 회의 종료 화면 및 회의록 수정 화면에 표시
- [성능 요구사항]
- - 음성 인식 지연 시간: 1초 이내
- - 변환 정확도: 85% 이상
+**예외처리:**
+- Todo 추출 실패: 빈 Todo 목록 생성
+- 담당자 식별 실패: 회의록 생성자로 설정
+- 마감일 산정 실패: 오늘 + 7일로 설정
- [비고]
- - STT는 기본 기능으로 경쟁사 대부분이 제공하는 기능임
- - 차별화 포인트가 아닌 필수 기능
-
-- M/21
+**관련 유저스토리:**
+- UFR-AI-010: 회의록자동작성
+- UFR-TODO-010: Todo할당
+- UFR-MEET-040: 회의종료
---
-UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
-- 시나리오: 음성-텍스트 변환
- 발언이 인식된 상황에서 | AI 음성인식 엔진에 텍스트 변환을 요청하면 | 음성이 텍스트로 변환되고 정확도와 함께 반환된다.
+### UFR-AI-030: [실시간AI제안] 회의 참석자로서 | 나는, 회의 중 놓치는 내용을 최소화하기 위해 | AI가 실시간으로 주요 내용을 분석하여 제안하고 싶다.
- [텍스트 변환 처리]
- - 인식된 발언 데이터 전달
- - 언어 설정 (한국어, 영어 등)
- - AI 음성인식 엔진 처리
- - 문장 부호 자동 추가
- - 숫자/날짜 형식 정규화
+**수행절차:**
+1. 회의 진행 중 STT 텍스트 실시간 수신
+2. AI가 발언 내용 분석 (핵심 내용 감지)
+3. 주요 내용 감지 시 AI 제안 카드 생성:
+ - 제안 제목
+ - 제안 내용 (1-2문장)
+ - 제안 시각 (타임스탬프)
+4. "AI 제안" 탭에 카드 표시
+5. 사용자가 "메모에 추가" 버튼 클릭 시:
+ - 제안 내용을 회의 메모에 추가
+ - "추가되었습니다" 토스트 메시지
+ - 카드에서 제거 또는 "추가됨" 표시
- [처리 결과]
- - 텍스트가 변환됨 (텍스트 ID)
- - 변환된 내용 (원문 텍스트)
- - 정확도 점수 (0-100%)
- - AI 회의록 자동 작성 요청 (UFR-AI-010 연동)
+**입력:**
+- STT 변환 텍스트 (실시간 스트리밍)
+- 현재 안건 컨텍스트
+- 템플릿 정보
- [정확도 낮은 경우]
- - 정확도 60% 미만 시 경고 표시
- - 수동 수정 인터페이스 제공
+**출력/결과:**
+- AI 제안 카드 (실시간):
+ - 제목, 내용, 타임스탬프, "메모에 추가" 버튼
+- 메모 추가 성공: 회의 메모에 내용 추가, 토스트 메시지
+- 모든 참석자에게 실시간 동기화
- [비고]
- - STT는 기본 기능으로 차별화 포인트가 아님
+**예외처리:**
+- AI 분석 실패: 제안 생성 중단, 로그 기록
+- 네트워크 오류: 로컬 캐시에 제안 저장 후 재전송
+- 메모 추가 실패: "메모 추가 중 오류가 발생했습니다" 에러 메시지
-- M/13
+**관련 유저스토리:**
+- UFR-STT-020: 텍스트변환
+- UFR-MEET-030: 회의시작
+- UFR-COLLAB-010: 회의록수정동기화
---
-4. AI 서비스 (AI 기반 회의록 자동화, Todo 추출, 지능형 검색 - RAG 통합)
-1) AI 회의록 작성
-UFR-AI-010: [회의록자동작성] 회의 참석자로서 | 나는, 회의록 작성 부담을 줄이기 위해 | AI가 발언 내용을 실시간으로 정리하고 회의 종료 시 전체 안건을 요약하기를 원한다.
+### UFR-AI-035: [섹션AI요약] 회의 참석자로서 | 나는, 작성한 섹션 내용을 쉽게 요약하기 위해 | 버튼 클릭으로 AI가 섹션 내용을 요약해주기를 원한다.
-- 시나리오 1: 실시간 AI 주요 메모 작성 (회의 진행 중)
- 텍스트가 변환된 상황에서 | LLM에 실시간 회의록 작성을 요청하면 | AI가 주요 메모 항목을 실시간으로 추천한다.
+**수행절차:**
+1. 회의록 수정 화면(11-회의록수정.html)에서 안건 상세 요약 편집
+2. "재생성" 버튼 클릭
+3. AI가 해당 안건의 전체 내용 (메모, STT 텍스트) 분석
+4. 2-3문장 요약 생성 (2-5초 처리)
+5. 기존 상세 요약 대체
+6. "재생성되었습니다" 토스트 메시지 표시
- [실시간 AI 처리 과정]
- - 변환된 텍스트와 회의 맥락(제목, 참석자) 분석
- - 회의 내용 이해
- - 중요 키워드 추출
- - 주요 발언 식별
- - 주요 메모 항목 추천
- - 구어체 → 문어체 변환
- - 불필요한 표현 제거
- - 문법 교정
+**입력:**
+- 안건 제목
+- 안건 관련 메모 및 STT 텍스트
+- 재생성 버튼 클릭 이벤트
- [실시간 처리 결과]
- - AI 주요 메모 항목 추천 (실시간)
- - 회의 참석자가 필요한 항목만 선택하여 저장
- - 참석자에게 실시간 동기화 (UFR-COLLAB-010 연동)
+**출력/결과:**
+- 로딩 상태: "재생성 중..." 표시
+- 재생성 완료: 새로운 AI 상세 요약 (2-3문장)
+- 토스트 메시지: "재생성되었습니다"
+- 자동 저장 트리거
- [Policy/Rule]
- - 텍스트 변환되면 자동으로 주요 메모 항목 추천
- - 실시간 업데이트 (3-5초 간격)
- - 회의 진행 중에는 주요 메모 항목만 표시하여 회의 집중도 향상
+**예외처리:**
+- AI 재생성 실패: "재생성 중 오류가 발생했습니다" 에러 메시지
+- 네트워크 오류: 재시도 로직 또는 기존 요약 유지
+- 타임아웃: "재생성 시간이 초과되었습니다. 다시 시도해주세요" 안내
-- 시나리오 2: 회의 종료 시 전체 안건 요약
- 회의가 종료된 상황에서 | LLM에 전체 회의록 요약을 요청하면 | AI가 회의 전체 내용을 주요 안건으로 요약 정리한다.
-
- [회의 종료 시 AI 처리 과정]
- - STT로 텍스트화된 회의 전체 내용 분석
- - 회의 예약 시 선택한 템플릿 정보 반영
- - 회의 진행 시 저장한 주요 메모 항목 반영
- - 회의 내용을 주요 안건으로 분류 및 요약
- - 안건별 주제 식별
- - 안건별 핵심 내용 정리
- - 발언자별 의견 정리
- - 결정 사항 및 보류 사항 구분
- - 안건별 구조화
- - 편집 불가능한 AI 한줄 요약 생성
- - 편집 가능한 상세 요약 정리 생성
-
- [회의 종료 시 처리 결과]
- - 주요 안건별 회의록 초안 생성
- - 각 안건별 구조화된 내용
- - AI 한줄 요약 (편집 불가)
- - 상세 요약 정리 (편집 가능)
- - 논의 주제
- - 발언자별 의견
- - 결정 사항
- - 보류 사항
- - 회의록 수정 화면에서 안건별 편집 및 검증 가능
-
-- M/34
+**관련 유저스토리:**
+- UFR-MEET-055: 회의록수정
+- UFR-AI-010: 회의록자동작성
---
-2) Todo 자동 추출
-UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
-- 시나리오: AI Todo 자동 추출
- 회의록 수정 화면에서 | 각 안건의 내용을 분석하여 Todo 자동 추출을 요청하면 | 액션 아이템이 식별되고 기본값이 자동으로 설정된다.
+### UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 편집 불가능한 한줄 요약을 확인하고 싶다.
- [AI 분석 과정]
- - 안건별 상세 내용 분석
- - 액션 아이템 식별
- - "~하기로 함", "~까지 완료", "~담당" 등 키워드 탐지
- - 명령형 문장 분석
- - 마감일 언급 추출
- - 담당자 자동 식별
- - 발언 내용 기반 ("제가 하겠습니다", "~님이 담당")
- - 직책/역할 기반 매칭
- - 과거 회의록 패턴 학습
+**수행절차:**
+1. 회의 종료 시 AI가 각 안건별로 한줄 요약 생성
+2. 30자 이내로 핵심 내용 압축
+3. 회의 종료 화면 및 회의록 수정 화면에 표시
+4. 읽기 전용 필드로 표시 (편집 불가)
+5. 회의록 상세 조회 시 안건별로 한줄 요약 표시
- [처리 결과]
- - Todo가 자동 추출됨
- - 추출된 항목 수
- - 각 Todo별 정보
- - Todo 내용
- - 담당자 (기본값: 회의록 생성자)
- - 마감일 (기본값: 다음 회의 날짜 또는 오늘)
- - 우선순위 (기본값: 보통)
- - 관련 안건 링크
- - Todo 서비스에 자동 전달 (UFR-TODO-010 연동)
- - 회의록 수정 화면에서 Todo 편집 가능
+**입력:**
+- 안건의 AI 상세 요약
+- 안건 관련 메모 및 STT 텍스트
- [기본값 설정 규칙]
- - 담당자
- - AI가 식별한 담당자가 있으면 해당 담당자
- - 식별 실패 시: 회의록 생성자
- - 마감일
- - 회의록에 마감일이 언급된 경우: 해당 날짜
- - 언급되지 않았지만 다음 회의 날짜가 있는 경우: 다음 회의 날짜
- - 둘 다 없는 경우: 오늘 날짜
- - 우선순위
- - 회의록에 우선순위가 언급된 경우: 해당 우선순위
- - 언급되지 않은 경우: 보통
+**출력/결과:**
+- AI 한줄 요약 (30자 이내, 읽기 전용)
+- 회의 종료 화면, 회의록 수정 화면, 회의록 상세 조회 화면에 표시
- [Todo 독립성]
- - Todo는 회의록 확정 상태와 무관하게 완료 처리 가능
- - 회의록이 작성중 상태여도 Todo 진행 가능
- - Todo 완료 상태는 회의록에 실시간 반영
+**예외처리:**
+- 한줄 요약 생성 실패: 안건 제목 사용 또는 "요약 없음" 표시
+- 30자 초과: 자동 트림 처리
-- M/21
+**관련 유저스토리:**
+- UFR-AI-010: 회의록자동작성
+- UFR-MEET-040: 회의종료
+- UFR-MEET-055: 회의록수정
+- UFR-MEET-047: 회의록상세조회
---
-3) 섹션 AI 요약 재생성 (신규, 차별화 포인트)
-UFR-AI-035: [섹션AI요약] 회의 참석자로서 | 나는, 작성한 섹션 내용을 쉽게 요약하기 위해 | 버튼 클릭으로 AI가 섹션 내용을 요약해주기를 원한다.
-- 시나리오: 섹션 AI 요약 재생성
- 회의록 작성/수정 중에 | 특정 섹션의 "AI 재생성" 버튼을 클릭하면 | AI가 해당 섹션 내용을 분석하여 2-3문장의 요약을 자동 생성한다.
+### UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결해주기를 원한다.
- [사용 시점]
- - 회의록 작성 중 각 섹션 완료 시
- - 회의록 수정 중 섹션 내용 변경 후
- - 기존 요약이 부적절하다고 판단될 때
+**수행절차:**
+1. 회의 종료 시 또는 회의록 작성 중 AI가 현재 회의 내용 분석
+2. 벡터 유사도 검색을 통해 관련 회의록 탐색
+ - 같은 폴더 내 회의록 우선
+ - 키워드, 참석자, 안건 유사도 분석
+3. 관련도가 높은 회의록 자동 연결 (최대 5개)
+4. 관련도 배지 부여:
+ - 높음 (80% 이상)
+ - 중간 (60-80%)
+ - 낮음 (40-60%)
+5. 회의 종료 화면, 회의록 수정 화면, 회의록 상세 조회 화면에 표시
+6. 사용자가 수동으로 추가/제거 가능
- [AI 처리 과정]
- - 회의 맥락 조회 (선택적)
- - 회의 제목, 참석자, 안건 파악
- - 섹션 내용 파싱
- - 논의사항 추출
- - 결정사항 추출
- - 보류사항 추출
- - 핵심 내용 식별
- - 중요도 평가
- - 키워드 추출
- - 요약 생성
- - 2-3문장으로 압축
- - 논의→결정 흐름 반영
- - 명확한 문장 구성
+**입력:**
+- 현재 회의 내용 (제목, 안건, 키워드, 참석자)
+- 과거 회의록 데이터 (벡터 DB)
- [처리 결과]
- - 생성된 AI 요약 (2-3문장, 150자 이내)
- - 생성 시간 기록
- - 사용자는 생성된 요약을 다시 수정 가능
+**출력/결과:**
+- 관련 회의록 목록 (최대 5개):
+ - 회의록 제목
+ - 날짜
+ - 관련도 배지 (높음/중간/낮음)
+ - 회의록 링크
+- 회의록 수정 화면: "추가" 버튼, "X" 제거 버튼
+- 회의록 상세 조회 화면: 관련회의록 섹션 표시
- [Policy/Rule]
- - 섹션 내용이 변경되면 요약도 재생성 가능
- - 이전 요약은 이력으로 보관
- - 처리 시간 2-5초 (빠른 응답)
- - 프롬프트 입력 불필요 (자동 처리)
+**예외처리:**
+- 관련 회의록 없음: 빈 목록 표시
+- 벡터 검색 실패: 최근 회의록 기준 정렬로 대체
+- 네트워크 오류: 로컬 캐시 사용 또는 빈 목록
-- M/21
+**관련 유저스토리:**
+- UFR-MEET-040: 회의종료
+- UFR-MEET-055: 회의록수정
+- UFR-MEET-047: 회의록상세조회
---
-UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 편집 불가능한 한줄 요약을 확인하고 싶다.
-- 시나리오: AI 한줄 요약 제공
- 회의 종료 시 | AI가 안건별 전체 내용을 요약하면 | 각 안건마다 편집 불가능한 한줄 요약과 편집 가능한 상세 요약이 함께 생성된다.
+## STT 서비스
- [AI 처리 과정]
- - 안건별 전체 내용 분석
- - 핵심 메시지 추출
- - 가장 중요한 논의 사항
- - 최종 결정 또는 결론
- - 핵심 키워드
- - 한 문장 요약 생성
- - 30자 이내 간결한 표현
- - 논의→결정 핵심 반영
- - 명확하고 이해하기 쉬운 문장
+### UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
- [처리 결과]
- - AI 한줄 요약 (편집 불가)
- - 각 안건의 최상단에 표시
- - 읽기 전용으로 고정
- - 안건의 핵심을 한눈에 파악 가능
- - 상세 요약 정리 (편집 가능)
- - AI 한줄 요약 하단에 표시
- - 사용자가 자유롭게 편집 가능
- - 논의 주제, 발언자별 의견, 결정 사항 포함
+**수행절차:**
+1. 회의 시작 시 마이크 권한 요청
+2. 사용자 승인 후 녹음 시작
+3. 음성 스트림 캡처 (WebRTC)
+4. 실시간으로 STT 서비스에 음성 스트림 전송
+5. 녹음 상태 시각화:
+ - 녹음 중 표시 (빨간 점 애니메이션)
+ - 웨이브폼 애니메이션
+ - 경과 시간 표시
+6. 일시정지/재개 기능 제공
+7. 회의 종료 시 녹음 중지
- [Policy/Rule]
- - AI 한줄 요약은 회의 종료 시 1회 생성
- - 생성 후에는 편집 불가 (원본 보존)
- - 상세 요약 정리는 사용자가 자유롭게 수정 가능
- - 회의록 수정 화면(11-회의록수정)에서 표시
+**입력:**
+- 마이크 음성 입력
+- 녹음 시작/일시정지/재개/중지 이벤트
-- M/21
+**출력/결과:**
+- 녹음 상태 표시:
+ - 녹음 중: 빨간 점 + 웨이브폼 애니메이션 + 경과 시간
+ - 일시정지: 일시정지 아이콘 + 경과 시간
+- 음성 스트림 STT 서비스로 실시간 전송
+- 녹음 파일 저장 (서버)
+
+**예외처리:**
+- 마이크 권한 거부: "마이크 권한이 필요합니다" 에러 메시지, 회의 시작 불가
+- 마이크 장치 없음: "마이크 장치를 찾을 수 없습니다" 에러 메시지
+- 녹음 중 오류: "녹음 중 오류가 발생했습니다" 에러 메시지, 재시도 옵션
+- 네트워크 끊김: 로컬 버퍼에 저장 후 재연결 시 전송
+
+**관련 유저스토리:**
+- UFR-MEET-030: 회의시작
+- UFR-STT-020: 텍스트변환
---
-4) 관련 회의록 자동 연결 (신규, 차별화 포인트)
-UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결해주기를 원한다.
-- 시나리오: 관련 회의록 자동 연결
- 회의록이 작성되는 상황에서 | AI가 회의 주제와 내용을 분석하면 | 같은 폴더 내 유사한 주제의 과거 회의록을 찾아 자동으로 연결한다.
+### UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
- [AI 분석 과정]
- - 현재 회의록 주제 및 키워드 추출
- - 벡터 유사도 검색
- - 과거 회의록 DB에서 검색
- - 주제 유사도 계산
- - 관련도 점수 계산 (0-100%)
- - 같은 폴더 내 상위 5개 회의록 선정
+**수행절차:**
+1. STT 서비스가 음성 스트림 실시간 수신
+2. 음성을 텍스트로 변환 (STT 엔진)
+3. 변환된 텍스트를 타임스탬프와 함께 저장
+4. AI 서비스에 텍스트 전달 (실시간 분석용)
+5. 화자 분리 (가능 시)
+6. 텍스트 누적 저장 (전체 회의 내용)
- [연결 기준]
- - 주제 유사도 70% 이상
- - 동일 참석자가 50% 이상
- - 키워드 3개 이상 일치
- - 시간적 연관성 (후속 회의, 분기별 회의 등)
+**입력:**
+- 음성 스트림 (실시간)
+- 회의 ID, 화자 정보 (옵션)
- [처리 결과]
- - 관련 회의록 목록 생성
- - 각 회의록별 정보
- - 제목
- - 날짜
- - 참석자
- - 관련도 점수
- - 연관 키워드
- - 회의록 상단에 "관련 회의록" 섹션 자동 추가
- - 클릭 시 해당 회의록으로 이동
+**출력/결과:**
+- 변환된 텍스트 (실시간):
+ - 텍스트 내용
+ - 타임스탬프
+ - 화자 정보 (옵션)
+- AI 서비스로 텍스트 전달
+- 전체 회의 텍스트 누적 저장
- [Policy/Rule]
- - 관련도 70% 이상만 자동 연결
- - 최대 5개까지 표시
+**예외처리:**
+- 변환 실패: 해당 구간 건너뛰기, 로그 기록
+- 네트워크 오류: 로컬 버퍼에 저장 후 재전송
+- 인식 불가 음성: "[인식 불가]" 표시
-- S/13
+**관련 유저스토리:**
+- UFR-STT-010: 음성녹음인식
+- UFR-AI-010: 회의록자동작성
+- UFR-AI-030: 실시간AI제안
---
-5. AI 서비스 (지능형 검색 - RAG 기능, AI Service에 통합됨)
-1) 맥락 기반 용어 설명 (강화)
-UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
-- 시나리오: 맥락 기반 전문용어 자동 감지
- 회의록이 작성되는 상황에서 | 시스템이 회의록 텍스트를 분석하면 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명이 준비된다.
+## RAG 서비스 (AI 서비스에 통합)
- **변경사항 (논리 아키텍처)**:
- - AI Service에 RAG 기능 통합
- - RAG와 AI 모두 LLM 기반 처리로 긴밀하게 연동
- - 동일한 벡터 임베딩 모델 및 LLM 공유 가능
- - 회의록 자동 작성 시 용어 설명이 병렬 처리되어 효율적
+### UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
- [전문용어 감지 처리]
- - 회의록 텍스트 실시간 분석
- - 용어 사전과 비교
- - 조직별 전문용어 DB
- - 산업별 표준 용어 DB
- - 신뢰도 계산 (0-100%)
- - 감지된 용어 위치 기록
+**수행절차:**
+1. 회의 진행 중 STT 텍스트에서 전문용어 자동 감지
+ - 사전 정의된 전문용어 사전 매칭
+ - 빈도 기반 주요 용어 추출
+2. 감지된 용어를 "용어사전" 탭에 자동 추가
+3. 용어 목록 표시 (알파벳/가나다 순 정렬)
+4. 검색 기능 제공 (용어 하이라이트)
+5. 용어 클릭 시 맥락 기반 설명 표시
- [처리 결과]
- - 전문용어가 감지됨
- - 감지된 용어 정보
- - 용어명
- - 감지 위치 (줄 번호, 문단)
- - 신뢰도 점수
- - 용어 하이라이트 표시
- - 맥락 기반 설명 자동 생성 (UFR-RAG-020 연동)
+**입력:**
+- STT 변환 텍스트 (실시간)
+- 전문용어 사전
+- 과거 회의록 및 사내 문서 (RAG)
- [Policy/Rule]
- - 신뢰도 70% 이상만 자동 감지
- - 중복 용어는 첫 번째만 하이라이트
+**출력/결과:**
+- 용어사전 탭:
+ - 자동 추출된 용어 목록
+ - 검색 입력 필드
+ - 용어 하이라이트
+- 용어 클릭 시:
+ - 용어 설명 모달 또는 패널
+ - 맥락 기반 설명 (RAG-020 연동)
+ - 관련 회의록 링크
- [비고]
- - 단순 용어 설명이 아닌 맥락 기반 실용적 정보 제공이 차별화 포인트
+**예외처리:**
+- 용어 감지 실패: 빈 용어 목록 표시
+- 검색 결과 없음: "검색 결과가 없습니다" 안내
-- S/13
+**관련 유저스토리:**
+- UFR-STT-020: 텍스트변환
+- UFR-RAG-020: 맥락기반용어설명
+- UFR-MEET-030: 회의시작
---
-UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
-- 시나리오: 맥락 기반 용어 설명 자동 제공
- 전문용어가 감지된 상황에서 | RAG 시스템이 관련 문서를 검색하면 | 과거 회의록 및 업무 이력에서 맥락에 맞는 실용적인 설명이 생성되어 제공된다.
+### UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
- [RAG 검색 수행]
- - 벡터 유사도 검색
- - 과거 회의록 검색 (동일 용어 사용 사례)
- - 사내 문서 저장소 검색 (위키, 매뉴얼, 보고서)
- - 업무 이력 검색 (프로젝트 문서, 이메일 등)
- - 관련 문서 추출 (관련도 점수순)
- - 최대 5개 문서 선택
+**수행절차:**
+1. 사용자가 용어사전 탭에서 용어 클릭
+2. RAG 시스템이 다음 정보 검색:
+ - 과거 회의록에서 해당 용어 사용 맥락
+ - 사내 문서에서 용어 정의 및 설명
+ - 업무 이력에서 관련 프로젝트 정보
+3. LLM이 검색된 정보를 기반으로 실용적인 설명 생성:
+ - 용어 정의
+ - 현재 회의 맥락에서의 의미
+ - 관련 회의록 링크
+ - 추가 참고 자료
+4. 설명 모달 또는 패널에 표시
- [맥락 기반 설명 생성]
- - 검색된 문서 내용 분석
- - 용어 정의 추출
- - 실제 사용 사례 추출
- - 현재 회의 맥락에 맞는 설명 생성
- - 간단한 정의 (1-2문장)
- - 이 회의에서의 의미 (맥락 기반)
- - 관련 프로젝트/이슈 연결
- - 과거 논의 요약 (언제, 누가, 어떻게 사용했는지)
- - 참조 출처 링크
+**입력:**
+- 선택된 용어
+- 현재 회의 컨텍스트
+- 과거 회의록 (벡터 DB)
+- 사내 문서 (벡터 DB)
- [처리 결과]
- - 맥락 기반 용어 설명이 생성됨 (설명 ID)
- - 설명 내용
- - 간단한 정의
- - 맥락 기반 상세 설명
- - 실제 사용 사례
- - 관련 프로젝트/이슈
- - 과거 회의록 링크 (최대 3개)
- - 사내 문서 링크
- - 툴팁 또는 사이드 패널로 표시
- - 설명 제공 시간 기록
+**출력/결과:**
+- 용어 설명 패널:
+ - 용어 정의 (간단 명료)
+ - 맥락 기반 설명 (현재 회의와 관련)
+ - 관련 회의록 링크 (최대 3개)
+ - 추가 참고 자료 링크
+- "관련 회의록 보기" 버튼: 회의록 상세 조회 화면으로 이동
- [설명을 찾지 못한 경우]
- - "관련 정보를 찾을 수 없습니다" 메시지 표시
- - 전문가(회의 참석자)에게 설명 요청 버튼 제공
- - 수동 입력된 설명은 용어 사전에 자동 저장
+**예외처리:**
+- 관련 정보 없음: "관련 정보를 찾을 수 없습니다" 안내, 기본 사전 정의 표시
+- RAG 검색 실패: 기본 용어 사전 정의로 대체
+- 네트워크 오류: 캐시된 설명 표시 또는 "설명을 불러올 수 없습니다" 안내
- [비고]
- - **차별화 포인트**: 단순 용어 설명이 아닌, 조직 내 실제 사용 맥락과 이력을 제공
- - 업무 지식이 없어도 실질적인 도움을 받을 수 있음
-
-- S/21
+**관련 유저스토리:**
+- UFR-RAG-010: 전문용어감지
+- UFR-AI-040: 관련회의록연결
+- UFR-MEET-030: 회의시작
---
-6. Meeting 서비스 (실시간 협업 - Meeting Service에 통합됨)
-1) 실시간 협업
-UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
-- 시나리오: 회의록 실시간 수정 및 동기화
- 회의록 초안이 작성된 상황에서 | 참석자가 회의록 내용을 수정하면 | 수정 사항이 버전 관리되고 웹소켓을 통해 모든 참석자에게 즉시 동기화된다.
+## COLLAB 서비스 (Meeting 서비스에 통합)
- **변경사항 (논리 아키텍처)**:
- - Meeting Service에 실시간 협업 기능 통합
- - WebSocket, 버전 관리, 충돌 해결이 Meeting Service 내부에서 처리됨
- - 서비스 간 통신 오버헤드 제거, 성능 향상
+### UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
- [회의록 수정 처리]
- - 수정 내용 검증
- - 수정 권한 확인
- - 수정 범위 제한 (잠긴 섹션은 수정 불가)
- - 수정 이력 저장
- - 수정자
- - 수정 시간
- - 수정 전/후 내용
- - 수정 위치
- - 버전 관리
- - 새 버전 번호 생성
- - 이전 버전 보관
+**수행절차:**
+1. 회의록 수정 화면 진입 시 WebSocket 연결
+2. 사용자가 안건 또는 필드 편집 시작
+3. 편집 중 상태를 다른 참석자에게 실시간 브로드캐스트:
+ - 편집 중인 안건 ID
+ - 편집자 이름 및 아바타
+ - 편집 시작 시각
+4. 다른 참석자 화면에 "편집 중" 표시:
+ - 안건 카드에 편집자 이름 및 아이콘 표시
+5. 편집 완료 시 변경 내용 저장 및 동기화
+6. 모든 참석자 화면 자동 업데이트
+7. 30초마다 자동 저장
- [실시간 동기화]
- - 웹소켓을 통해 수정 델타 전송
- - 전체 내용이 아닌 변경 부분만 전송 (효율성)
- - 모든 참석자 화면에 실시간 반영
- - 수정자 표시 (이름)
- - 수정 영역 하이라이트 (3초간)
+**입력:**
+- 편집 시작/종료 이벤트
+- 변경된 필드 및 값
+- 편집자 정보
- [처리 결과]
- - 참석자가 회의록을 수정함 (수정 ID)
- - 수정 사항이 동기화됨
- - 동기화 시간
- - 영향받은 참석자 목록
- - 수정 완료될 때마다 수정된 내용이 메일로 알림이 발송된다. (알림 여부 설정 가능)
+**출력/결과:**
+- 편집 중 표시:
+ - 안건 카드 상단: "{이름}님이 편집 중입니다" + 아바타
+ - 편집 중인 필드 하이라이트
+- 변경 내용 실시간 동기화:
+ - WebSocket을 통한 브로드캐스트
+ - 모든 참석자 화면 자동 업데이트
+- 저장 상태 표시: "저장 중...", "저장됨"
- [Policy/Rule]
- - 회의록 수정 시 웹소켓을 통해 모든 참석자에게 즉시 동기화
+**예외처리:**
+- WebSocket 연결 끊김: 재연결 시도, "연결이 끊어졌습니다" 안내
+- 동기화 실패: "동기화 중 오류가 발생했습니다" 에러 메시지, 재시도 옵션
+- 네트워크 지연: 로컬 변경 우선 적용, 충돌 시 UFR-COLLAB-020 처리
-- M/34
+**관련 유저스토리:**
+- UFR-MEET-055: 회의록수정
+- UFR-COLLAB-020: 충돌해결
---
-UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
-- 시나리오: 안건별 동시 편집 충돌 방지
- 여러 참석자가 회의록을 동시에 수정하는 상황에서 | 각자 다른 안건을 편집하면 | 충돌 없이 실시간으로 저장되고 동기화된다.
+### UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
- [안건 기반 충돌 방지]
- - 안건 단위 잠금 메커니즘
- - 각 안건은 독립적인 편집 단위
- - 참석자 A가 안건 1 편집 시, 다른 참석자는 안건 2, 3 등 편집 가능
- - 동일 안건 동시 편집 시에만 충돌 처리
- - 편집 중 안건 표시
- - 다른 참석자가 현재 편집 중인 안건 실시간 표시
- - 편집자 이름과 프로필 아이콘 표시
- - "○○○님이 편집 중" 메시지
+**수행절차:**
- [동일 안건 동시 편집 시 충돌 감지]
- - 동일 안건 동시 수정 탐지
- - 필드 단위 비교 (제목, 상세 내용, Todo 등)
- - 버전 기반 충돌 확인
- - 충돌 정보 생성
- - 충돌 안건
- - 관련 수정자 2명
- - 각자의 수정 내용
+**안건 기반 충돌 방지 메커니즘:**
+1. **다른 안건 동시 편집**: 충돌 없음
+ - 참석자 A가 안건 1 편집
+ - 참석자 B가 안건 2 편집
+ - 양쪽 모두 정상 저장 및 동기화
- [충돌 해결 방식]
- - 필드별 자동 병합 (기본)
- - 다른 필드 편집 시: 자동 병합 (충돌 없음)
- - 예: A가 제목 수정, B가 상세 내용 수정 → 둘 다 반영
- - Last Write Wins (동일 필드 수정 시)
- - 동일 필드 동시 수정 시: 가장 최근 수정이 우선
- - 이전 수정은 버전 이력에 보관
- - 덮어쓰인 사용자에게 알림
- - 수동 병합 (선택)
- - 충돌 내용 비교 UI 표시
- - 사용자가 최종 내용 선택
- - A 선택 / B 선택 / 직접 작성
+2. **동일 안건 내 다른 필드 편집**: 자동 병합
+ - 참석자 A가 안건 1의 "상세 요약" 편집
+ - 참석자 B가 안건 1의 "관련회의록" 편집
+ - 양쪽 변경 사항 자동 병합
- [처리 결과]
- - 안건별 독립 편집으로 충돌 최소화
- - 충돌 발생 시:
- - 충돌이 감지됨 (충돌 ID)
- - 충돌 안건 및 필드
- - 관련 수정자
- - 충돌이 해결됨
- - 해결 방법 (자동 병합 / Last Write Wins / 수동 병합)
- - 최종 내용
- - 해결된 내용 실시간 동기화
+3. **동일 필드 동시 수정**: Last Write Wins
+ - 참석자 A와 B가 동시에 안건 1의 "상세 요약" 편집
+ - 마지막에 저장된 변경 사항이 적용
+ - 덮어쓰기 경고: "다른 사용자가 이미 수정했습니다. 최신 내용을 확인하세요"
- [Policy/Rule]
- - 안건 단위 독립 편집으로 충돌 최소화
- - 동일 안건 내 다른 필드 수정 시 자동 병합
- - 동일 필드 동시 수정 시 Last Write Wins 적용
+4. **편집 중 안건 표시**:
+ - 다른 사용자가 편집 중인 안건: 편집자 이름 및 아이콘 실시간 표시
+ - 편집 시작 시 해당 안건에 "편집 중" 표시 브로드캐스트
-- M/21
+**입력:**
+- 동시 편집 이벤트
+- 안건 ID, 필드 ID
+- 편집자 정보
+- 변경 내용 및 타임스탬프
+
+**출력/결과:**
+- 충돌 방지:
+ - 안건 단위 독립 편집
+ - 다른 필드 자동 병합
+- 충돌 발생 시:
+ - 경고 모달: "다른 사용자가 이미 수정했습니다"
+ - 선택 옵션: 최신 내용 확인 / 내 변경 사항 유지
+- 편집 중 표시: "{이름}님이 이 안건을 편집 중입니다" + 아바타
+
+**예외처리:**
+- 동일 필드 충돌: Last Write Wins, 경고 표시
+- 병합 실패: "병합 중 오류가 발생했습니다" 에러 메시지, 수동 병합 요청
+- 네트워크 지연으로 충돌 감지 실패: 서버 측에서 최종 검증 및 조정
+
+**관련 유저스토리:**
+- UFR-COLLAB-010: 회의록수정동기화
+- UFR-MEET-055: 회의록수정
---
-UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
-- 시나리오: 안건별 회의록 검증 완료
- 회의록 수정 화면에서 안건 내용을 확인한 상황에서 | 참석자가 안건별 검증 완료 버튼을 클릭하면 | 검증 상태가 업데이트되고 다른 참석자에게 동기화된다.
+### UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
- [검증 처리]
- - 검증자 정보 기록
- - 검증 시간 기록
- - 검증 대상 안건 기록
- - 안건별 검증 상태 업데이트
- - 미검증 → 검증 완료
- - 전체 검증률 계산
- - 검증률 = 검증 완료된 안건 수 / 전체 안건 수
- - 회의록 목록에서 검증률 표시 (예: 70%)
+**수행절차:**
+1. 회의록 수정 화면에서 각 안건 검토
+2. 안건 내용 확인 및 수정 (필요 시)
+3. "검증 완료" 토글 클릭
+4. 토글 활성화 → 안건 잠금:
+ - 잠금 아이콘 표시
+ - 해당 안건 편집 불가 (읽기 전용)
+ - 회의 생성자만 잠금 해제 가능
+5. 검증완료율 업데이트:
+ - 검증 완료된 안건 수 / 전체 안건 수
+6. 모든 안건 검증 완료 시:
+ - 검증완료율 100%
+ - "최종 확정" 버튼 활성화
- [안건 잠금 기능]
- - 회의 생성자만 잠금/해제 가능
- - 안건 검증 완료 시 잠금 가능 (선택)
- - 잠긴 안건은 회의 생성자만 잠금 해제 후 수정 가능
- - 참석자는 검증완료된 안건을 읽기 전용으로만 확인 가능
+**검증 완료 섹션 편집 정책:**
+- **참석자**: 검증 완료된 섹션 편집 불가 (읽기 전용)
+- **회의 생성자**: 잠금 해제 후 편집 가능
+ - 잠금 아이콘 클릭
+ - 확인 모달: "잠금 해제하시겠습니까?"
+ - 승인 시 토글 비활성화 → 편집 가능
- [처리 결과]
- - 안건 검증이 완료됨
- - 검증자 정보
- - 검증 상태 (검증 완료)
- - 완료 시간
- - 전체 검증률 업데이트
- - 검증 완료 상태 실시간 동기화
- - 검증 배지 표시 (체크 아이콘)
- - 모든 안건 검증 완료 시 전체 메일로 알림 발송
+**입력:**
+- 검증 완료 토글 클릭
+- 잠금 해제 버튼 클릭 (회의 생성자만)
- [통합 화면]
- - 11-회의록수정 화면에서 안건별 검증 처리
- - 별도의 06-검증완료 화면 불필요
- - 안건별 편집 영역에 검증 완료 버튼 제공
+**출력/결과:**
+- 검증 완료: 잠금 아이콘 표시, 안건 읽기 전용
+- 검증완료율: "검증 완료 {n}개 / 전체 {m}개 ({percentage}%)"
+- 100% 완료 시: "최종 확정" 버튼 활성화
+- 잠금 해제 (생성자): 토글 비활성화, 편집 가능
- [Policy/Rule]
- - 안건별 검증 완료 시 해당 안건 잠금 가능
- - 모든 안건 검증 완료 시 회의록 최종 확정 가능 (UFR-MEET-050)
+**예외처리:**
+- 참석자가 잠금 해제 시도: "회의 생성자만 잠금 해제할 수 있습니다" 안내
+- 네트워크 오류: "검증 상태 변경 중 오류가 발생했습니다" 에러 메시지
-- M/8
+**관련 유저스토리:**
+- UFR-MEET-055: 회의록수정
+- UFR-MEET-050: 최종확정
---
-7. Meeting 서비스 (Todo 관리 - Meeting Service에 통합됨, 차별화 포인트)
-1) 실시간 Todo 연결 (강화)
-UFR-TODO-010: [Todo할당] Todo 시스템으로서 | 나는, AI가 추출한 Todo를 담당자에게 전달하기 위해 | Todo를 실시간으로 할당하고 회의록과 연결하고 싶다.
-- 시나리오: Todo 실시간 할당 및 회의록 연결
- AI가 Todo를 추출한 상황에서 | 시스템이 Todo를 등록하고 담당자를 지정하면 | Todo가 실시간으로 할당되고 회의록의 해당 위치와 연결되며 담당자에게 즉시 알림이 발송된다.
+## TODO 서비스 (Meeting 서비스에 통합)
- **변경사항 (논리 아키텍처)**:
- - Meeting Service에 Todo 관리 기능 통합
- - Todo와 회의록이 동일 트랜잭션 내에서 처리 가능
- - 회의록-Todo 양방향 연결이 내부 메서드 호출로 처리됨 (10배 빠름)
+### UFR-TODO-010: [Todo할당] Todo 시스템으로서 | 나는, AI가 추출한 Todo를 담당자에게 전달하기 위해 | Todo를 실시간으로 할당하고 회의록과 연결하고 싶다.
- [Todo 등록]
- - Todo 정보 저장
- - Todo ID 생성
- - Todo 내용
- - 담당자 (AI 자동 식별 또는 수동 지정)
- - 마감일 (언급된 경우 자동 설정, 없으면 수동 설정)
- - 우선순위 (높음/보통/낮음)
- - 관련 회의록 링크 (섹션 위치 포함)
+**수행절차:**
+1. AI 서비스에서 Todo 추출 완료 (UFR-AI-020)
+2. Todo 데이터 수신:
+ - 제목, 담당자 ID, 마감일, 우선순위
+ - 회의 ID, 안건 ID
+3. Todo 데이터베이스에 저장
+4. 담당자에게 알림 대상 생성:
+ - 알림 유형: "Todo 할당"
+ - 알림 내용: "{회의 제목}에서 Todo가 할당되었습니다: {Todo 제목}"
+ - 수신자: 담당자
+ - 발송 예정 시각: 즉시
+5. Notification 서비스가 주기적으로 폴링하여 이메일 발송
+6. 회의록과 Todo 양방향 연결:
+ - 회의록 → Todo 링크
+ - Todo → 회의록 링크
+7. 담당자의 Todo 목록 및 대시보드에 표시
- [회의록 실시간 연결]
- - 회의록 해당 섹션에 Todo 뱃지 표시
- - Todo 클릭 시 Todo 상세 정보 표시
- - 양방향 연결 (Todo → 회의록, 회의록 → Todo)
+**입력:**
+- AI가 추출한 Todo 데이터:
+ - 제목, 담당자, 마감일, 우선순위
+- 회의 정보: 회의 ID, 안건 ID, 회의 제목
- [알림 발송]
- - 담당자에게 즉시 알림
- - 이메일
- - 알림 내용
- - Todo 내용
- - 마감일
- - 회의록 링크 (해당 섹션으로 바로 이동)
+**출력/결과:**
+- Todo 저장 완료
+- 알림 대상 생성 (Notification 테이블에 레코드 추가)
+- 회의록과 Todo 양방향 링크 생성
+- 담당자 Todo 목록 업데이트
+- 회의록 화면에 Todo 표시
- [캘린더 연동]
- - 마감일이 있는 경우 캘린더에 자동 등록
- - 마감일 3일 전 리마인더 일정 생성
+**예외처리:**
+- 담당자 정보 없음: 회의록 생성자로 할당
+- Todo 저장 실패: "Todo 저장 중 오류가 발생했습니다" 로그 기록, 재시도
+- 알림 대상 생성 실패: 로그 기록, Todo는 정상 저장
- [처리 결과]
- - Todo가 할당됨 (Todo ID)
- - 담당자 정보
- - 마감일
- - 할당 시간
- - 회의록 연결 정보 (섹션 ID, 타임스탬프)
- - 담당자에게 알림이 발송됨
- - 캘린더 등록 완료
-
- [Policy/Rule]
- - Todo 할당 시 담당자에게 즉시 알림 발송
- - 회의록과 실시간 양방향 연결
-
- [비고]
- - **차별화 포인트**: Todo와 회의록의 강력한 연결, 원문 맥락 추적 가능
-
-- M/13
+**관련 유저스토리:**
+- UFR-AI-020: Todo자동추출
+- UFR-TODO-040: Todo관리
+- UFR-NOTI-010: 알림발송 (신규)
---
-UFR-TODO-030: [Todo완료처리] Todo 담당자로서 | 나는, 완료된 Todo를 처리하고 회의록에 반영하기 위해 | Todo를 완료하고 회의록에 자동 반영하고 싶다.
-- 시나리오: Todo 완료 처리 및 회의록 자동 반영
- Todo 작업이 완료된 상황에서 | 담당자가 완료 버튼을 클릭하면 | Todo가 완료 상태로 변경되고 연결된 회의록에 완료 상태가 실시간으로 반영된다.
+### UFR-TODO-030: [Todo완료처리] Todo 담당자로서 | 나는, 완료된 Todo를 처리하고 회의록에 반영하기 위해 | Todo를 완료하고 회의록에 자동 반영하고 싶다.
- [완료 처리]
- - 완료 시간 자동 기록
- - 완료자 정보 저장
- - 완료 상태로 변경
- - 완료 여부 확인 다이얼로그 표시
+**수행절차:**
+1. Todo 관리 화면 또는 회의록 상세 조회 화면에서 Todo 체크박스 클릭
+2. 완료 확인 모달: "완료 처리하시겠습니까?"
+3. 승인 시 Todo 상태 "완료"로 변경
+4. 완료 시각 기록
+5. 회의록에 자동 반영:
+ - 회의록 상세 조회 시 완료된 Todo 표시
+ - Todo 진행상황 진행률 업데이트
+6. 알림 대상 생성 (옵션):
+ - 회의 생성자에게 Todo 완료 알림
+ - 알림 내용: "{담당자}님이 Todo를 완료했습니다: {Todo 제목}"
+7. "Todo가 완료되었습니다" 토스트 메시지
- [회의록 실시간 반영]
- - 관련 회의록의 Todo 섹션 자동 업데이트
- - 완료 표시 (체크 아이콘)
- - 완료 시간 기록
- - 완료자 정보 표시
+**미완료로 되돌리기:**
+1. 완료된 Todo 체크박스 클릭
+2. 확인 모달: "미완료로 변경하시겠습니까?"
+3. 승인 시 Todo 상태 "미완료"로 변경
+4. 회의록 진행률 자동 업데이트
- [알림 발송]
- - 완료 알림
- - 모든 Todo 완료 시 전체 완료 알림
+**입력:**
+- Todo 체크박스 클릭 (완료/미완료 토글)
+- 확인 모달 승인
- [처리 결과]
- - Todo가 완료됨
- - 완료 시간
- - 완료자 정보
- - 회의록에 완료 상태가 반영됨
- - 반영 시간
- - 회의록 버전 업데이트
+**출력/결과:**
+- Todo 상태 변경: 완료 ↔ 미완료
+- 완료 시각 기록
+- 회의록 진행률 업데이트
+- 알림 대상 생성 (옵션)
+- 토스트 메시지: "Todo가 완료되었습니다" / "미완료로 변경되었습니다"
- [Policy/Rule]
- - Todo 완료 시 회의록에 완료 상태 즉시 반영
- - 모든 Todo 완료 시 완료 알림
+**예외처리:**
+- 네트워크 오류: "Todo 상태 변경 중 오류가 발생했습니다" 에러 메시지
+- 확인 모달 취소: 체크박스 상태 원복
- [비고]
- - **차별화 포인트**: Todo 완료가 회의록에 실시간 반영되어 회의 결과 추적 용이
-
-- M/8
+**관련 유저스토리:**
+- UFR-TODO-010: Todo할당
+- UFR-TODO-040: Todo관리
+- UFR-MEET-047: 회의록상세조회
+- UFR-NOTI-010: 알림발송 (신규)
---
-UFR-TODO-040: [Todo관리] Todo 담당자로서 | 나는, 나의 Todo를 효율적으로 관리하기 위해 | Todo 목록을 조회하고 상태를 변경하고 편집하고 싶다.
-- 시나리오: Todo 관리 화면 조회 및 관리
- 09-Todo관리 화면에 접근하면 | 나의 Todo(내가 담당자인 Todo) 목록이 표시되고 | 필터링, 상태 변경, 편집이 가능하다.
+### UFR-TODO-040: [Todo관리] Todo 담당자로서 | 나는, 나의 Todo를 효율적으로 관리하기 위해 | Todo 목록을 조회하고 상태를 변경하고 편집하고 싶다.
- [화면 정보]
- - 화면번호: 09-Todo관리
- - 프로토타입: design/uiux/prototype/09-Todo관리.html
+**수행절차:**
+1. 사이드바 또는 하단 네비게이션에서 "Todo 관리" 메뉴 클릭
+2. Todo 관리 화면(09-Todo관리.html) 표시
+3. 통계 블록 확인 (3열 그리드):
+ - 전체 (미완료): 완료되지 않은 전체 Todo 개수
+ - 마감 임박 (3일 이내): D-3 이내 미완료 Todo
+ - 지연 (기한 경과): 마감일이 지난 미완료 Todo
+4. 필터 탭 선택:
+ - 전체: 모든 Todo (미완료 우선, 마감일 순)
+ - 지연: 마감일 지난 Todo
+ - 마감 임박: D-3 이내 Todo
+ - 완료: 완료된 Todo
+5. Todo 카드 확인:
+ - 체크박스, D-day 배지, 우선순위 배지
+ - 제목, 회의록 링크, 마감일
+ - 편집 버튼 (미완료 Todo만)
+6. 체크박스 클릭 시 완료/미완료 토글 (확인 모달)
+7. 편집 버튼 클릭 시 편집 모달:
+ - 제목, 담당자, 마감일, 우선순위 수정
+ - 권한: 담당자 본인 OR 회의 생성자
+8. Todo 카드 클릭 시 해당 회의록 상세 조회 화면으로 이동
- [대전제]
- - Todo의 상태는 완료/미완료만 존재
- - 09-Todo관리 화면에서는 나의 Todo(내가 담당자인 Todo)만 표시
+**입력:**
+- 필터 탭 클릭
+- Todo 체크박스 클릭
+- 편집 버튼 클릭
+- Todo 카드 클릭
- [화면 구성]
- **1. 상단 통계 블록**
- - 전체: 미완료 전체 개수
- - 마감임박: 기한 3일 이내 미완료 개수
- - 지연: 기한이 지난 미완료 개수
+**출력/결과:**
+- 통계 블록 (3열):
+ - 전체 (미완료), 마감 임박, 지연 개수
+- 필터 탭: 전체, 지연, 마감 임박, 완료 (각 탭에 개수 표시)
+- Todo 카드:
+ - D-day 배지 (완료, D+n(지연), D-DAY, D-n)
+ - 우선순위 배지 (높음, 보통, 낮음)
+ - 제목, 회의록 링크, 마감일, 편집 버튼
+- 편집 모달: 제목, 담당자, 마감일, 우선순위 입력 필드
+- 빈 상태: "할당된 Todo가 없습니다"
- **2. 필터링 기준**
- - 전체(개수): 완료/미완료 전체
- - 지연(개수): 기한이 지난 미완료
- - 마감임박(개수): 기한 3일 이내 미완료
- - 완료(개수): 완료된 Todo
+**예외처리:**
+- Todo 없음: 빈 상태 표시
+- 편집 권한 없음: "담당자 또는 회의 생성자만 편집할 수 있습니다" 안내
+- 편집 실패: "Todo 수정 중 오류가 발생했습니다" 에러 메시지
+- 네트워크 오류: "Todo 조회 중 오류가 발생했습니다" 에러 메시지
- **3. Todo 리스트 블록**
- - 정렬: 미완료 → 완료 순서, 기한일 오래된 순 (복합 정렬)
- - 표시 항목:
- - 체크박스 (완료/미완료 토글)
- - Todo 제목
- - 상태 뱃지: D+n(지연) / D-day / D-n / 완료
- - 우선순위 뱃지: 높음 / 보통 / 낮음
- - 기한
- - 회의록 제목 + 링크 (해당 Todo가 속한 회의록 상세로 이동)
- - 편집 버튼 (권한 있는 경우에만 노출)
- - 페이징: 최초 10건 노출, 10건 이상일 경우 하단에 "10개 더보기" 버튼 표시
-
- **4. 편집 모달**
- - 제목 (input)
- - 담당자 (해당 회의록 참석자 중 select) - 회의 생성자만 변경 가능
- - 마감일 (달력)
- - 우선순위 (높음/보통/낮음 select)
-
- [UI/UX 요구사항]
- - **디자인 차별화**: 액션 가능한 블록(체크박스, 편집 버튼)과 정보 표시 블록은 시각적으로 구분
- - **체크박스 동작**:
- - 체크박스 클릭 시 "완료 처리하시겠습니까?" 확인 모달 표시
- - 확인 시 완료 처리, 취소 시 이전 상태 유지
- - 미완료로 되돌릴 때도 "미완료로 변경하시겠습니까?" 확인 모달 표시
- - **편집 버튼**: 담당자 본인 OR 회의 생성자인 경우에만 노출
- - **편집 모달**: 모바일에서는 바텀시트 형식으로 표시
- - **회의록 링크**: 클릭 시 10-회의록상세조회 화면으로 이동 (대시보드 탭 우선 노출)
-
- [권한 제어]
- - **Todo 담당자**: 본인에게 할당된 Todo만 편집 가능
- - 수정 가능 항목: 제목, 마감일, 우선순위
- - 담당자 변경 불가
- - **회의 생성자**: 해당 회의의 모든 Todo 편집 가능 (11-회의록수정 화면에서)
- - 수정 가능 항목: 제목, 담당자, 마감일, 우선순위
- - 담당자 변경 가능
-
- [처리 결과]
- - Todo 상태 변경 시:
- - 완료/미완료 상태 즉시 업데이트
- - 통계 블록 갱신
- - 리스트 재정렬
- - Todo 편집 저장 시:
- - Todo 정보 업데이트
- - 수정 시간 기록
- - 회의록에 수정 내용 실시간 반영
- - 담당자 변경 시 이전/새 담당자에게 알림 발송
- - 마감일 변경 시 캘린더 자동 업데이트
-
- [Policy/Rule]
- - 필터별 개수 표시로 사용자가 전체 보기 여부 판단 가능
- - 체크박스 토글 시 확인 액션 필수 (실수 방지)
- - 편집 권한 없는 Todo는 편집 버튼 미노출
-
- [비고]
- - 진행률 표시 제거 (상태는 완료/미완료만)
- - 날짜별 그룹핑은 v2.0 고도화 시 고려
- - Todo 하이라이트 기능은 v2.0 고도화 시 고려
-
-- M/13
+**관련 유저스토리:**
+- UFR-TODO-010: Todo할당
+- UFR-TODO-030: Todo완료처리
+- UFR-USER-020: 대시보드 조회
---
-## 논리 아키텍처 반영 사항 요약
+## NOTIFICATION 서비스 (신규)
-### 1. 마이크로서비스 구성 변경 (v2.0)
+### UFR-NOTI-010: [알림발송] Notification 시스템으로서 | 나는, 사용자에게 중요한 이벤트를 알리기 위해 | 주기적으로 알림 대상을 확인하여 이메일을 발송하고 싶다.
-**변경 전 (v1.0)**: 8개 마이크로서비스
-- User, Meeting, STT, AI, RAG, Collaboration, Todo, Notification
+**수행절차:**
+1. **알림 대상 생성 (각 서비스에서)**:
+ - 알림이 필요한 이벤트 발생 시 Notification 테이블에 레코드 추가
+ - 알림 유형, 수신자, 제목, 내용, 발송 예정 시각, 발송 상태
-**변경 후 (v2.0)**: 5개 마이크로서비스
-- User, Meeting, STT, AI, Notification
+2. **알림 대상 폴링 (Notification 서비스)**:
+ - 주기적으로 (예: 1분마다) Notification 테이블 조회
+ - 조건: 발송 상태 = "대기", 발송 예정 시각 ≤ 현재 시각
-### 2. 주요 변경사항
+3. **이메일 발송**:
+ - 조회된 알림 대상에 대해 이메일 발송
+ - 이메일 템플릿 적용 (알림 유형별)
+ - 발송 성공 시 발송 상태 = "발송 완료", 발송 시각 기록
+ - 발송 실패 시 재시도 횟수 증가, 최대 3회 재시도
-#### 2.1 User Service 역할 변경
-- **변경 전**: 사용자 인증 및 권한 관리, 대시보드 정보 제공
-- **변경 후**: 사용자 인증 전용 (LDAP 연동, JWT 토큰 발급/검증)
-- **이유**:
- - 프론트엔드가 모든 API 요청에 사용자 정보(userId, userName, email) 포함
- - User Service 동기 호출 제거 → 성능 향상, 장애 격리
- - 네트워크 지연 제거 (~100ms 개선)
+4. **알림 유형 및 트리거**:
+ - **Todo 할당**: AI가 Todo 추출 후 담당자에게 알림
+ - **Todo 완료**: 담당자가 Todo 완료 시 회의 생성자에게 알림 (옵션)
+ - **회의 시작 알림**: 회의 시작 10분 전 참석자에게 알림
+ - **회의록 확정**: 회의록 최종 확정 시 모든 참석자에게 알림
+ - **참석자 초대**: 회의 중 참석자 초대 시 신규 참석자에게 알림
+ - **회의록 수정 알림**: 확정 후 회의록 수정 시 모든 참석자에게 알림 (옵션)
-#### 2.2 Meeting Service 통합
-- **통합 서비스**: Meeting + Collaboration + Todo
-- **핵심 기능**:
- - 회의 관리: 회의 예약, 시작, 종료
- - 회의록 관리: 회의록 생성, 수정, 확정
- - Todo 관리: Todo 할당, 진행 상황 추적, 회의록 양방향 연결
- - 실시간 협업: WebSocket 기반 실시간 동기화, 버전 관리, 충돌 해결
-- **이점**:
- - 서비스 간 통신 오버헤드 제거
- - Todo와 회의록이 동일 트랜잭션 내에서 처리 가능
- - 일관성 향상, 개발 효율성 증가
- - 내부 메서드 호출로 처리 속도 10배 향상
+**입력:**
+- Notification 테이블 레코드:
+ - 알림 유형, 수신자 이메일, 제목, 내용, 발송 예정 시각, 발송 상태
-#### 2.3 AI Service 통합
-- **통합 서비스**: AI + RAG
-- **핵심 기능**:
- - LLM 기반 회의록 자동 작성
- - Todo 자동 추출 및 담당자 식별
- - 섹션 AI 요약 재생성 (버튼 클릭 시 요약 생성)
- - 관련 회의록 자동 연결 (벡터 유사도 검색)
- - 전문용어 자동 감지 및 맥락 기반 설명 생성 (RAG)
- - 과거 회의록 및 사내 문서 검색
-- **이점**:
- - RAG와 AI 모두 LLM 기반 처리로 긴밀하게 연동
- - 동일한 벡터 임베딩 모델 및 LLM 공유 가능
- - 회의록 자동 작성 시 용어 설명이 병렬 처리되어 효율적
- - 서비스 개수 감소로 운영 복잡도 감소
+**출력/결과:**
+- 이메일 발송:
+ - 수신자: 알림 대상의 수신자 이메일
+ - 제목: 알림 제목
+ - 본문: 알림 내용 (HTML 템플릿 적용)
+- 발송 상태 업데이트:
+ - 발송 완료: 상태 = "발송 완료", 발송 시각 기록
+ - 발송 실패: 재시도 횟수 증가, 상태 = "발송 대기" (재시도) 또는 "발송 실패" (최대 재시도 초과)
-### 3. 유저스토리 영향도
+**예외처리:**
+- 이메일 발송 실패: 재시도 횟수 증가, 최대 3회 재시도
+- 3회 재시도 실패: 발송 상태 = "발송 실패", 로그 기록
+- 수신자 이메일 없음: 발송 상태 = "수신자 없음", 로그 기록
+- 네트워크 오류: 다음 폴링 주기에 재시도
-#### 3.1 변경 없음
-- STT 서비스 유저스토리: UFR-STT-010, UFR-STT-020
-- Notification 서비스 유저스토리: 알림 발송 관련
+**알림 유형별 템플릿 예시:**
-#### 3.2 서비스 통합에 따른 변경
-- **Collaboration → Meeting**: UFR-COLLAB-010, UFR-COLLAB-020, UFR-COLLAB-030
-- **Todo → Meeting**: UFR-TODO-010, UFR-TODO-030
-- **RAG → AI**: UFR-RAG-010, UFR-RAG-020
+**Todo 할당**
+- 제목: "[회의록] Todo가 할당되었습니다"
+- 내용: "{담당자}님, {회의 제목} 회의에서 다음 Todo가 할당되었습니다:\n- {Todo 제목}\n- 마감일: {마감일}\n\n회의록 보기: {회의록 링크}"
-#### 3.3 기능적 변경
-- **AFR-USER-020 (대시보드)**:
- - 프론트엔드가 Meeting Service에 직접 API 요청
- - User Service는 인증만 담당
+**회의 시작 알림**
+- 제목: "[회의록] 10분 후 회의가 시작됩니다"
+- 내용: "{참석자}님, {회의 제목} 회의가 10분 후 시작됩니다.\n- 일시: {날짜} {시간}\n- 장소: {장소}\n\n회의 참여하기: {회의 링크}"
-### 4. 성능 개선 효과
+**회의록 확정**
+- 제목: "[회의록] 회의록이 최종 확정되었습니다"
+- 내용: "{참석자}님, {회의 제목} 회의록이 최종 확정되었습니다.\n\n회의록 보기: {회의록 링크}"
-| 항목 | 개선 전 | 개선 후 | 효과 |
-|------|---------|---------|------|
-| User Service 동기 호출 | ~100ms | 제거 | 네트워크 지연 제거 |
-| Todo 처리 | 서비스 간 통신 | 내부 메서드 호출 | 10배 빠름 |
-| 실시간 동기화 | 서비스 간 REST API | Meeting 내부 처리 | 지연 감소 |
-| 서비스 개수 | 8개 | 5개 | 운영 복잡도 감소 |
-
-### 5. 차별화 전략 유지
-
-논리 아키텍처 변경에도 불구하고 차별화 포인트는 그대로 유지됩니다:
-
-- ✅ **맥락 기반 용어 설명**: AI Service에서 RAG 기능 통합 제공
-- ✅ **강화된 Todo 연결**: Meeting Service에서 더 강력한 통합 제공
-- ✅ **프롬프팅 기반 회의록 개선**: AI Service에서 계속 제공
-- ✅ **지능형 회의 진행 지원**: AI Service에서 계속 제공
+**관련 유저스토리:**
+- UFR-TODO-010: Todo할당
+- UFR-TODO-030: Todo완료처리
+- UFR-MEET-015: 참석자 실시간 초대
+- UFR-MEET-050: 최종확정
---
## 문서 이력
-| 버전 | 작성일 | 작성자 | 변경 내용 |
-|------|--------|--------|----------|
-| 1.0 | 2025-01-20 | 도그냥 (서비스 기획자) | 초안 작성 (8개 마이크로서비스) |
-| 2.0 | 2025-01-22 | 길동 (아키텍트) | 논리 아키텍처 반영 (5개 마이크로서비스로 단순화) |
-| 2.0.1 | 2025-10-23 | 강지수 (Product Designer) | 공유 기능 제거 반영
- AFR-USER-020: 대시보드 "공유받은 회의록" 섹션 제거
- UFR-MEET-046: 회의록 목록 카테고리 필터 "공유받은 회의" 제거 |
-| 2.0.2 | 2025-10-23 | 강지수, 도그냥 | Todo 수정 기능 추가 (UFR-TODO-040)
- 회의록 확정 전/후 Todo 수정 기능 추가
- 권한별 수정 범위: 담당자(본인 Todo만), 회의 생성자(모든 Todo)
- 수정 항목: 제목, 담당자, 마감일, 우선순위
- 09-Todo관리, 11-회의록수정 화면에서 수정 가능 |
-| 2.0.3 | 2025-10-23 | 강지수 (Product Designer) | 회의록 수정 항목 정책 명확화 (UFR-MEET-055)
- 회의 일시/장소: readonly 처리 (회의 예약 화면에서만 변경 가능)
- 참석자 관리: 회의 생성자만 추가/삭제 가능 (11-회의록수정 화면에서 직접 관리)
- 참석자 UI: 05-회의진행 화면과 동일한 방식으로 구현
- 프로토타입: 11-회의록수정.html에 참석자 관리 섹션 추가 |
-| 2.0.4 | 2025-10-23 | 강지수 (Product Designer) | 검증완료 섹션 잠금해제 정책 단순화
- **정책 변경**: 검증완료 섹션은 회의 생성자만 잠금 해제 후 수정 가능 (참석자는 수정 불가)
- **제거**: 참석자용 잠금해제 요청 기능 완전 제거 (공수 절감)
- UFR-MEET-055: 권한 제어 명확화 (생성자만 잠금 해제 가능)
- UFR-COLLAB-030: 섹션 잠금 기능 설명 업데이트
- 프로토타입 11-회의록수정.html: 잠금해제요청 버튼 제거, 검증완료 섹션 읽기 전용 표시 |
-| 2.0.5 | 2025-10-23 | 강지수 (Product Designer), 도그냥 (Service Planner) | Todo 및 회의록 관련 요구사항 재정의
- **UFR-TODO-040 (09-Todo관리)**: "Todo수정" → "Todo관리" 기능 확장
- 통계 블록 재정의: 전체(미완료), 마감임박(3일 이내), 지연(기한 경과)
- 필터링: 전체, 지연, 마감임박, 완료 (각 필터에 개수 표시)
- 체크박스 확인 모달: 완료/미완료 전환 시 확인
- 권한: 담당자 본인 OR 회의 생성자만 편집 가능
- **UFR-MEET-047 (10-회의록상세조회)**: 탭 순서 및 기본 노출 변경
- 탭 구성: 대시보드 / 회의록
- 기본 노출: 대시보드 탭 우선 노출 (기존: 회의록 우선)
- **UFR-MEET-055 (11-회의록수정)**: 진입 경로 및 권한 제어 명확화
- 진입 경로: 10-회의록상세조회 → "수정" 버튼 클릭
- 권한 제어: 검증완료 전(모든 참석자), 검증완료 후(회의 생성자만)
- 회의 일시/장소: 읽기 전용 표시 명시 |
-| 2.1.0 | 2025-10-24 | 강지수 (Product Designer) | 회의 종료 후 워크플로우 개선 및 안건 기반 회의록 구조 도입
- **UFR-MEET-040 (회의종료)**: 회의 종료 시 사용자 선택 옵션 제공
- AI가 STT 텍스트를 주요 안건으로 요약 정리 (템플릿 및 메모 항목 반영)
- 종료 후 선택: 회의록 수정 화면 이동 OR 대시보드 이동
- 회의록 상태: 작성중으로 저장
- **UFR-AI-010 (회의록자동작성)**: 실시간 + 종료 시 이중 처리 방식
- 시나리오 1: 실시간 AI 주요 메모 작성 (회의 진행 중)
- 시나리오 2: 회의 종료 시 전체 안건 요약 (AI 한줄 요약 + 상세 요약)
- **UFR-AI-020 (Todo자동추출)**: Todo 기본값 정책 추가
- 담당자 기본값: 회의록 생성자
- 마감일 기본값: 다음 회의 날짜 OR 오늘
- 우선순위 기본값: 보통
- Todo 독립성: 회의록 확정 상태와 무관하게 완료 처리 가능
- **UFR-AI-036 (AI한줄요약)**: 신규 유저스토리 추가
- 각 안건별 편집 불가능한 AI 한줄 요약 (30자 이내)
- 편집 가능한 상세 요약과 함께 제공
- **UFR-MEET-050 (최종확정)**: 안건 검증 요구사항 추가
- 모든 안건 검증 완료 시 최종 확정 가능
- 검증률 = 검증 완료된 안건 수 / 전체 안건 수
- **UFR-COLLAB-030 (검증완료)**: 안건별 검증으로 변경
- 섹션 검증 → 안건별 검증
- 11-회의록수정 화면에서 안건별 검증 처리
- 06-검증완료 화면 불필요 (11-회의록수정에 통합) |
-| 2.1.1 | 2025-10-24 | 강지수 (Product Designer) | 회의 종료 화면 정책 명확화 및 실시간 협업 충돌 방지 개선
- **UFR-MEET-040 (회의종료)**: 회의 종료 화면 정책 및 옵션 추가
- 회의 종료 화면은 확인 전용 (편집 불가) 명시
- 안건별 AI 요약 전체 표시 (한줄 요약 + 상세 요약 + Todo)
- 옵션 추가: "바로 최종 확정" (옵션 2)
- 3가지 선택 옵션: 회의록 수정 / 바로 최종 확정 / 대시보드 이동
- **UFR-COLLAB-020 (충돌해결)**: 안건 기반 충돌 방지 메커니즘 강화
- 안건 단위 독립 편집으로 충돌 최소화
- 다른 안건 동시 편집 시 충돌 없음
- 동일 안건 내 다른 필드 편집 시 자동 병합
- 동일 필드 동시 수정 시에만 Last Write Wins 적용
- 편집 중 안건 실시간 표시 (편집자 이름 및 아이콘)
- **UFR-MEET-050 (최종확정)**: 회의 종료 화면 바로 확정 시나리오 추가
- 시나리오 2: 회의 종료 화면에서 바로 최종 확정
- 바로 확정 시 모든 안건 자동 검증 완료 처리
- 필수 항목 자동 충족 (AI 생성 내용 활용)
- 회의록 수정 화면 거치지 않고 바로 확정 완료 |
-| 2.1.2 | 2025-10-24 | 강지수 (Product Designer) | 역할 용어 통일 및 권한 체계 명확화
- **용어 통일**: "회의록 작성자" → "회의 생성자" 또는 "회의 참석자"로 명확히 구분
- 생성자 권한 필요: UFR-MEET-010 (회의예약), UFR-MEET-020 (템플릿선택), UFR-MEET-030 (회의시작), UFR-MEET-040 (회의종료), UFR-MEET-050 (최종확정)
- 참석자 권한: UFR-MEET-046 (목록조회), UFR-MEET-047 (상세조회), UFR-AI-010~040 (AI 기능), UFR-RAG-010~020 (RAG 기능)
- **역할 정의**:
- 생성자: 회의 예약을 생성한 사람 (특별 권한: 참석자 관리, 회의 시작/종료, 최종 확정)
- 참석자: 회의에 참여하는 전체 인원 (생성자 포함, 기본 권한: 안건 편집, 검증, Todo 관리)
- **권한 체계 명확화**:
- 회의록 상세 조회 화면: 역할 표시 "생성자/참석자"로 변경
- Todo 편집 권한: 담당자 본인 OR 회의 생성자 |
-| 2.1.3 | 2025-10-24 | 강지수 (Product Designer) | 회의록 목록 조회 화면 생성자 표시 기능 추가 (UFR-MEET-046)
- **목록 표시 정보 추가**: 생성자 표시 (👑 아이콘)
- 현재 사용자가 회의 생성자인 경우 회의록 카드에 👑 아이콘 표시
- 아이콘 크기: 16px, title 속성 "생성자"로 툴팁 제공
- **UI/UX 설계서 업데이트**: 12-회의록목록조회 화면 UI 구성요소 명세 추가
- **스타일 가이드 업데이트**: creator-badge 스타일 추가 (배지 섹션)
- **프로토타입 수정**: 12-회의록목록조회.html, common.css
- createMeetingCard() 함수: creatorBadge 변수 추가 및 렌더링
- common.css: .creator-badge 스타일 정의 |
-
----
\ No newline at end of file
+| 버전 | 날짜 | 작성자 | 변경 내용 |
+|------|------|--------|-----------|
+| v2.3.0 | 2025-10-24 | 이미준 | • 프로토타입 분석을 통한 유저스토리 전면 재정비
• 신규 유저스토리 추가: UFR-MEET-015 (참석자 실시간 초대), UFR-NOTI-010 (알림 발송)
• 알림 아키텍처 폴링 방식으로 통일 (실시간 발송 → 주기적 폴링)
• 10개 프로토타입 화면 반영 완료
• 마이크로서비스 구성 재정의 (User, Meeting, STT, AI, Notification)
• 기존 24개 유저스토리 ID 승계 및 정리 |
+| v2.2.0 | 2025-10-23 | 이미준 | 이전 버전 |