# 유저스토리 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`