mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 12:36:23 +00:00
회의록 수정 화면 UI/UX 개선 (유저스토리 v2.4.0 반영) - AI 재생성 버튼 스타일 통일 (btn-secondary → btn-primary) - 안건별 검증완료 UI 단순화 - 참석자: 체크박스만 표시 - 생성자: 검증완료 시 잠금해제 버튼 표시 - .creator-only CSS 클래스 추가 (역할 기반 UI 제어) 관련 파일: - design/uiux/prototype/11-회의록수정.html - design/uiux/uiux.md (v1.5.2 변경 이력 업데이트) - design/userstory.md (v2.4.0 문서 이력 업데이트) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1412 lines
60 KiB
Markdown
1412 lines
60 KiB
Markdown
# AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.4.0)
|
|
|
|
## 목차
|
|
- [차별화 전략](#차별화-전략)
|
|
- [1. 기본 기능 (Hygiene Factors)](#1-기본-기능-hygiene-factors)
|
|
- [2. 핵심 차별화 포인트 (Differentiators)](#2-핵심-차별화-포인트-differentiators)
|
|
- [마이크로서비스 구성](#마이크로서비스-구성)
|
|
- [유저스토리 - USER & MEETING 서비스](#유저스토리---user--meeting-서비스)
|
|
- [USER 서비스](#user-서비스)
|
|
- [MEETING 서비스](#meeting-서비스)
|
|
- [유저스토리 - AI, STT, RAG, COLLAB, NOTIFICATION 서비스](#유저스토리-v230---ai-stt-rag-collab-todo-notification-서비스)
|
|
- [AI 서비스](#ai-서비스)
|
|
- [STT 서비스](#stt-서비스)
|
|
- [RAG 서비스 (AI 서비스에 통합)](#rag-서비스-ai-서비스에-통합)
|
|
- [COLLAB 서비스 (Meeting 서비스에 통합)](#collab-서비스-meeting-서비스에-통합)
|
|
- [NOTIFICATION 서비스](#notification-서비스-신규)
|
|
- [MVP 개선 사항 (v2.3.1)](#mvp-개선-사항-v231)
|
|
- [회의 참석자 권한 및 기능 단순화](#회의-참석자-권한-및-기능-단순화)
|
|
- [회의 생성자 전용 기능](#회의-생성자-전용-기능)
|
|
- [용어 설명 기능 (MVP 단순화)](#용어-설명-기능-mvp-단순화)
|
|
- [기존 유저스토리 수정](#기존-유저스토리-수정)
|
|
- [문서 이력](#문서-이력)
|
|
|
|
---
|
|
|
|
## 차별화 전략
|
|
|
|
본 서비스는 다음과 같은 차별화 포인트를 통해 경쟁 우위를 확보합니다:
|
|
|
|
### 1. 기본 기능 (Hygiene Factors)
|
|
- **STT(Speech To Text)**: 음성을 텍스트로 변환하는 기본 기능
|
|
- 시장의 대부분 서비스가 제공하는 기능으로 차별화 포인트가 아님
|
|
- 필수 기능이지만 경쟁 우위를 가져다주지 않음
|
|
|
|
### 2. 핵심 차별화 포인트 (Differentiators)
|
|
- **맥락 기반 용어 설명**: 단순 용어 설명을 넘어, 관련 회의록과 업무이력을 바탕으로 실용적인 정보 제공
|
|
- **섹션 AI 요약 재생성**: 버튼 클릭으로 작성한 섹션 내용을 AI가 요약 (2-3문장, 2-5초 처리)
|
|
- **지능형 회의 진행 지원**: 회의 패턴 분석을 통한 안건 추천, 효율성 분석 및 개선 제안
|
|
|
|
---
|
|
|
|
## 마이크로서비스 구성
|
|
|
|
1. **User** - 사용자 인증 (LDAP 연동, JWT 토큰 발급/검증)
|
|
2. **Meeting** - 회의, 회의록, Todo, 실시간 협업 통합 관리
|
|
- 회의 관리: 회의 예약, 시작, 종료
|
|
- 회의록 관리: 회의록 생성, 수정, 확정
|
|
- 실시간 협업: WebSocket 기반 실시간 동기화, 버전 관리, 충돌 해결
|
|
- 템플릿 관리: 회의록 템플릿 관리
|
|
- 통계 생성: 회의 및 Todo 통계
|
|
3. **STT** - 음성 스트리밍 처리, 실시간 음성-텍스트 변환 (기본 기능)
|
|
4. **AI** - AI 기반 회의록 자동화, Todo 추출, 지능형 검색 (RAG 통합)
|
|
- LLM 기반 회의록 자동 작성
|
|
- Todo 자동 추출 및 담당자 식별
|
|
- 섹션 AI 요약 재생성 (버튼 클릭 시 요약 생성)
|
|
- 관련 회의록 자동 연결 (벡터 유사도 검색)
|
|
- 전문용어 자동 감지 및 맥락 기반 설명 생성 (RAG)
|
|
- 과거 회의록 및 사내 문서 검색
|
|
- 업무 이력 통합
|
|
|
|
---
|
|
# 유저스토리 - 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: [대시보드] 사용자로서 | 나는, 나의 회의 현황을 파악하기 위해 | 대시보드를 조회하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 로그인 후 대시보드 자동 표시 또는 하단 네비게이션에서 홈 아이콘 클릭
|
|
2. 통계 블록 확인 (예정된 회의, 작성중 회의록)
|
|
3. 최근 회의 목록 확인 (최대 3개)
|
|
4. 나의 회의록 목록 확인 (최대 4개)
|
|
5. 필요 시 "전체 보기" 링크 클릭하여 회의록 목록 화면 이동
|
|
6. FAB 버튼으로 회의 예약 또는 바로 시작
|
|
|
|
**입력:**
|
|
- 없음 (자동 렌더링)
|
|
|
|
**출력/결과:**
|
|
- 헤더: 사용자 이름, 오늘 예정된 회의 개수 또는 안내 메시지
|
|
- 통계 블록 (2열 그리드):
|
|
- 예정된 회의: 전체 예정 + 진행 중 회의 개수
|
|
- 작성중 회의록: 내가 참석한 회의 중 '작성중' 상태인 회의록 개수 (클릭 액션 없음, 정보 표시만)
|
|
- 최근 회의 (회의록 미생성 우선, 빠른 일시 순, 최대 3개):
|
|
- 회의 카드: 상태 배지, 제목, 생성자 표시(👑), 날짜/시간, 참석자 수, 장소, 액션 버튼
|
|
- 진행 중 회의: 좌측 녹색 바 강조, "참여하기" 버튼
|
|
- 예정 회의: 생성자인 경우 "수정" 버튼
|
|
- 완료 회의: "보기" 버튼
|
|
- 나의 회의록 (최신순, 최대 4개, 2x2 그리드):
|
|
- 회의록 카드: 상태 배지, 생성자 표시(👑), 제목, 날짜/시간, 참석자 수, 검증완료율(작성중인 경우)
|
|
- 사이드바 (데스크톱): 로고, 메뉴(대시보드, 회의록), 사용자 정보, 로그아웃
|
|
- 하단 네비게이션 (모바일): 홈(활성), 회의록
|
|
- FAB 메뉴:
|
|
- 회의예약 버튼: 회의 예약 화면으로 이동
|
|
- 바로시작 버튼: 템플릿 선택 화면으로 이동
|
|
|
|
**예외처리:**
|
|
- 로그인 안 된 경우: 로그인 화면으로 리다이렉트
|
|
- 최근 회의 없음: 빈 상태 표시
|
|
- 회의록 없음: "참여한 회의록이 없습니다" 빈 상태 표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-USER-010: 로그인
|
|
- UFR-MEET-010: 회의예약
|
|
- UFR-MEET-020: 템플릿선택
|
|
- UFR-MEET-046: 회의록목록조회
|
|
- UFR-MEET-047: 회의록상세조회
|
|
|
|
---
|
|
|
|
## MEETING 서비스
|
|
|
|
### UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 대시보드에서 "회의예약" FAB 버튼 클릭 또는 최근 회의에서 "수정" 버튼 클릭
|
|
2. 회의 제목 입력 (최대 100자)
|
|
3. 날짜 선택 (오늘 이후 날짜, 달력 UI)
|
|
4. 시작/종료 시간 선택 (15분 단위 커스텀 시간 선택기)
|
|
5. 온라인/오프라인 회의 선택 (토글)
|
|
6. 장소 입력 (최대 200자)
|
|
- 오프라인: 예) 본사 2층 대회의실
|
|
- 온라인: 예) Zoom, Google Meet + 회의 링크 입력 또는 자동 생성
|
|
7. 참석자 추가 (현재 사용자는 기본 포함)
|
|
- "참석자 추가" 버튼 클릭
|
|
- 검색 모달에서 이름 또는 이메일로 검색
|
|
- 사용자 선택하여 추가
|
|
- 칩으로 표시, X 버튼으로 제거 가능 (본인 제외)
|
|
8. (선택) 안건 입력 (텍스트 영역)
|
|
9. "임시저장" 버튼 또는 "예약 완료" 버튼 클릭
|
|
|
|
**입력:**
|
|
- 회의 제목: 텍스트 입력, 필수, 최대 100자, 문자 카운터 표시
|
|
- 날짜: date 타입, 필수, 오늘 이후 날짜만 선택 가능, 달력 아이콘(📅) 표시
|
|
- 시작 시간: 커스텀 시간 선택기 (readonly), 필수, 15분 단위 (00, 15, 30, 45)
|
|
- 종료 시간: 커스텀 시간 선택기 (readonly), 필수, 15분 단위
|
|
- 온라인 회의: 토글 스위치 (선택)
|
|
- 장소: 텍스트 입력, 선택, 최대 200자, 문자 카운터 표시
|
|
- 회의 링크: URL 입력, 선택, 온라인 회의인 경우에만 표시, "자동 생성" 버튼 제공
|
|
- 참석자: 검색 모달, 필수 (최소 1명), 현재 사용자는 기본 포함
|
|
- 안건: 텍스트 영역 (textarea), 선택, 여러 줄 입력 가능
|
|
|
|
**출력/결과:**
|
|
- 예약 완료: "회의가 예약되었습니다" 토스트 메시지, 대시보드로 이동
|
|
- 임시저장: "임시 저장되었습니다" 토스트 메시지, 현재 화면 유지
|
|
- 참석자 추가 성공: "{이름}님이 추가되었습니다" 토스트 메시지
|
|
- 회의 링크 생성: "회의 링크가 생성되었습니다" 토스트 메시지
|
|
|
|
**예외처리:**
|
|
- 제목 미입력: "회의 제목을 입력해주세요" 토스트, 제목 필드 포커스
|
|
- 날짜 미선택: "회의 날짜를 선택해주세요" 토스트, 날짜 필드 포커스
|
|
- 시간 미선택: "회의 시간을 선택해주세요" 토스트
|
|
- 참석자 없음: "최소 1명의 참석자를 추가해주세요" 토스트
|
|
- 과거 날짜 선택: "과거 날짜는 선택할 수 없습니다" 토스트, 날짜 필드 포커스
|
|
- 뒤로가기/취소 클릭: "작성 중인 내용이 있습니다. 나가시겠습니까?" 확인 모달
|
|
- 참석자 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-USER-020: 대시보드 조회
|
|
- UFR-MEET-020: 템플릿선택
|
|
|
|
---
|
|
|
|
### UFR-MEET-015: [회의진행] 회의 참석자로서 | 나는, 회의 중 추가 참석자가 필요할 때 | 실시간으로 참석자를 초대하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의 진행 화면(05-회의진행.html)에서 "참석자" 탭 클릭
|
|
2. "초대" 버튼 클릭
|
|
3. 검색 모달에서 이름 또는 이메일로 검색
|
|
4. 사용자 선택하여 초대
|
|
5. 초대된 참석자 실시간 표시
|
|
6. 초대된 참석자에게 알림 전송
|
|
|
|
**입력:**
|
|
- 검색어: 텍스트 입력, 이름 또는 이메일로 검색
|
|
- 선택: 검색 결과 목록에서 사용자 클릭
|
|
|
|
**출력/결과:**
|
|
- 초대 성공: 참석자 목록에 실시간 추가, "{이름}님을 초대했습니다" 토스트 메시지
|
|
- 초대된 참석자에게 알림 대상 생성:
|
|
- 알림 유형: "회의 참석자 초대"
|
|
- 알림 내용: "{회의 제목}에 참석자로 초대되었습니다"
|
|
- 수신자: 초대된 참석자
|
|
- 발송 예정 시각: 즉시
|
|
- Notification 서비스가 주기적으로 폴링하여 이메일 발송
|
|
- 모든 참석자에게 참석자 변경 사항 실시간 동기화 (WebSocket)
|
|
|
|
**예외처리:**
|
|
- 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
|
|
- 이미 참석 중인 사용자: 선택 불가 또는 "이미 참석 중입니다" 안내
|
|
- 네트워크 오류: "초대에 실패했습니다" 에러 메시지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-030: 회의시작
|
|
- UFR-COLLAB-010: 회의록수정동기화
|
|
|
|
---
|
|
|
|
### UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
|
|
|
|
**템플릿선택 진입 경로:**
|
|
- **경로 1**: 대시보드(02-대시보드.html) → "바로시작" FAB 버튼 → 템플릿 선택(04-템플릿선택.html)
|
|
- **경로 2**: 회의예약 (03-회의예약.html) → 템플릿 선택(04-템플릿선택.html)
|
|
-
|
|
**수행절차:**
|
|
1. 위 경로 중 하나를 통해 템플릿 선택 화면(04-템플릿선택.html) 진입
|
|
2. 4가지 템플릿 중 선택 또는 "건너뛰기" 선택
|
|
- 일반 회의: 회의 개요, 논의 사항, 결정 사항, 액션 아이템
|
|
- 스크럼 회의: 어제 한 일, 오늘 할 일, 블로커/이슈
|
|
- 킥오프 회의: 프로젝트 개요, 목표 및 범위, 역할 및 책임, 일정 및 마일스톤
|
|
- 주간 회의: 지난주 성과, 이번주 계획, 주요 이슈, 다음 액션
|
|
3. 선택 완료 시 회의 시작 (05-회의진행.html로 이동)
|
|
|
|
**입력:**
|
|
- 템플릿 선택: 4가지 중 1개 선택 또는 건너뛰기
|
|
- 템플릿 카드 클릭 시 해당 템플릿 선택
|
|
|
|
**출력/결과:**
|
|
- 템플릿 선택: 선택한 템플릿으로 회의 시작, 회의 진행 화면으로 이동
|
|
- 건너뛰기: 기본 템플릿(일반 회의)으로 회의 시작
|
|
- 템플릿 미리보기: 아이콘, 설명, 섹션 목록 표시
|
|
|
|
**예외처리:**
|
|
- 없음 (선택 또는 건너뛰기 모두 허용)
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-USER-020: 대시보드 조회
|
|
- UFR-MEET-010: 회의예약
|
|
- UFR-MEET-030: 회의시작
|
|
|
|
---
|
|
|
|
### UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
|
|
|
|
**회의 진입 경로:**
|
|
- **경로 1**: 대시보드(02-대시보드.html) → "바로시작" FAB 버튼 → 템플릿 선택(04-템플릿선택.html) → 회의 진행(05-회의진행.html)
|
|
- **경로 2**: 대시보드 → 진행 중 회의 "참여하기" 버튼 → 회의 진행(05-회의진행.html)
|
|
|
|
**수행절차:**
|
|
1. 위 경로 중 하나를 통해 회의 진행 화면(05-회의진행.html) 진입
|
|
2. 회의 진행 화면 표시
|
|
3. 녹음 시작 확인 (자동 또는 수동)
|
|
4. 타이머 시작 (회의 진행 시간 표시)
|
|
5. 웨이브폼 애니메이션 표시 (녹음 상태 시각화)
|
|
6. 탭 네비게이션으로 기능 전환:
|
|
- 참석자: 참석자 목록 및 실시간 초대
|
|
- AI 제안: 실시간 AI 분석 결과 및 개인 메모 작성
|
|
- AI가 인식한 주요 내용 표시
|
|
- 참석자별 개인 메모 작성 영역 (수동 저장만 지원)
|
|
- 용어사전: 실시간 AI 자동 인식된 용어 및 검색
|
|
- 관련회의록: 실시간 AI 자동 연결된 이전 회의록
|
|
7. 하단 고정 버튼 (역할별 차별화)
|
|
- 회의 생성자: [일시정지/녹음재개] + [회의 종료]
|
|
- 회의 참석자: [회의 나가기]
|
|
|
|
**입력:**
|
|
- 녹음 시작/일시정지: 버튼 클릭
|
|
- 탭 전환: 탭 클릭
|
|
- 메모 작성: 텍스트 입력
|
|
|
|
**출력/결과:**
|
|
- 헤더: 회의 제목, 녹음 상태 (녹음 중/일시정지), 경과 시간
|
|
- 웨이브폼 애니메이션: 녹음 상태 시각화
|
|
- 참석자 탭: 참석자 목록, 초대 버튼
|
|
- AI 제안 탭:
|
|
- AI가 인식한 주요 내용 리스트
|
|
- 개인 메모 작성 영역 (참석자별 독립)
|
|
- 저장 버튼 (수동 저장만)
|
|
- 용어사전 탭: 자동 추출된 용어, 검색 기능
|
|
- 관련회의록 탭: 자동 연결된 이전 회의록 목록
|
|
- 하단 고정 버튼:
|
|
- 회의 생성자: [일시정지/녹음재개] + [회의 종료]
|
|
- 회의 참석자: [회의 나가기]
|
|
|
|
**예외처리:**
|
|
- 녹음 권한 없음: "마이크 권한이 필요합니다" 에러 메시지
|
|
- 네트워크 오류: "녹음 중 오류가 발생했습니다" 에러 메시지
|
|
- 일시정지 확인: "일시정지하시겠습니까?" 확인 모달
|
|
- 회의 종료 확인 (생성자): "회의를 종료하시겠습니까? 모든 참석자의 회의가 종료됩니다" 확인 모달
|
|
- 회의 나가기 확인 (참석자): "회의에서 나가시겠습니까? 저장하지 않은 메모는 삭제됩니다" 확인 모달
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-020: 템플릿선택
|
|
- UFR-MEET-015: 참석자 실시간 초대
|
|
- UFR-MEET-040: 회의종료
|
|
- UFR-STT-010: 음성녹음인식
|
|
- UFR-AI-030: 실시간 AI 제안 (신규)
|
|
- UFR-RAG-010: 전문용어감지
|
|
- UFR-AI-040: 관련회의록연결
|
|
|
|
---
|
|
|
|
### UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
|
|
|
|
**권한:**
|
|
- 회의 생성자만 회의를 종료할 수 있음
|
|
- 일반 참석자는 "회의 종료" 버튼이 표시되지 않음
|
|
|
|
**수행절차:**
|
|
1. 회의 진행 화면에서 "회의 종료" 버튼 클릭 (생성자 전용)
|
|
2. 종료 확인 모달: "회의를 종료하시겠습니까?" 확인
|
|
3. 회의 종료 화면(07-회의종료.html) 표시 (확인 전용, 편집 불가)
|
|
4. 통계 확인 (4열 그리드):
|
|
- 참석자 수
|
|
- 회의 시간
|
|
- 안건 수
|
|
- Todo 수
|
|
5. 주요 키워드 확인 (태그 형태)
|
|
6. 안건별 AI 요약 확인 (아코디언 카드):
|
|
- AI 한줄 요약 (30자 이내, 편집 불가)
|
|
- AI 상세 요약 (편집 가능, 재생성 가능)
|
|
- 자동 추출된 Todo 목록
|
|
7. 하단 액션 바에서 다음 단계 선택:
|
|
- 옵션 1: "회의록 수정" → 회의록 수정 화면(11-회의록수정.html)으로 이동
|
|
- 옵션 2: "바로 최종 확정" → 모든 안건 자동 검증 완료 처리 후 최종 확정
|
|
- 옵션 3: "대시보드" → 대시보드(02-대시보드.html)로 이동
|
|
|
|
**입력:**
|
|
- 하단 액션 버튼 클릭
|
|
|
|
**출력/결과:**
|
|
- 회의 종료 화면 표시:
|
|
- 통계 카드 (4열): 참석자, 시간, 안건, Todo
|
|
- 주요 키워드 태그
|
|
- 안건 아코디언 카드: AI 한줄 요약 + 상세 요약 + Todo
|
|
- 읽기 전용 안내 표시
|
|
- 회의록 상태: "작성중"으로 저장
|
|
- 옵션 선택에 따른 화면 전환
|
|
|
|
**예외처리:**
|
|
- AI 요약 생성 실패: "요약 생성 중 오류가 발생했습니다" 에러 메시지, 기본 템플릿으로 대체
|
|
- Todo 추출 실패: 빈 Todo 목록 표시
|
|
- 바로 확정 실패: "최종 확정 중 오류가 발생했습니다" 에러 메시지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-030: 회의시작
|
|
- UFR-MEET-050: 최종확정
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-AI-010: 회의록자동작성
|
|
- UFR-AI-020: Todo자동추출
|
|
- UFR-AI-036: AI한줄요약
|
|
|
|
---
|
|
|
|
### UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.
|
|
|
|
**수행절차:**
|
|
**시나리오 1: 회의록 수정 후 최종 확정**
|
|
1. 회의록 수정 화면(11-회의록수정.html)에서 모든 안건 검증 완료
|
|
2. "최종 확정" 버튼 활성화 (검증률 100%)
|
|
3. "최종 확정" 버튼 클릭
|
|
4. 확인 모달: "최종 확정하시겠습니까? 확정 후에는 생성자만 수정할 수 있습니다"
|
|
5. 회의록 상태: "확정완료"로 변경
|
|
6. 회의록 상세 조회 화면(10-회의록상세조회.html)으로 이동
|
|
|
|
**시나리오 2: 회의 종료 화면에서 바로 확정**
|
|
1. 회의 종료 화면(07-회의종료.html)에서 "바로 최종 확정" 버튼 클릭
|
|
2. 확인 모달: "바로 최종 확정하시겠습니까?"
|
|
3. 모든 안건 자동 검증 완료 처리
|
|
4. 회의록 상태: "확정완료"로 변경
|
|
5. 회의록 상세 조회 화면으로 이동
|
|
|
|
**입력:**
|
|
- 최종 확정 버튼 클릭
|
|
- 확인 모달 승인
|
|
|
|
**출력/결과:**
|
|
- 확정 성공: "회의록이 최종 확정되었습니다" 토스트 메시지
|
|
- 회의록 상태: "확정완료"
|
|
- 모든 안건 검증완료 상태로 변경
|
|
- 회의록 상세 조회 화면으로 이동
|
|
- 확정 후 편집 권한: 회의 생성자만 잠금 해제 후 수정 가능
|
|
|
|
**예외처리:**
|
|
- 시나리오 1에서 미검증 안건 존재: "모든 안건을 검증해야 확정할 수 있습니다" 에러 메시지
|
|
- 확정 실패: "최종 확정 중 오류가 발생했습니다" 에러 메시지
|
|
- 확인 모달 취소: 현재 화면 유지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-040: 회의종료
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-COLLAB-030: 검증완료
|
|
|
|
---
|
|
|
|
### UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 사이드바 또는 하단 네비게이션에서 "회의록" 메뉴 클릭
|
|
2. 회의록 목록 조회 화면(12-회의록목록조회.html) 표시
|
|
3. (선택) 정렬 기준 선택:
|
|
- 최근수정순 (기본값)
|
|
- 최근회의순
|
|
- 제목순
|
|
4. (선택) 참여 유형 필터 선택 (다중 선택 가능):
|
|
- 참석한 회의 (체크박스)
|
|
- 생성한 회의 (체크박스)
|
|
5. (선택) 상태 탭 필터 선택:
|
|
- 전체 (통계 표시)
|
|
- 작성중 (검증완료율 표시)
|
|
- 확정완료
|
|
6. (선택) 검색: 제목, 참석자, 키워드로 검색
|
|
7. 회의록 카드 클릭 시 상세 조회 화면으로 이동
|
|
8. 하단 스크롤 시 "더보기" (10개씩 추가 로드)
|
|
|
|
**입력:**
|
|
- 정렬 기준: 드롭다운 선택
|
|
- 참여 유형: 체크박스 (다중 선택)
|
|
- 상태: 탭 클릭
|
|
- 검색어: 텍스트 입력
|
|
- 더보기: 스크롤 또는 버튼 클릭
|
|
|
|
**출력/결과:**
|
|
- 필터 섹션: 정렬, 참여 유형 (체크박스), 검색
|
|
- 상태 탭: 전체 (통계), 작성중, 확정완료
|
|
- 회의록 카드 그리드 (모바일 1열, 데스크톱 2열):
|
|
- 상태 배지 (작성중/확정완료)
|
|
- 생성자 표시 (👑 아이콘, 16px, "생성자" 툴팁)
|
|
- 제목
|
|
- 날짜/시간, 참석자 수
|
|
- 검증완료율 (작성중인 경우만)
|
|
- 빈 상태: "조회된 회의록이 없습니다" 표시
|
|
- 더보기: 10개씩 추가 로드
|
|
|
|
**예외처리:**
|
|
- 조회 결과 없음: 빈 상태 표시
|
|
- 검색 결과 없음: "검색 결과가 없습니다" 빈 상태 표시
|
|
- 네트워크 오류: "회의록 조회 중 오류가 발생했습니다" 에러 메시지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-USER-020: 대시보드 조회
|
|
- UFR-MEET-047: 회의록상세조회
|
|
|
|
---
|
|
|
|
### UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 대시보드 또는 회의록 목록에서 회의록 카드 클릭
|
|
2. 회의록 상세 조회 화면(10-회의록상세조회.html) 표시
|
|
3. 탭 전환:
|
|
- **대시보드 탭** (기본 노출):
|
|
- 통계 그리드 (4열): 참석자, 회의 시간, 안건 수, Todo 수
|
|
- 주요 키워드 (태그)
|
|
- 핵심내용 요약
|
|
- 결정사항
|
|
- Todo 진행상황 (단순 조회 전용)
|
|
- Todo 카드: 제목, 담당자, 마감일만 표시
|
|
- D-day 체크, 우선순위 라벨 제거
|
|
- 진행률 표시 (수평 바): 완료 Todo 수 / 전체 Todo 수
|
|
- 관련회의록 (관련도 배지: 높음, 중간, 낮음)
|
|
- **회의록 탭**:
|
|
- 회의 기본 정보 (제목, 날짜/시간, 장소, 참석자)
|
|
- 안건별 카드:
|
|
- 안건 제목
|
|
- AI 한줄 요약 (30자 이내, 읽기 전용)
|
|
- AI 상세 요약
|
|
- 관련회의록 링크
|
|
4. "수정" 버튼 클릭 시 회의록 수정 화면으로 이동
|
|
|
|
**입력:**
|
|
- 탭 클릭: 대시보드 / 회의록
|
|
|
|
**출력/결과:**
|
|
- 헤더: 회의 제목, "수정" 버튼 (제목 텍스트 바로 옆에 배치, 권한에 따라 표시)
|
|
- 대시보드 탭:
|
|
- 통계, 키워드, 핵심내용, 결정사항, Todo 진행상황, 관련회의록
|
|
- Todo 카드: 제목, 담당자, 마감일만 표시 (D-day, 우선순위 라벨 없음)
|
|
- 회의록 탭:
|
|
- 기본 정보, 안건별 상세 내용
|
|
|
|
**예외처리:**
|
|
- 회의록 조회 실패: "회의록 조회 중 오류가 발생했습니다" 에러 메시지
|
|
- Todo 없음: "등록된 Todo가 없습니다" 빈 상태 표시
|
|
- 관련회의록 없음: "관련 회의록이 없습니다" 빈 상태 표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-046: 회의록목록조회
|
|
- UFR-MEET-055: 회의록수정
|
|
|
|
---
|
|
|
|
### UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않은 안건을 | 수정하고 검증완료 체크를 통해 보호하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의록 상세 조회 화면에서 "수정" 버튼 클릭
|
|
2. 회의록 수정 화면(11-회의록수정.html) 표시
|
|
3. 여러 참석자가 동시에 수정 화면 진입 가능 (동시 편집 허용)
|
|
4. 편집 가능 항목:
|
|
- 회의 제목 (텍스트 입력)
|
|
- AI 한줄 요약 (읽기 전용, 편집 불가)
|
|
- 안건별 입력창 내용 (텍스트 영역, 편집 가능)
|
|
- "AI 재생성" 버튼: 입력창 내용 기반으로 한줄 요약만 재생성
|
|
- 관련회의록 추가/제거
|
|
- "추가" 버튼: 검색 모달 열기
|
|
- X 버튼: 관련회의록 제거
|
|
- 참석자 관리 (회의 생성자만):
|
|
- 참석자 추가/삭제
|
|
- 05-회의진행 화면과 동일한 UI
|
|
5. 읽기 전용 항목:
|
|
- 회의 일시 (읽기 전용 배지 표시)
|
|
- 회의 장소 (읽기 전용 배지 표시)
|
|
6. 안건별 검증완료 체크:
|
|
- 검증완료 전: 체크박스 비활성화 상태, 편집 가능
|
|
- 검증완료 체크 시: 해당 안건 잠금 (편집 불가)
|
|
- 회의 생성자만: 검증완료 체크 해제 가능 (잠금 해제)
|
|
7. 저장 로직:
|
|
- "저장" 버튼 클릭 시:
|
|
- 검증완료된 안건: 저장 스킵
|
|
- 미검증 안건: 저장 진행
|
|
- 저장 결과 알림:
|
|
- "N개 안건이 저장되었습니다"
|
|
- "M개 안건은 검증완료 상태로 저장되지 않았습니다"
|
|
- 저장 불가 안건 목록 표시
|
|
8. 모든 안건 검증 완료 시 "최종 확정" 버튼 활성화
|
|
9. 페이지 나가기 전 확인 (변경사항 있을 때)
|
|
|
|
**입력:**
|
|
- 회의 제목: 텍스트 입력
|
|
- 안건별 입력창 내용: 텍스트 영역 편집
|
|
- AI 재생성: 버튼 클릭 (입력창 내용 기반 한줄 요약 생성)
|
|
- 관련회의록: 추가(검색 모달), 제거(X 버튼)
|
|
- 참석자: 추가(검색 모달), 삭제(X 버튼) - 회의 생성자만
|
|
- 검증 완료: 체크박스 (회의 생성자: 체크/해제, 참석자: 체크만)
|
|
|
|
**출력/결과:**
|
|
- 편집 화면: 제목, AI 한줄 요약, 안건별 입력창, 관련회의록, 참석자, 검증 체크박스
|
|
- 저장 결과: "N개 안건 저장됨" 토스트, 저장 불가 안건 목록 표시
|
|
- AI 재생성: "재생성 중..." → 한줄 요약만 업데이트 → "재생성되었습니다" 토스트
|
|
- 관련회의록 추가: 검색 모달 → 선택 → "추가되었습니다" 토스트
|
|
- 참석자 추가: 검색 모달 → 선택 → "{이름}님이 추가되었습니다" 토스트
|
|
- 검증 완료: 체크 → 잠금 아이콘 표시 (편집 불가)
|
|
- 잠금 해제 (회의 생성자만): 체크 해제 → "잠금 해제하시겠습니까?" 확인 → 편집 가능
|
|
- 최종 확정: 검증률 100% → "최종 확정" 버튼 활성화
|
|
|
|
**예외처리:**
|
|
- 편집 권한 없음 (확정 완료 후): 읽기 전용 모드, "확정된 회의록은 수정할 수 없습니다" 안내
|
|
- 검증완료 안건 편집 시도: "검증완료된 안건은 수정할 수 없습니다. 회의 생성자에게 문의하세요" 안내
|
|
- 검증완료 해제 권한 없음: "회의 생성자만 검증완료를 해제할 수 있습니다" 안내
|
|
- AI 재생성 실패: "재생성 중 오류가 발생했습니다" 에러 메시지
|
|
- 저장 실패: "저장 중 오류가 발생했습니다" 에러 메시지
|
|
- 페이지 나가기: "저장되지 않은 변경사항이 있습니다. 나가시겠습니까?" 확인 모달
|
|
- 참석자 관리 권한 없음: "회의 생성자만 참석자를 관리할 수 있습니다" 안내
|
|
|
|
**동시 편집 정책 (MVP):**
|
|
- 실시간 동기화 없음 (다른 참석자가 편집하는 내용 안 보임)
|
|
- 안건별 검증완료 체크로 충돌 방지
|
|
- 마지막 저장 우선 원칙 (Last Write Wins)
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-047: 회의록상세조회
|
|
- UFR-MEET-050: 최종확정
|
|
- UFR-AI-036: AI한줄요약
|
|
- UFR-AI-040: 관련회의록연결
|
|
- UFR-COLLAB-030: 검증완료
|
|
# 유저스토리 v2.3.0 - AI, STT, RAG, COLLAB, TODO, NOTIFICATION 서비스
|
|
|
|
## AI 서비스
|
|
|
|
### 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: 회의록수정동기화
|
|
|
|
---
|
|
|
|
### UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
|
|
|
|
**수행절차:**
|
|
1. 회의 종료 시 AI가 각 안건 내용 분석
|
|
2. 실행 가능한 항목(Action Item) 감지
|
|
3. Todo 추출 및 기본값 설정:
|
|
- 제목: AI가 추출한 실행 항목
|
|
- 담당자 기본값: 회의록 생성자
|
|
- 마감일 기본값: 다음 회의 날짜 OR 오늘 + 7일
|
|
- 우선순위 기본값: 보통
|
|
4. Todo 목록 생성
|
|
5. Meeting 서비스에 자동 전달
|
|
6. 회의 종료 화면에 Todo 목록 표시
|
|
|
|
**입력:**
|
|
- 각 안건의 AI 상세 요약
|
|
- 회의 메모 내용
|
|
- 회의 기본 정보 (생성자, 다음 회의 날짜)
|
|
|
|
**출력/결과:**
|
|
- 추출된 Todo 목록:
|
|
- 제목, 담당자, 마감일, 우선순위
|
|
- Todo 데이터 Meeting 서비스로 전달
|
|
- 회의 종료 화면 및 회의록 수정 화면에 표시
|
|
|
|
**예외처리:**
|
|
- Todo 추출 실패: 빈 Todo 목록 생성
|
|
- 담당자 식별 실패: 회의록 생성자로 설정
|
|
- 마감일 산정 실패: 오늘 + 7일로 설정
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-AI-010: 회의록자동작성
|
|
- UFR-TODO-010: Todo할당
|
|
- UFR-MEET-040: 회의종료
|
|
|
|
---
|
|
|
|
### UFR-AI-030: [실시간AI제안] 회의 참석자로서 | 나는, 회의 중 놓치는 내용을 최소화하기 위해 | AI가 실시간으로 주요 내용을 분석하여 제안하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의 진행 중 STT 텍스트 실시간 수신
|
|
2. AI가 발언 내용 분석 (핵심 내용 감지)
|
|
3. 주요 내용 감지 시 AI 제안 카드 생성:
|
|
- 제안 제목
|
|
- 제안 내용 (1-2문장)
|
|
- 제안 시각 (타임스탬프)
|
|
4. "AI 제안" 탭에 카드 표시
|
|
5. 사용자가 "메모에 추가" 버튼 클릭 시:
|
|
- 제안 내용을 회의 메모에 추가
|
|
- "추가되었습니다" 토스트 메시지
|
|
- 카드에서 제거 또는 "추가됨" 표시
|
|
|
|
**입력:**
|
|
- STT 변환 텍스트 (실시간 스트리밍)
|
|
- 현재 안건 컨텍스트
|
|
- 템플릿 정보
|
|
|
|
**출력/결과:**
|
|
- AI 제안 카드 (실시간):
|
|
- 제목, 내용, 타임스탬프, "메모에 추가" 버튼
|
|
- 메모 추가 성공: 회의 메모에 내용 추가, 토스트 메시지
|
|
- 모든 참석자에게 실시간 동기화
|
|
|
|
**예외처리:**
|
|
- AI 분석 실패: 제안 생성 중단, 로그 기록
|
|
- 네트워크 오류: 로컬 캐시에 제안 저장 후 재전송
|
|
- 메모 추가 실패: "메모 추가 중 오류가 발생했습니다" 에러 메시지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-STT-020: 텍스트변환
|
|
- UFR-MEET-030: 회의시작
|
|
- UFR-COLLAB-010: 회의록수정동기화
|
|
|
|
---
|
|
|
|
### UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 한줄 요약을 확인하고 필요 시 재생성하고 싶다.
|
|
|
|
**수행절차:**
|
|
|
|
**시나리오 1: 자동 생성 (회의 종료 시)**
|
|
1. 회의 종료 시 AI가 각 안건별로 한줄 요약 생성
|
|
2. 안건 관련 메모 및 STT 텍스트를 분석하여 30자 이내로 핵심 내용 압축
|
|
3. 회의 종료 화면에 안건별 한줄 요약 표시 (읽기 전용)
|
|
|
|
**시나리오 2: 수동 재생성 (회의록 수정 시)**
|
|
1. 회의록 수정 화면(11-회의록수정.html)에서 안건별 "AI 요약" 영역 확인
|
|
2. 텍스트 편집 영역에서 안건 내용 수정
|
|
3. "AI 재생성" 버튼 클릭
|
|
4. AI가 수정된 텍스트 편집 영역 내용을 분석하여 한줄 요약 생성 (2-5초 처리)
|
|
5. "AI 요약" 영역에 새로운 한줄 요약 표시
|
|
6. "재생성되었습니다" 토스트 메시지 표시
|
|
7. 재생성된 한줄 요약은 회의록 상세조회 화면의 대시보드 및 회의록 탭에 즉시 반영
|
|
|
|
**입력:**
|
|
- 자동 생성: 안건 관련 메모 및 STT 텍스트
|
|
- 재생성: 텍스트 편집 영역의 안건 내용
|
|
- 재생성 버튼 클릭 이벤트
|
|
|
|
**출력/결과:**
|
|
- AI 한줄 요약 (30자 이내)
|
|
- 회의 종료 화면: 안건별 한줄 요약 (읽기 전용)
|
|
- 회의록 수정 화면: "AI 요약" 영역에 한줄 요약 표시 및 재생성 기능
|
|
- 회의록 상세조회 화면: 대시보드 및 회의록 탭에 한줄 요약 표시
|
|
- 재생성 시: "재생성 중..." 로딩 → 한줄 요약 업데이트 → "재생성되었습니다" 토스트
|
|
|
|
**예외처리:**
|
|
- 한줄 요약 생성 실패: 안건 제목 사용 또는 "요약 없음" 표시
|
|
- 30자 초과: 자동 트림 처리
|
|
- AI 재생성 실패: "재생성 중 오류가 발생했습니다" 에러 메시지
|
|
- 네트워크 오류: 재시도 로직 또는 기존 요약 유지
|
|
- 타임아웃: "재생성 시간이 초과되었습니다. 다시 시도해주세요" 안내
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-AI-010: 회의록자동작성
|
|
- UFR-MEET-040: 회의종료
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-MEET-047: 회의록상세조회
|
|
|
|
---
|
|
|
|
### UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결하고 유사 내용을 요약해주기를 원한다.
|
|
|
|
**기능 개선 사항 (v2.3.1):**
|
|
- **최대 개수**: 5개 → 3개로 축소 (MVP)
|
|
- **관련도 표시 방식**: 배지(높음/중간/낮음) → 퍼센트(95%, 78%)로 변경
|
|
- **유사 내용 요약 추가** (신규):
|
|
- AI가 추천한 각 회의록에서 현재 회의와 유사한 부분 자동 추출
|
|
- 유사한 내용을 3-5개 문장으로 요약하여 표시
|
|
- 전체 회의록을 열지 않아도 핵심 내용 파악 가능
|
|
- "전체 회의록 보기" 버튼으로 상세 내용 확인
|
|
- **성능 최적화**:
|
|
- 과거 회의록 저장 시 요약본 미리 생성 (배치 처리)
|
|
- 실시간 요약은 캐싱된 데이터 활용
|
|
- 성능 목표: 1초 이내 표시
|
|
|
|
**수행절차:**
|
|
1. 회의 종료 시 또는 회의록 작성 중 AI가 현재 회의 내용 분석
|
|
2. 벡터 유사도 검색을 통해 관련 회의록 탐색
|
|
- 같은 폴더 내 회의록 우선
|
|
- 키워드, 참석자, 안건 유사도 분석
|
|
3. 관련도가 높은 회의록 자동 연결 (최대 3개로 축소)
|
|
4. 각 회의록에서 유사한 내용 추출 및 요약 (신규 추가)
|
|
5. 회의 진행 화면, 회의 종료 화면, 회의록 수정 화면, 회의록 상세 조회 화면에 표시
|
|
6. 사용자가 수동으로 추가/제거 가능
|
|
|
|
**입력:**
|
|
- 현재 회의 내용 (제목, 안건, 키워드, 참석자)
|
|
- 과거 회의록 데이터 (벡터 DB)
|
|
|
|
**출력/결과:**
|
|
- 관련 회의록 목록 (최대 3개):
|
|
- 회의록 제목
|
|
- 날짜
|
|
- 관련도 점수 (퍼센트, 예: 95%, 78%)
|
|
- **유사 내용 요약 (3-5개 문장)** ← 신규
|
|
- "전체 회의록 보기" 버튼
|
|
- 회의록 링크
|
|
- 회의록 수정 화면: "추가" 버튼, "X" 제거 버튼
|
|
- 회의록 상세 조회 화면: 관련회의록 섹션 표시
|
|
|
|
**예외처리:**
|
|
- 관련 회의록 없음: 빈 목록 표시
|
|
- 벡터 검색 실패: 최근 회의록 기준 정렬로 대체
|
|
- 유사 내용 요약 실패: 회의록 제목과 날짜만 표시
|
|
- 네트워크 오류: 로컬 캐시 사용 또는 빈 목록
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-040: 회의종료
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-MEET-047: 회의록상세조회
|
|
|
|
---
|
|
|
|
## STT 서비스
|
|
|
|
### UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
|
|
|
|
**수행절차:**
|
|
1. 회의 시작 시 마이크 권한 요청
|
|
2. 사용자 승인 후 녹음 시작
|
|
3. 음성 스트림 캡처 (WebRTC)
|
|
4. 실시간으로 STT 서비스에 음성 스트림 전송
|
|
5. 녹음 상태 시각화:
|
|
- 녹음 중 표시 (빨간 점 애니메이션)
|
|
- 웨이브폼 애니메이션
|
|
- 경과 시간 표시
|
|
6. 일시정지/재개 기능 제공
|
|
7. 회의 종료 시 녹음 중지
|
|
|
|
**입력:**
|
|
- 마이크 음성 입력
|
|
- 녹음 시작/일시정지/재개/중지 이벤트
|
|
|
|
**출력/결과:**
|
|
- 녹음 상태 표시:
|
|
- 녹음 중: 빨간 점 + 웨이브폼 애니메이션 + 경과 시간
|
|
- 일시정지: 일시정지 아이콘 + 경과 시간
|
|
- 음성 스트림 STT 서비스로 실시간 전송
|
|
- 녹음 파일 저장 (서버)
|
|
|
|
**예외처리:**
|
|
- 마이크 권한 거부: "마이크 권한이 필요합니다" 에러 메시지, 회의 시작 불가
|
|
- 마이크 장치 없음: "마이크 장치를 찾을 수 없습니다" 에러 메시지
|
|
- 녹음 중 오류: "녹음 중 오류가 발생했습니다" 에러 메시지, 재시도 옵션
|
|
- 네트워크 끊김: 로컬 버퍼에 저장 후 재연결 시 전송
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-030: 회의시작
|
|
- UFR-STT-020: 텍스트변환
|
|
|
|
---
|
|
|
|
### UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. STT 서비스가 음성 스트림 실시간 수신
|
|
2. 음성을 텍스트로 변환 (STT 엔진)
|
|
3. 변환된 텍스트를 타임스탬프와 함께 저장
|
|
4. AI 서비스에 텍스트 전달 (실시간 분석용)
|
|
5. 화자 분리 (가능 시)
|
|
6. 텍스트 누적 저장 (전체 회의 내용)
|
|
|
|
**입력:**
|
|
- 음성 스트림 (실시간)
|
|
- 회의 ID, 화자 정보 (옵션)
|
|
|
|
**출력/결과:**
|
|
- 변환된 텍스트 (실시간):
|
|
- 텍스트 내용
|
|
- 타임스탬프
|
|
- 화자 정보 (옵션)
|
|
- AI 서비스로 텍스트 전달
|
|
- 전체 회의 텍스트 누적 저장
|
|
|
|
**예외처리:**
|
|
- 변환 실패: 해당 구간 건너뛰기, 로그 기록
|
|
- 네트워크 오류: 로컬 버퍼에 저장 후 재전송
|
|
- 인식 불가 음성: "[인식 불가]" 표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-STT-010: 음성녹음인식
|
|
- UFR-AI-010: 회의록자동작성
|
|
- UFR-AI-030: 실시간AI제안
|
|
|
|
---
|
|
|
|
## RAG 서비스 (AI 서비스에 통합)
|
|
|
|
### UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의 진행 중 STT 텍스트에서 전문용어 자동 감지
|
|
- 사전 정의된 전문용어 사전 매칭
|
|
- 빈도 기반 주요 용어 추출
|
|
2. 감지된 용어를 "용어사전" 탭에 자동 추가
|
|
3. 용어 목록 표시 (알파벳/가나다 순 정렬)
|
|
4. 검색 기능 제공 (용어 하이라이트)
|
|
5. 용어 클릭 시 맥락 기반 설명 표시
|
|
|
|
**입력:**
|
|
- STT 변환 텍스트 (실시간)
|
|
- 전문용어 사전
|
|
- 과거 회의록 및 사내 문서 (RAG)
|
|
|
|
**출력/결과:**
|
|
- 용어사전 탭:
|
|
- 자동 추출된 용어 목록
|
|
- 검색 입력 필드
|
|
- 용어 하이라이트
|
|
- 용어 클릭 시:
|
|
- 용어 설명 모달 또는 패널
|
|
- 맥락 기반 설명 (RAG-020 연동)
|
|
- 관련 회의록 링크
|
|
|
|
**예외처리:**
|
|
- 용어 감지 실패: 빈 용어 목록 표시
|
|
- 검색 결과 없음: "검색 결과가 없습니다" 안내
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-STT-020: 텍스트변환
|
|
- UFR-RAG-020: 맥락기반용어설명
|
|
- UFR-MEET-030: 회의시작
|
|
|
|
---
|
|
|
|
### UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 사용자가 용어사전 탭에서 용어 클릭
|
|
2. RAG 시스템이 다음 정보 검색:
|
|
- 과거 회의록에서 해당 용어 사용 맥락
|
|
- 사내 문서에서 용어 정의 및 설명
|
|
- 업무 이력에서 관련 프로젝트 정보
|
|
3. LLM이 검색된 정보를 기반으로 실용적인 설명 생성:
|
|
- 용어 정의
|
|
- 현재 회의 맥락에서의 의미
|
|
- 관련 회의록 링크
|
|
- 추가 참고 자료
|
|
4. 설명 모달 또는 패널에 표시
|
|
|
|
**입력:**
|
|
- 선택된 용어
|
|
- 현재 회의 컨텍스트
|
|
- 과거 회의록 (벡터 DB)
|
|
- 사내 문서 (벡터 DB)
|
|
|
|
**출력/결과:**
|
|
- 용어 설명 패널:
|
|
- 용어 정의 (간단 명료)
|
|
- 맥락 기반 설명 (현재 회의와 관련)
|
|
- 관련 회의록 링크 (최대 3개)
|
|
- 추가 참고 자료 링크
|
|
- "관련 회의록 보기" 버튼: 회의록 상세 조회 화면으로 이동
|
|
|
|
**예외처리:**
|
|
- 관련 정보 없음: "관련 정보를 찾을 수 없습니다" 안내, 기본 사전 정의 표시
|
|
- RAG 검색 실패: 기본 용어 사전 정의로 대체
|
|
- 네트워크 오류: 캐시된 설명 표시 또는 "설명을 불러올 수 없습니다" 안내
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-RAG-010: 전문용어감지
|
|
- UFR-AI-040: 관련회의록연결
|
|
- UFR-MEET-030: 회의시작
|
|
|
|
---
|
|
|
|
## COLLAB 서비스 (Meeting 서비스에 통합)
|
|
|
|
### UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의록 수정 화면 진입 시 WebSocket 연결
|
|
2. 사용자가 안건 또는 필드 편집 시작
|
|
3. 편집 중 상태를 다른 참석자에게 실시간 브로드캐스트:
|
|
- 편집 중인 안건 ID
|
|
- 편집자 이름 및 아바타
|
|
- 편집 시작 시각
|
|
4. 다른 참석자 화면에 "편집 중" 표시:
|
|
- 안건 카드에 편집자 이름 및 아이콘 표시
|
|
5. 편집 완료 시 변경 내용 저장 및 동기화
|
|
6. 모든 참석자 화면 자동 업데이트
|
|
7. 30초마다 자동 저장
|
|
|
|
**입력:**
|
|
- 편집 시작/종료 이벤트
|
|
- 변경된 필드 및 값
|
|
- 편집자 정보
|
|
|
|
**출력/결과:**
|
|
- 편집 중 표시:
|
|
- 안건 카드 상단: "{이름}님이 편집 중입니다" + 아바타
|
|
- 편집 중인 필드 하이라이트
|
|
- 변경 내용 실시간 동기화:
|
|
- WebSocket을 통한 브로드캐스트
|
|
- 모든 참석자 화면 자동 업데이트
|
|
- 저장 상태 표시: "저장 중...", "저장됨"
|
|
|
|
**예외처리:**
|
|
- WebSocket 연결 끊김: 재연결 시도, "연결이 끊어졌습니다" 안내
|
|
- 동기화 실패: "동기화 중 오류가 발생했습니다" 에러 메시지, 재시도 옵션
|
|
- 네트워크 지연: 로컬 변경 우선 적용, 충돌 시 UFR-COLLAB-020 처리
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-COLLAB-020: 충돌해결
|
|
|
|
---
|
|
|
|
### UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
|
|
|
|
**수행절차:**
|
|
|
|
**안건 기반 충돌 방지 메커니즘:**
|
|
1. **다른 안건 동시 편집**: 충돌 없음
|
|
- 참석자 A가 안건 1 편집
|
|
- 참석자 B가 안건 2 편집
|
|
- 양쪽 모두 정상 저장 및 동기화
|
|
|
|
2. **동일 안건 내 다른 필드 편집**: 자동 병합
|
|
- 참석자 A가 안건 1의 "상세 요약" 편집
|
|
- 참석자 B가 안건 1의 "관련회의록" 편집
|
|
- 양쪽 변경 사항 자동 병합
|
|
|
|
3. **동일 필드 동시 수정**: Last Write Wins
|
|
- 참석자 A와 B가 동시에 안건 1의 "상세 요약" 편집
|
|
- 마지막에 저장된 변경 사항이 적용
|
|
- 덮어쓰기 경고: "다른 사용자가 이미 수정했습니다. 최신 내용을 확인하세요"
|
|
|
|
4. **편집 중 안건 표시**:
|
|
- 다른 사용자가 편집 중인 안건: 편집자 이름 및 아이콘 실시간 표시
|
|
- 편집 시작 시 해당 안건에 "편집 중" 표시 브로드캐스트
|
|
|
|
**입력:**
|
|
- 동시 편집 이벤트
|
|
- 안건 ID, 필드 ID
|
|
- 편집자 정보
|
|
- 변경 내용 및 타임스탬프
|
|
|
|
**출력/결과:**
|
|
- 충돌 방지:
|
|
- 안건 단위 독립 편집
|
|
- 다른 필드 자동 병합
|
|
- 충돌 발생 시:
|
|
- 경고 모달: "다른 사용자가 이미 수정했습니다"
|
|
- 선택 옵션: 최신 내용 확인 / 내 변경 사항 유지
|
|
- 편집 중 표시: "{이름}님이 이 안건을 편집 중입니다" + 아바타
|
|
|
|
**예외처리:**
|
|
- 동일 필드 충돌: Last Write Wins, 경고 표시
|
|
- 병합 실패: "병합 중 오류가 발생했습니다" 에러 메시지, 수동 병합 요청
|
|
- 네트워크 지연으로 충돌 감지 실패: 서버 측에서 최종 검증 및 조정
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-COLLAB-010: 회의록수정동기화
|
|
- UFR-MEET-055: 회의록수정
|
|
|
|
---
|
|
|
|
### UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의록 수정 화면에서 각 안건 검토
|
|
2. 안건 내용 확인 및 수정 (필요 시)
|
|
3. "검증 완료" 토글 클릭
|
|
4. 토글 활성화 → 안건 잠금:
|
|
- 잠금 아이콘 표시
|
|
- 해당 안건 편집 불가 (읽기 전용)
|
|
- 회의 생성자만 잠금 해제 가능
|
|
5. 검증완료율 업데이트:
|
|
- 검증 완료된 안건 수 / 전체 안건 수
|
|
6. 모든 안건 검증 완료 시:
|
|
- 검증완료율 100%
|
|
- "최종 확정" 버튼 활성화
|
|
|
|
**검증 완료 섹션 편집 정책:**
|
|
- **참석자**: 검증 완료된 섹션 편집 불가 (읽기 전용)
|
|
- **회의 생성자**: 잠금 해제 후 편집 가능
|
|
- 잠금 아이콘 클릭
|
|
- 확인 모달: "잠금 해제하시겠습니까?"
|
|
- 승인 시 토글 비활성화 → 편집 가능
|
|
|
|
**입력:**
|
|
- 검증 완료 토글 클릭
|
|
- 잠금 해제 버튼 클릭 (회의 생성자만)
|
|
|
|
**출력/결과:**
|
|
- 검증 완료: 잠금 아이콘 표시, 안건 읽기 전용
|
|
- 검증완료율: "검증 완료 {n}개 / 전체 {m}개 ({percentage}%)"
|
|
- 100% 완료 시: "최종 확정" 버튼 활성화
|
|
- 잠금 해제 (생성자): 토글 비활성화, 편집 가능
|
|
|
|
**예외처리:**
|
|
- 참석자가 잠금 해제 시도: "회의 생성자만 잠금 해제할 수 있습니다" 안내
|
|
- 네트워크 오류: "검증 상태 변경 중 오류가 발생했습니다" 에러 메시지
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-055: 회의록수정
|
|
- UFR-MEET-050: 최종확정
|
|
|
|
---
|
|
|
|
## NOTIFICATION 서비스 (신규)
|
|
|
|
### UFR-NOTI-010: [알림발송] Notification 시스템으로서 | 나는, 사용자에게 중요한 이벤트를 알리기 위해 | 주기적으로 알림 대상을 확인하여 이메일을 발송하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. **알림 대상 생성 (각 서비스에서)**:
|
|
- 알림이 필요한 이벤트 발생 시 Notification 테이블에 레코드 추가
|
|
- 알림 유형, 수신자, 제목, 내용, 발송 예정 시각, 발송 상태
|
|
|
|
2. **알림 대상 폴링 (Notification 서비스)**:
|
|
- 주기적으로 (예: 1분마다) Notification 테이블 조회
|
|
- 조건: 발송 상태 = "대기", 발송 예정 시각 ≤ 현재 시각
|
|
|
|
3. **이메일 발송**:
|
|
- 조회된 알림 대상에 대해 이메일 발송
|
|
- 이메일 템플릿 적용 (알림 유형별)
|
|
- 발송 성공 시 발송 상태 = "발송 완료", 발송 시각 기록
|
|
- 발송 실패 시 재시도 횟수 증가, 최대 3회 재시도
|
|
|
|
4. **알림 유형 및 트리거**:
|
|
- **회의 시작 알림**: 회의 시작 10분 전 참석자에게 알림
|
|
- **회의록 확정**: 회의록 최종 확정 시 모든 참석자에게 알림
|
|
- **참석자 초대**: 회의 중 참석자 초대 시 신규 참석자에게 알림
|
|
- **회의록 수정 알림**: 확정 후 회의록 수정 시 모든 참석자에게 알림 (옵션)
|
|
|
|
**입력:**
|
|
- Notification 테이블 레코드:
|
|
- 알림 유형, 수신자 이메일, 제목, 내용, 발송 예정 시각, 발송 상태
|
|
|
|
**출력/결과:**
|
|
- 이메일 발송:
|
|
- 수신자: 알림 대상의 수신자 이메일
|
|
- 제목: 알림 제목
|
|
- 본문: 알림 내용 (HTML 템플릿 적용)
|
|
- 발송 상태 업데이트:
|
|
- 발송 완료: 상태 = "발송 완료", 발송 시각 기록
|
|
- 발송 실패: 재시도 횟수 증가, 상태 = "발송 대기" (재시도) 또는 "발송 실패" (최대 재시도 초과)
|
|
|
|
**예외처리:**
|
|
- 이메일 발송 실패: 재시도 횟수 증가, 최대 3회 재시도
|
|
- 3회 재시도 실패: 발송 상태 = "발송 실패", 로그 기록
|
|
- 수신자 이메일 없음: 발송 상태 = "수신자 없음", 로그 기록
|
|
- 네트워크 오류: 다음 폴링 주기에 재시도
|
|
|
|
**알림 유형별 템플릿 예시:**
|
|
|
|
**회의 시작 알림**
|
|
- 제목: "[회의록] 10분 후 회의가 시작됩니다"
|
|
- 내용: "{참석자}님, {회의 제목} 회의가 10분 후 시작됩니다.\n- 일시: {날짜} {시간}\n- 장소: {장소}\n\n회의 참여하기: {회의 링크}"
|
|
|
|
**회의록 확정**
|
|
- 제목: "[회의록] 회의록이 최종 확정되었습니다"
|
|
- 내용: "{참석자}님, {회의 제목} 회의록이 최종 확정되었습니다.\n\n회의록 보기: {회의록 링크}"
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-TODO-010: Todo할당
|
|
- UFR-TODO-030: Todo완료처리
|
|
- UFR-MEET-015: 참석자 실시간 초대
|
|
- UFR-MEET-050: 최종확정
|
|
|
|
---
|
|
|
|
# MVP 개선 사항 (v2.3.1)
|
|
|
|
## 회의 참석자 권한 및 기능 단순화
|
|
|
|
### UFR-PART-010: [회의입장] 회의 참석자로서 | 나는, 예정된 회의에 참여하기 위해 | 대시보드에서 "참여하기" 버튼으로 회의에 입장하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 대시보드에서 진행 중 또는 예정된 회의 확인
|
|
2. "참여하기" 버튼 클릭
|
|
3. 회의진행 화면으로 페이지 전환 (같은 탭)
|
|
4. 회의 참석자로 입장 완료
|
|
|
|
**입력:**
|
|
- 회의 ID
|
|
- 사용자 ID
|
|
|
|
**출력/결과:**
|
|
- 회의진행 화면 표시
|
|
- 참석자 목록에 추가
|
|
|
|
**예외처리:**
|
|
- 회의 종료됨: "이미 종료된 회의입니다" 안내
|
|
- 권한 없음: "참석 권한이 없습니다" 안내
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-030: 회의시작
|
|
|
|
---
|
|
|
|
### UFR-PART-020: [AI기반메모작성] 회의 참석자로서 | 나는, 중요한 내용을 메모로 기록하기 위해 | AI가 추천한 주요 내용을 메모 입력창에 추가하고 편집하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의 진행 중 AI가 실시간으로 주요 내용 감지 및 분석
|
|
2. "AI 제안" 탭 하단에 "AI가 감지한 주요 내용" 리스트로 표시
|
|
- 각 항목: "[시간] 주요 내용 텍스트" 형식
|
|
- 예: "[15:32] 예산 책정 관련 결정", "[15:35] 다음 회의 일정 합의"
|
|
3. 참석자가 리스트 항목 선택 시:
|
|
- 메모 입력창에 시간과 함께 자동 입력
|
|
- 입력된 메모는 수정 가능 (자동/수동 구분 표시)
|
|
4. "저장" 버튼 클릭 시 개인 메모로 저장
|
|
- 각 참석자별로 개별 저장
|
|
- 다른 참석자의 메모는 볼 수 없음
|
|
5. 회의 종료 시 AI가 회의록 생성할 때 모든 참석자의 메모 참조
|
|
6. 메모는 회의 종료 전까지만 표시 및 편집 가능
|
|
|
|
**입력:**
|
|
- 회의 ID
|
|
- AI가 실시간 감지한 주요 내용
|
|
- 참석자가 선택하거나 직접 입력한 메모 텍스트
|
|
|
|
**출력/결과:**
|
|
- 메모 입력창: 시간 포함 메모 텍스트
|
|
- AI 추천 리스트: 실시간 업데이트되는 주요 내용 항목들
|
|
- 저장된 개인 메모: 참석자별 개별 저장
|
|
- AI 회의록 생성 시: 모든 참석자의 메모 참조하여 요약 생성
|
|
|
|
**예외처리:**
|
|
- AI 감지 실패: 빈 리스트 표시, 수동 메모 작성은 가능
|
|
- 저장 실패: "메모 저장 중 오류가 발생했습니다" 에러 메시지, 로컬 임시 저장
|
|
- 회의 종료 후: 메모 조회/편집 불가
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-AI-030: 실시간 AI 제안
|
|
- UFR-AI-010: 회의록자동작성 (메모 참조)
|
|
- UFR-MEET-040: 회의종료
|
|
|
|
---
|
|
|
|
### UFR-PART-030: [회의중도퇴장] 회의 참석자로서 | 나는, 회의를 중간에 나가야 할 때 | "나가기" 버튼으로 회의에서 퇴장하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의진행 화면 상단 "나가기" 버튼 클릭
|
|
2. 확인 모달 표시: "회의에서 나가시겠습니까? 회의는 계속 진행됩니다"
|
|
3. 확인 클릭 시 퇴장 이벤트 서버 전송
|
|
4. 대시보드로 페이지 전환
|
|
|
|
**입력:**
|
|
- 회의 ID
|
|
- 사용자 ID
|
|
|
|
**출력/결과:**
|
|
- 대시보드 화면으로 복귀
|
|
- 회의록은 종료 시 공유됨
|
|
|
|
**예외처리:**
|
|
- 네트워크 오류: 로컬 처리 후 재시도
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-030: 회의시작
|
|
|
|
---
|
|
|
|
## 회의 생성자 전용 기능
|
|
|
|
### UFR-HOST-010: [회의종료권한] 회의 생성자로서 | 나는, 회의를 마무리하기 위해 | "회의 종료" 버튼으로만 회의를 종료하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의진행 화면에서 "회의 종료" 버튼은 생성자에게만 표시
|
|
2. 일반 참석자에게는 버튼 숨김 처리
|
|
3. 생성자가 "회의 종료" 클릭 시 회의 종료 프로세스 진행
|
|
|
|
**입력:**
|
|
- 회의 ID
|
|
- 사용자 ID (생성자 여부 확인)
|
|
|
|
**출력/결과:**
|
|
- 생성자: 회의 종료 버튼 표시 및 동작
|
|
- 일반 참석자: 버튼 숨김
|
|
|
|
**예외처리:**
|
|
- 권한 없음: 버튼 미표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-MEET-040: 회의종료
|
|
|
|
---
|
|
|
|
### UFR-HOST-020: [녹음제어권한] 회의 생성자로서 | 나는, 녹음을 관리하기 위해 | 녹음 일시정지/재개/종료 권한을 가지고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 회의진행 화면에서 녹음 제어 버튼은 생성자에게만 표시
|
|
2. 일반 참석자에게는 버튼 숨김 처리
|
|
|
|
**입력:**
|
|
- 회의 ID
|
|
- 사용자 ID (생성자 여부 확인)
|
|
|
|
**출력/결과:**
|
|
- 생성자: 녹음 제어 버튼 표시 및 동작
|
|
- 일반 참석자: 버튼 숨김
|
|
|
|
**예외처리:**
|
|
- 권한 없음: 버튼 미표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-STT-010: 음성녹음인식
|
|
|
|
---
|
|
|
|
## 용어 설명 기능 (MVP 단순화)
|
|
|
|
### UFR-TERM-010: [용어자동감지] 회의 참석자로서 | 나는, 전문용어를 이해하기 위해 | AI가 자동으로 감지한 용어를 "용어" 탭에서 확인하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. AI가 STT 분석 중 중요 용어 자동 감지
|
|
2. "용어" 탭에 실시간으로 표시
|
|
3. 용어 항목 클릭 시 상세 설명 모달 표시
|
|
|
|
**입력:**
|
|
- STT 텍스트
|
|
- 회사 용어 사전 (JSON)
|
|
|
|
**출력/결과:**
|
|
- 용어 목록 표시
|
|
- 회사 용어는 ⭐ 배지 표시
|
|
|
|
**예외처리:**
|
|
- 용어 감지 실패: 빈 목록 표시
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-RAG-010: 전문용어감지 (기존 기능 유지)
|
|
|
|
---
|
|
|
|
### UFR-TERM-020: [회사용어사전] 회의 참석자로서 | 나는, 회사 특화 용어를 정확히 이해하기 위해 | 회사 용어 사전에 등록된 용어를 우선 표시받고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 용어 감지 시 회사 용어 사전(JSON) 먼저 확인
|
|
2. 사전에 있으면 회사 특화 설명 + ⭐ 표시
|
|
3. 사전에 없으면 AI가 일반 설명 + 회의 맥락 제공
|
|
|
|
**입력:**
|
|
- 용어
|
|
- 회사 용어 사전 (terms-dictionary.json)
|
|
- 회의 맥락
|
|
|
|
**출력/결과:**
|
|
- 회사 용어: 정의 + 맥락 + ⭐
|
|
- 일반 용어: AI 설명
|
|
|
|
**예외처리:**
|
|
- 사전 로드 실패: AI 설명으로 대체
|
|
|
|
**관련 유저스토리:**
|
|
- UFR-RAG-020: 맥락기반용어설명 (기존 기능 유지)
|
|
|
|
---
|
|
|
|
### UFR-TERM-030: [용어관리] 관리자로서 | 나는, 회사 특화 용어를 관리하기 위해 | 용어 사전을 등록/수정하고 싶다.
|
|
|
|
**수행절차:**
|
|
1. 관리자 페이지에서 용어 사전 관리
|
|
2. JSON 파일 직접 편집 또는 관리 UI 사용
|
|
3. 용어 추가/수정/삭제
|
|
|
|
**입력:**
|
|
- 용어명
|
|
- 정의
|
|
- 맥락
|
|
- 카테고리
|
|
|
|
**출력/결과:**
|
|
- terms-dictionary.json 업데이트
|
|
|
|
**예외처리:**
|
|
- 권한 없음: "관리자 권한이 필요합니다" 안내
|
|
|
|
---
|
|
|
|
## 기존 유저스토리 수정
|
|
|
|
### UFR-MEET-040 수정 (회의종료권한)
|
|
**기존**: "회의 생성자 또는 참석자가 회의 종료 버튼을 눌러 회의를 종료한다"
|
|
**변경**: "회의 생성자만 '회의 종료' 버튼으로 회의를 종료할 수 있다"
|
|
**적용 위치**: [UFR-MEET-040: 회의종료](#ufr-meet-040-회의종료)
|
|
|
|
---
|
|
|
|
### UFR-MEET-030 개선 (회의 진입 경로)
|
|
**변경**: 대시보드에서 회의 진행 화면 진입 경로 명확화
|
|
- **경로 1**: 대시보드 → "바로시작" FAB 버튼 → 템플릿 선택 → 회의 진행
|
|
- **경로 2**: 대시보드 → 진행 중 회의 "참여하기" 버튼 → 회의 진행
|
|
**적용 위치**: [UFR-MEET-030: 회의시작](#ufr-meet-030-회의시작)
|
|
|
|
---
|
|
|
|
### UFR-AI-040 개선 (관련회의록연결)
|
|
|
|
**변경 및 개선 사항**:
|
|
1. **최대 개수**: 5개 → 3개로 축소 (MVP)
|
|
2. **관련도 표시 방식**: 배지(높음/중간/낮음) → 퍼센트(95%, 78%)로 변경
|
|
3. **유사 내용 요약 추가** (신규):
|
|
- AI가 추천한 각 회의록에서 현재 회의와 유사한 부분 자동 추출
|
|
- 유사한 내용을 3-5개 문장으로 요약하여 표시
|
|
- 전체 회의록을 열지 않아도 핵심 내용 파악 가능
|
|
- "전체 회의록 보기" 버튼으로 상세 내용 확인
|
|
4. **성능 최적화**:
|
|
- 과거 회의록 저장 시 요약본 미리 생성 (배치 처리)
|
|
- 실시간 요약은 캐싱된 데이터 활용
|
|
- 성능 목표: 1초 이내 표시
|
|
|
|
**적용 위치**: [UFR-AI-040: 관련회의록연결](#ufr-ai-040-관련회의록연결)
|
|
|
|
---
|
|
|
|
## 문서 이력
|
|
|
|
| 버전 | 날짜 | 작성자 | 변경 내용 |
|
|
|------|------|--------|-----------|
|
|
| v2.4.0 | 2025-10-27 | 팀 전체 | • MVP 스코프 축소: Todo 관리 기능 제거<br>• AI 요약 기능 통합 및 단순화<br>• UFR-USER-020 수정: 대시보드에서 "나의 Todo" 제거, "작성중 회의록" 추가<br>• UFR-PART-020 변경: AI주요내용체크 → AI기반메모작성 (메모 입력창 + AI 추천)<br>• UFR-AI-010 개선: 회의록 생성 시 참석자 메모 참조<br>• UFR-MEET-055 개선: 회의록 수정 시 실시간 협업 제거, 검증완료 체크로 보호<br> - 프로토타입 UI 개선: 안건별 검증완료 UI 단순화 (참석자: 체크박스만, 생성자: 검증완료 시 잠금해제 버튼)<br>• TODO 서비스 전체 제거 (UFR-TODO-010/030/040)<br>• NOTIFICATION 서비스: Todo 관련 알림 제거<br>• 네비게이션 간소화: Todo 관리 메뉴 제거 (대시보드, 회의록만 유지)<br>• UFR-MEET-030 개선: AI 제안 탭 내 개인 메모 작성 기능 명확화 (수동 저장만), 하단 고정 버튼 역할별 차별화 (생성자: 일시정지/재개+종료, 참석자: 나가기)<br>• UFR-AI-035 삭제: 섹션AI요약 제거 (중복 기능)<br>• UFR-AI-036 개선: AI 한줄요약 확인 및 재생성 기능 통합<br> - 회의 종료 시: 자동 생성 (읽기 전용)<br> - 회의록 수정 시: 텍스트 편집 영역 내용 기반 재생성 기능 추가<br> - "AI 상세요약" → "AI 요약"으로 명칭 변경<br> - 회의록 상세조회 화면의 대시보드 및 회의록 탭에 한줄요약 표시<br> - 프로토타입 UI 개선: AI 재생성 버튼 스타일 통일 (btn-secondary → btn-primary)<br>• UFR-COLLAB-030 개선: 안건 기반 충돌 방지 메커니즘 (검증완료 체크로 보호)|
|
|
| v2.3.1 | 2025-10-27 | 팀 전체 | • MVP 개선: 회의 참석자 권한 단순화<br>• 신규 유저스토리: UFR-PART-010/020/030 (참석자 공통), UFR-HOST-010/020 (생성자 전용)<br>• 신규 유저스토리: UFR-TERM-010/020/030 (용어 기능 MVP 단순화)<br>• UFR-MEET-040 수정: 회의 종료 권한 생성자 전용으로 명확화<br>• UFR-MEET-030 개선: 회의 진입 경로 2가지 명시 (바로시작, 참여하기)<br>• UFR-AI-040 개선: 관련 회의록 유사 내용 요약 추가 (최대 3개, 퍼센트 표시, 3-5문장 요약)<br>• 메모 기능 단순화: 체크박스 방식으로 변경<br>• 용어 설명 단순화: JSON 용어 사전 방식 도입 |
|
|
| v2.3.0 | 2025-10-24 | 이미준 | • 프로토타입 분석을 통한 유저스토리 전면 재정비<br>• 신규 유저스토리 추가: UFR-MEET-015 (참석자 실시간 초대), UFR-NOTI-010 (알림 발송)<br>• 알림 아키텍처 폴링 방식으로 통일 (실시간 발송 → 주기적 폴링)<br>• 10개 프로토타입 화면 반영 완료<br>• 마이크로서비스 구성 재정의 (User, Meeting, STT, AI, Notification)<br>• 기존 24개 유저스토리 ID 승계 및 정리 |
|
|
| v2.2.0 | 2025-10-23 | 이미준 | 이전 버전 |
|