hgzero/design/userstory.md
yabo0812 c1ac9f1728 유저스토리 v2.1.3 업데이트 - 회의록 목록 생성자 표시 기능 추가
UI/UX 설계 및 프로토타입 개선
- 회의록 목록 조회 화면에 생성자 표시 (👑 아이콘) 추가
- 스타일 가이드에 creator-badge 스타일 정의 추가
- 프로토타입 12-회의록목록조회.html 및 common.css 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 15:36:06 +09:00

58 KiB
Raw Permalink Blame History

AI기반 회의록 작성 및 이력 관리 개선 서비스 - 유저스토리 (v2.1.2)


차별화 전략

본 서비스는 다음과 같은 차별화 포인트를 통해 경쟁 우위를 확보합니다:

1. 기본 기능 (Hygiene Factors)

  • STT(Speech To Text): 음성을 텍스트로 변환하는 기본 기능
    • 시장의 대부분 서비스가 제공하는 기능으로 차별화 포인트가 아님
    • 필수 기능이지만 경쟁 우위를 가져다주지 않음

2. 핵심 차별화 포인트 (Differentiators)

  • 맥락 기반 용어 설명: 단순 용어 설명을 넘어, 관련 회의록과 업무이력을 바탕으로 실용적인 정보 제공
  • 강화된 Todo 연결: Action item이 담당자의 Todo와 실시간으로 연결되고, 진행 상황이 회의록에 자동 반영
  • 섹션 AI 요약 재생성: 버튼 클릭으로 작성한 섹션 내용을 AI가 요약 (2-3문장, 2-5초 처리)
  • 지능형 회의 진행 지원: 회의 패턴 분석을 통한 안건 추천, 효율성 분석 및 개선 제안

마이크로서비스 구성

  1. User - 사용자 인증 (LDAP 연동, JWT 토큰 발급/검증)
  2. Meeting - 회의, 회의록, Todo, 실시간 협업 통합 관리
    • 회의 관리: 회의 예약, 시작, 종료
    • 회의록 관리: 회의록 생성, 수정, 확정
    • Todo 관리: Todo 할당, 진행 상황 추적, 회의록 양방향 연결
    • 실시간 협업: WebSocket 기반 실시간 동기화, 버전 관리, 충돌 해결
    • 템플릿 관리: 회의록 템플릿 관리
    • 통계 생성: 회의 및 Todo 통계
  3. STT - 음성 스트리밍 처리, 실시간 음성-텍스트 변환 (기본 기능)
  4. AI - AI 기반 회의록 자동화, Todo 추출, 지능형 검색 (RAG 통합)
    • LLM 기반 회의록 자동 작성
    • Todo 자동 추출 및 담당자 식별
    • 섹션 AI 요약 재생성 (버튼 클릭 시 요약 생성)
    • 관련 회의록 자동 연결 (벡터 유사도 검색)
    • 전문용어 자동 감지 및 맥락 기반 설명 생성 (RAG)
    • 과거 회의록 및 사내 문서 검색
    • 업무 이력 통합
  5. Notification - 알림 발송 및 리마인더 관리

유저스토리

1. User 서비스
1) 사용자 인증 관리
AFR-USER-010: [사용자관리] 시스템 관리자로서 | 나는, 서비스 보안을 위해 | 사용자 인증 기능을 원한다.
- 시나리오: 사용자 인증 관리
  사용자가 로그인을 시도한 상황에서 | 사번과 비밀번호를 입력하면 | LDAP 연동을 통해 인증이 완료되고 권한에 따라 서비스에 접근할 수 있다.
  - [ ] 사용자 인증 (사번, 비밀번호)
  - [ ] 세션 관리
- M/8

---

AFR-USER-020: [대시보드] 사용자로서 | 나는, 회의록 서비스의 주요 정보를 한눈에 파악하기 위해 | 대시보드를 통해 요약 정보를 확인하고 싶다.
- 시나리오: 대시보드 조회
  로그인 후 대시보드에 접근하면 | 예정된 회의, 진행 중 Todo, 최근 회의록 등 주요 정보가 표시되고 | 플로팅 액션 버튼을 통해 새 회의를 시작하거나 예약할 수 있다.

  **변경사항 (논리 아키텍처)**:
  - 프론트엔드가 Meeting Service에 직접 API 요청하여 회의, Todo, 회의록 정보 조회
  - User Service는 인증만 담당 (JWT 토큰 검증)
  - 모든 API 요청에 사용자 정보(userId, userName, email) 포함

  [대시보드 주요 위젯]
  - 사용자 인사말 (이름 표시)
  - 통계 카드:
    - 예정된 회의 개수
    - 진행 중 Todo 개수
    - Todo 완료율 (%)
  - 최근 회의 섹션:
    - 회의 제목
    - 회의 일시
    - 회의 장소
    - 참석자 수
    - 회의 상태 (진행중/예정/확정완료)
    - 참여하기/보기 버튼
    - 전체 보기 링크 (회의록 목록으로 이동)
  - 할당된 Todo 섹션:
    - Todo 목록 (최대 3개)
    - 전체 보기 링크 (Todo 관리로 이동)
    - Todo 없을 시 안내 메시지
  - 내 회의록 섹션:
    - 작성한 회의록 목록 (최대 3개)
    - 전체 보기 링크
    - 회의록 없을 시 안내 메시지

  [플로팅 액션 버튼 (FAB)]
  - 메인 FAB 버튼 (+)
  - 클릭 시 확장 메뉴 표시:
    - 🚀 새 회의 시작
    - 📅 회의 예약
  - 우측 하단 고정 위치

  [네비게이션]
  - 좌측 사이드바 (데스크톱):
    - 로고 및 서비스명
    - 📊 대시보드
    - 📋 회의 목록
    - ✅ Todo 관리
    - 사용자 프로필 (이름, 이메일)
  - 하단 탭 바 (모바일):
    - 🏠 홈
    - 📋 회의록
    - ✅ Todo

  [처리 결과]
  - 사용자별 맞춤 대시보드 표시
  - 실시간 통계 업데이트
  - 반응형 레이아웃 (모바일/태블릿/데스크톱)

- M/8

---

2. Meeting 서비스 (회의, 회의록, Todo, 실시간 협업 통합)
1) 회의 준비 및 관리
UFR-MEET-010: [회의예약] 회의 생성자로서 | 나는, 회의를 효율적으로 준비하기 위해 | 회의를 예약하고 참석자를 초대하고 싶다.
- 시나리오: 회의 예약 및 참석자 초대
  회의 예약 화면에 접근한 상황에서 | 회의 제목, 날짜/시간, 장소, 참석자 목록을 입력하고 예약 버튼을 클릭하면 | 회의가 예약되고 참석자에게 초대 이메일이 자동 발송된다.

  [입력 요구사항]
  - 회의 제목: 최대 100자 (필수)
  - 날짜/시간: 날짜 및 시간 선택 (필수)
  - 장소: 최대 200자 (선택)
  - 참석자 목록: 이메일 주소 입력 (최소 1명 필수)

  [처리 결과]
  - 회의가 예약됨 (회의 ID 생성)
  - 일정이 캘린더에 자동 등록됨
  - 참석자에게 초대 이메일 발송됨
  - 회의 시작 30분 전 리마인더 자동 발송

- M/13

---

UFR-MEET-020: [템플릿선택] 회의 생성자로서 | 나는, 회의록을 효율적으로 작성하기 위해 | 회의 유형에 맞는 템플릿을 선택하고 싶다.
- 시나리오: 회의록 템플릿 선택
  회의 시작 전 템플릿 선택 화면에 접근한 상황에서 | 제공되는 템플릿 중 하나를 선택하고 커스터마이징하면 | 회의록 도구가 준비된다.

  [템플릿 유형]
  - 일반 회의: 기본 구조 (참석자, 안건, 논의 내용, 결정 사항, Todo)
  - 스크럼 회의: 어제 한 일, 오늘 할 일, 이슈
  - 프로젝트 킥오프: 프로젝트 개요, 목표, 일정, 역할, 리스크
  - 주간 회의: 주간 실적, 주요 이슈, 다음 주 계획

  [커스터마이징 옵션]
  - 섹션 추가/삭제
  - 섹션 순서 변경
  - 기본 항목 설정

  [처리 결과]
  - 선택된 템플릿으로 회의록 도구가 준비됨

- S/5

---

UFR-MEET-030: [회의시작] 회의 생성자로서 | 나는, 회의를 시작하고 회의록을 작성하기 위해 | 회의를 시작하고 음성 녹음을 준비하고 싶다.
- 시나리오: 회의 시작
  예약된 회의 시간에 회의 시작 버튼을 클릭한 상황에서 | 회의 ID를 확인하고 시작하면 | 회의 세션이 생성되고 음성 녹음이 준비된다.

  [회의 시작 조건]
  - 예약된 회의가 존재함
  - 회의 시작 시간 10분 전부터 회의 시작 버튼 활성화
  - 회의 생성자가 시작 권한을 가짐
  - 이미 시작된 회의일 경우, 진행중으로 표시

  [처리 결과]
  - 회의 세션이 생성됨 (세션 ID)
  - 음성 녹음 준비 완료
  - 참석자 목록 표시
  - 회의 시작 시간 기록
  - 실시간 회의록 주요 항목 추천

- M/8

---

2) 회의 종료 및 완료
UFR-MEET-040: [회의종료] 회의 생성자로서 | 나는, 회의를 종료하고 회의록을 정리하기 위해 | 회의를 종료하고 요약 내용을 확인한 후 다음 단계를 선택하고 싶다.
- 시나리오: 회의 종료
  회의가 진행 중인 상황에서 | 회의 종료 버튼을 클릭하면 | 음성 녹음이 중지되고 AI가 회의 전체 내용을 요약 정리한다.

  [회의 종료 처리]
  - 음성 녹음 즉시 중지
  - 회의 종료 시간 기록
  - AI가 회의 전체 내용 처리
    - STT로 텍스트화된 회의 전체 내용을 주요 안건으로 요약 정리
    - 회의 예약 시 선택한 템플릿 반영
    - 회의 진행 시 저장한 주요 메모 항목 반영
  - 회의 통계 자동 생성
    - 회의 총 시간
    - 참석자 수
    - 주요 키워드

  [처리 결과]
  - 회의가 종료됨
  - AI 요약 내용 전체 표시
    - 안건별 AI 한줄 요약
    - 안건별 상세 요약 정리
    - Todo 자동 추출 결과
  - 회의 통계 표시
  - 회의 종료 화면은 확인 전용 (편집 불가)
    - 안건 내용 수정 불가
    - Todo 수정 불가
    - 확인만 가능
  - 사용자에게 다음 단계 선택 옵션 제공
    - 옵션 1: 회의록 수정 화면으로 이동 (회의록 확정을 위한 편집)
    - 옵션 2: 바로 최종 확정 (AI가 잘 정리한 경우)
    - 옵션 3: 대시보드로 이동 (회의록 상태: 작성중)

  [회의록 상태]
  - 옵션 1 선택 시: 작성중 상태에서 수정 화면으로 이동
  - 옵션 2 선택 시:
    - 모든 안건 자동 검증 완료 처리
    - 회의록 상태: 확정완료
    - 확정 시간 기록
    - 참석자에게 확정 알림 발송
  - 옵션 3 선택 시: 작성중 상태로 저장되며, 추후 회의록 목록에서 편집 가능

  [Policy/Rule]
  - 회의 종료 화면에서는 내용을 확인만 가능하며 편집 불가
  - 바로 최종 확정 시 모든 안건이 자동으로 검증 완료 처리됨

- M/8

---

UFR-MEET-050: [최종확정] 회의 생성자로서 | 나는, 회의록을 완성하기 위해 | 모든 안건을 검증하고 최종 회의록을 확정하고 싶다.

- 시나리오 1: 회의록 수정 화면에서 최종 확정
  회의록 수정 화면에서 | 모든 안건을 검증하고 확정 버튼을 클릭하면 | 필수 항목과 안건 검증 상태가 검사되고 최종 버전이 생성된다.

  [필수 항목 검사]
  - 회의 제목 입력 여부
  - 참석자 목록 작성 여부
  - 주요 논의 내용 작성 여부 (안건별)
  - 결정 사항 작성 여부
  - 모든 안건 검증 완료 여부

  [안건 검증 요구사항]
  - 각 안건별로 검증 완료 처리 필요
  - 검증률 = 검증 완료된 안건 수 / 전체 안건 수
  - 검증률이 100%가 되어야 최종 확정 가능
  - 검증되지 않은 안건이 있으면 확정 불가

  [처리 결과]
  - 최종 회의록 확정됨 (확정 버전 번호)
  - 확정 시간 기록
  - 회의록 확정 상태로 전환
  - 참석자에게 확정 알림 발송
  - Todo 항목은 이미 추출되어 있음 (UFR-AI-020에서 처리)

  [필수 항목 미작성 시]
  - 누락된 항목 안내 메시지 표시
  - 해당 섹션으로 자동 이동

  [안건 미검증 시]
  - 검증되지 않은 안건 목록 표시
  - 검증률 표시 (예: 70% - 7개 중 5개 검증 완료)
  - 미검증 안건으로 자동 이동

- 시나리오 2: 회의 종료 화면에서 바로 최종 확정
  회의 종료 화면에서 | AI가 정리한 내용을 확인하고 "바로 최종 확정" 버튼을 클릭하면 | 모든 안건이 자동으로 검증 완료 처리되고 회의록이 확정된다.

  [바로 확정 처리]
  - 필수 항목 자동 충족 (AI가 이미 생성)
    - 회의 제목: 회의 예약 정보
    - 참석자 목록: 회의 참석자 정보
    - 주요 논의 내용: AI가 안건별로 생성
    - 결정 사항: AI가 안건별로 추출
  - 모든 안건 자동 검증 완료 처리
    - 검증률 100% 자동 설정
    - 각 안건별 검증 완료 상태로 변경
    - 검증자: 회의록 생성자
    - 검증 시간: 확정 시간

  [처리 결과]
  - 최종 회의록 확정됨 (확정 버전 번호)
  - 확정 시간 기록
  - 모든 안건 검증 완료 상태
  - 회의록 확정 상태로 전환
  - 참석자에게 확정 알림 발송
  - 회의록 수정 화면을 거치지 않고 바로 확정 완료

  [Policy/Rule]
  - 회의 종료 화면에서 바로 확정 시 AI 생성 내용 그대로 사용
  - 모든 안건 자동 검증 완료 처리
  - 추후 회의록 수정 필요 시 회의록 목록에서 편집 가능

- M/13

---

UFR-MEET-046: [회의록목록조회] 회의 참석자로서 | 나는, 참여한 회의록들을 효율적으로 관리하기 위해 | 회의록 목록을 조회하고 필터링하고 싶다.
- 시나리오: 회의록 목록 조회 및 필터링
  대시보드에서 "회의록" 메뉴를 클릭하면 | 회의록 목록이 표시되고 | 다양한 필터와 검색으로 원하는 회의록을 찾을 수 있다.

  [화면 정보]
  - 화면번호: 12-회의록목록조회
  - 프로토타입: design/uiux/prototype/12-회의록목록조회.html
  - 데이터 소스: common.js → SAMPLE_MINUTES 배열 (30개 샘플 데이터)

  [데이터 구조]
  - **데이터 레이어**: common.js의 SAMPLE_MINUTES 배열
  - **뷰 레이어**: 12-회의록목록조회.html (동적 렌더링)
  - **렌더링 방식**: JavaScript로 SAMPLE_MINUTES 데이터를 동적으로 HTML로 생성
  - **샘플 데이터 분포**: 총 30개 (작성중 13개, 확정완료 17개)

  [회의록 목록 조회]
  - 회의록 상태별 필터링: 전체 / 작성중 / 확정완료
  - 정렬 옵션: 최근수정순 / 최근회의순 / 제목순
  - 참여 유형 필터: 참석한 회의 / 생성한 회의 (다중 선택 가능)
  - 검색 기능: 회의 제목, 참석자, 키워드로 검색
  - 통계 표시: 전체 개수, 작성중 개수, 확정완료 개수
  - 페이지네이션: 초기 10개 표시, "10개 더보기" 버튼으로 추가 로드
  - 목록 표시 정보:
    - 회의 제목
    - 회의 일시
    - 참석자 수
    - 회의록 상태 (작성중/확정완료)
    - 검증 완료율 (작성중인 경우, %)
    - 생성자 표시 (👑 아이콘)
    - 마지막 수정 시간

  [처리 결과]
  - 필터/정렬/검색 조건에 맞는 회의록 목록 표시
  - 회의록 클릭 시 상세 조회 화면으로 이동
  - 모바일/태블릿/데스크톱 반응형 레이아웃
  - 실시간 통계 업데이트

- M/8

---

UFR-MEET-047: [회의록상세조회] 회의 참석자로서 | 나는, 지난 회의록의 상세 정보와 전체 내용을 | 한눈에 확인하고 싶다.
- 시나리오: 회의록 상세 정보 조회
  회의록 목록에서 특정 회의록을 클릭하면 | 해당 회의의 기본 정보와 섹션별 상세 내용이 표시되고 | 필요한 경우 수정작업을 수행할 수 있다.

  [화면 정보]
  - 화면번호: 10-회의록상세조회
  - 프로토타입: design/uiux/prototype/10-회의록상세조회.html

  [회의 기본 정보 표시]
  - 회의 제목
  - 회의 일시 (날짜 및 시간, 소요 시간)
  - 참석자 목록 (아바타 표시, 역할 구분: 생성자/참석자)
  - 회의 장소 (온라인/오프라인)
  - 회의록 상태 (작성중/확정완료)
  - 생성자 및 최종 수정 시간

  [섹션별 상세 내용 표시]
  - 각 섹션 구분 표시 (번호, 제목)
  - 섹션별 검증 상태 표시 (검증완료 배지)
  - AI 요약 섹션:
    - 섹션별 AI 요약 내용
    - 생성/수정 시간 표시
    - 편집 버튼 (수정 권한이 있는 경우)
  - 상세 내용 섹션:
    - 논의 사항 (리스트 형태)
    - 결정 사항 (리스트 형태)
    - 일정 정보 (있는 경우)
    - 리소스 정보 (있는 경우)
  - 관련 회의록 섹션:
    - 관련도 높은 회의록 최대 3개 표시
    - 각 회의록별 정보: 제목, 날짜, 관련도 %, 요약 내용
    - 클릭 시 해당 회의록으로 이동

  [탭 네비게이션]
  - **탭 구성**: 대시보드 / 회의록 (2개 탭)
  - **기본 노출**: 대시보드 탭 우선 노출
  - **탭 전환**: 클릭 시 콘텐츠 전환, URL 변경 없음
  - **대시보드 탭 내용**:
    - 핵심내용 (주요 포인트 요약)
    - 결정사항
    - Todo 진행상황
    - 관련회의록
  - **회의록 탭 내용**:
    - 섹션별 상세 내용
    - AI 요약
    - 관련회의록

  [부가 기능]
  - 회의록 수정 버튼 (수정 권한이 있는 경우만 활성화)
  - 뒤로가기 버튼 (회의록 목록으로 복귀)
  - 더보기 메뉴 (다운로드, 삭제 등)

  [처리 결과]
  - 모바일/태블릿/데스크톱 반응형 레이아웃
  - 긴 내용은 적절한 단락 구분 및 여백 적용
  - 페이지 로딩 시 스크롤 위치는 최상단
  - 관련 회의록 자동 표시

  [권한별 표시]
  - 조회 권한만 있는 경우: 수정 버튼 비활성화
  - 수정 권한이 있는 경우: 수정 버튼 활성화

- M/8

---

UFR-MEET-055: [회의록수정] 회의 참석자로서 | 나는, 검증이 완료되지 않았거나 수정이 필요한 | 지난 회의록을 수정하고 싶다.
- **화면번호**: 11-회의록수정
- 시나리오: 지난 회의록 수정
  회의록 상세 화면에서 수정 버튼을 클릭하면 | 회의록 수정 화면으로 이동하고 | 내용을 수정할 수 있다.

  [진입 경로]
  - 10-회의록상세조회 화면 → 하단 액션 바 "수정" 버튼 클릭
  - 권한이 있는 경우에만 "수정" 버튼 활성화

  [수정 가능 항목]
  - ✅ **회의 제목**: 수정 가능
  - ❌ **회의 일시**: 수정 불가 (readonly, 회의 예약 화면에서만 변경 가능)
  - ❌ **회의 장소**: 수정 불가 (readonly, 회의 예약 화면에서만 변경 가능)
  - ✅ **참석자 목록**: 회의 생성자만 추가/삭제 가능
    - 05-회의진행 화면과 동일한 UI 제공
    - 참석자 추가: 이메일 입력 후 초대 버튼
    - 참석자 삭제: 각 참석자 옆 × 버튼 (회의 생성자는 삭제 불가)
  - ✅ **섹션별 AI 요약**: AI 재생성 버튼으로 수정 가능
  - ✅ **섹션별 내용**: 마크다운 에디터로 수정 가능
  - ✅ **관련회의록**: 추가/삭제 가능
  - ❌ **검증완료 섹션**: 회의 생성자만 잠금 해제 후 수정 가능 (참석자는 수정 불가)
  - 🔄 **회의록 상태**: 수정 시 자동으로 '작성중'으로 변경 (사용자 직접 변경 불가)

  [수정 기능]
  - 수정 중 자동 저장 (30초 간격)
  - 저장 상태 표시 (저장됨/저장 중)
  - 수정 이력 관리 (v2.0 고도화 예정)

  [처리 결과]
  - 수정 내용 즉시 반영
  - 수정 시간 업데이트
  - 확정완료 상태였던 경우 → 작성중 상태로 변경
  - 취소 시 이전 상태로 복원

  [권한 제어]
  **검증완료 전 (작성중/초안 상태)**
  - 모든 참석자가 회의록 수정 가능
  - 모든 섹션 편집 가능 (검증완료 섹션 없음)
  - 참석자 관리: 회의 생성자만 가능

  **검증완료 후**
  - 회의 생성자만 회의록 수정 가능
  - 참석자는 "수정" 버튼 비활성화 (조회만 가능)
  - 검증완료 섹션: 회의 생성자만 잠금 해제 후 수정 가능
  - 수정 시 회의록 상태는 '작성중'으로 자동 변경 (재검증 필요)

- M/13

---

3. STT 서비스 (음성 인식 및 변환 - 기본 기능)
1) 음성 인식 및 변환
UFR-STT-010: [음성녹음인식] 회의 참석자로서 | 나는, 발언 내용이 자동으로 기록되기 위해 | 음성이 실시간으로 녹음되고 인식되기를 원한다.
- 시나리오: 음성 실시간 인식
  회의가 시작된 상황에서 | 참석자가 발언을 시작하면 | 음성이 실시간으로 텍스트로 변환된다.

  [음성 스트리밍 처리]
  - 오디오 스트림 실시간 캡처
  - 회의 ID와 연결
  - **음성 파일은 저장하지 않음** (실시간 스트리밍만 처리)

  [음성 인식 처리]
  - AI 음성인식 엔진 연동 (Azure Speech 등)
  - 실시간 텍스트 변환
  - 타임스탬프 기록

  [처리 결과]
  - 음성 스트리밍이 시작됨 (세션 ID)
  - 텍스트가 변환됨 (세그먼트 ID, 텍스트, 타임스탬프)
  - 실시간으로 텍스트 변환 요청 (UFR-STT-020 연동)
  - **음성 파일은 저장되지 않고 스트리밍만 처리됨**
  - **화자 식별 기능 없음** (단순 텍스트 변환만)

  [성능 요구사항]
  - 음성 인식 지연 시간: 1초 이내
  - 변환 정확도: 85% 이상

  [비고]
  - STT는 기본 기능으로 경쟁사 대부분이 제공하는 기능임
  - 차별화 포인트가 아닌 필수 기능

- M/21

---

UFR-STT-020: [텍스트변환] 회의록 시스템으로서 | 나는, 인식된 발언을 회의록에 기록하기 위해 | 음성을 텍스트로 변환하고 싶다.
- 시나리오: 음성-텍스트 변환
  발언이 인식된 상황에서 | AI 음성인식 엔진에 텍스트 변환을 요청하면 | 음성이 텍스트로 변환되고 정확도와 함께 반환된다.

  [텍스트 변환 처리]
  - 인식된 발언 데이터 전달
  - 언어 설정 (한국어, 영어 등)
  - AI 음성인식 엔진 처리
  - 문장 부호 자동 추가
  - 숫자/날짜 형식 정규화

  [처리 결과]
  - 텍스트가 변환됨 (텍스트 ID)
  - 변환된 내용 (원문 텍스트)
  - 정확도 점수 (0-100%)
  - AI 회의록 자동 작성 요청 (UFR-AI-010 연동)

  [정확도 낮은 경우]
  - 정확도 60% 미만 시 경고 표시
  - 수동 수정 인터페이스 제공

  [비고]
  - STT는 기본 기능으로 차별화 포인트가 아님

- M/13

---

4. AI 서비스 (AI 기반 회의록 자동화, Todo 추출, 지능형 검색 - RAG 통합)
1) AI 회의록 작성
UFR-AI-010: [회의록자동작성] 회의 참석자로서 | 나는, 회의록 작성 부담을 줄이기 위해 | AI가 발언 내용을 실시간으로 정리하고 회의 종료 시 전체 안건을 요약하기를 원한다.

- 시나리오 1: 실시간 AI 주요 메모 작성 (회의 진행 중)
  텍스트가 변환된 상황에서 | LLM에 실시간 회의록 작성을 요청하면 | AI가 주요 메모 항목을 실시간으로 추천한다.

  [실시간 AI 처리 과정]
  - 변환된 텍스트와 회의 맥락(제목, 참석자) 분석
  - 회의 내용 이해
    - 중요 키워드 추출
    - 주요 발언 식별
  - 주요 메모 항목 추천
    - 구어체 → 문어체 변환
    - 불필요한 표현 제거
    - 문법 교정

  [실시간 처리 결과]
  - AI 주요 메모 항목 추천 (실시간)
  - 회의 참석자가 필요한 항목만 선택하여 저장
  - 참석자에게 실시간 동기화 (UFR-COLLAB-010 연동)

  [Policy/Rule]
  - 텍스트 변환되면 자동으로 주요 메모 항목 추천
  - 실시간 업데이트 (3-5초 간격)
  - 회의 진행 중에는 주요 메모 항목만 표시하여 회의 집중도 향상

- 시나리오 2: 회의 종료 시 전체 안건 요약
  회의가 종료된 상황에서 | LLM에 전체 회의록 요약을 요청하면 | AI가 회의 전체 내용을 주요 안건으로 요약 정리한다.

  [회의 종료 시 AI 처리 과정]
  - STT로 텍스트화된 회의 전체 내용 분석
  - 회의 예약 시 선택한 템플릿 정보 반영
  - 회의 진행 시 저장한 주요 메모 항목 반영
  - 회의 내용을 주요 안건으로 분류 및 요약
    - 안건별 주제 식별
    - 안건별 핵심 내용 정리
    - 발언자별 의견 정리
    - 결정 사항 및 보류 사항 구분
  - 안건별 구조화
    - 편집 불가능한 AI 한줄 요약 생성
    - 편집 가능한 상세 요약 정리 생성

  [회의 종료 시 처리 결과]
  - 주요 안건별 회의록 초안 생성
  - 각 안건별 구조화된 내용
    - AI 한줄 요약 (편집 불가)
    - 상세 요약 정리 (편집 가능)
    - 논의 주제
    - 발언자별 의견
    - 결정 사항
    - 보류 사항
  - 회의록 수정 화면에서 안건별 편집 및 검증 가능

- M/34

---

2) Todo 자동 추출
UFR-AI-020: [Todo자동추출] 회의 참석자로서 | 나는, 회의 후 실행 사항을 명확히 하기 위해 | AI가 안건별 내용에서 Todo 항목을 자동으로 추출하고 기본값을 설정하기를 원한다.
- 시나리오: AI Todo 자동 추출
  회의록 수정 화면에서 | 각 안건의 내용을 분석하여 Todo 자동 추출을 요청하면 | 액션 아이템이 식별되고 기본값이 자동으로 설정된다.

  [AI 분석 과정]
  - 안건별 상세 내용 분석
  - 액션 아이템 식별
    - "~하기로 함", "~까지 완료", "~담당" 등 키워드 탐지
    - 명령형 문장 분석
    - 마감일 언급 추출
  - 담당자 자동 식별
    - 발언 내용 기반 ("제가 하겠습니다", "~님이 담당")
    - 직책/역할 기반 매칭
    - 과거 회의록 패턴 학습

  [처리 결과]
  - Todo가 자동 추출됨
  - 추출된 항목 수
  - 각 Todo별 정보
    - Todo 내용
    - 담당자 (기본값: 회의록 생성자)
    - 마감일 (기본값: 다음 회의 날짜 또는 오늘)
    - 우선순위 (기본값: 보통)
    - 관련 안건 링크
  - Todo 서비스에 자동 전달 (UFR-TODO-010 연동)
  - 회의록 수정 화면에서 Todo 편집 가능

  [기본값 설정 규칙]
  - 담당자
    - AI가 식별한 담당자가 있으면 해당 담당자
    - 식별 실패 시: 회의록 생성자
  - 마감일
    - 회의록에 마감일이 언급된 경우: 해당 날짜
    - 언급되지 않았지만 다음 회의 날짜가 있는 경우: 다음 회의 날짜
    - 둘 다 없는 경우: 오늘 날짜
  - 우선순위
    - 회의록에 우선순위가 언급된 경우: 해당 우선순위
    - 언급되지 않은 경우: 보통

  [Todo 독립성]
  - Todo는 회의록 확정 상태와 무관하게 완료 처리 가능
  - 회의록이 작성중 상태여도 Todo 진행 가능
  - Todo 완료 상태는 회의록에 실시간 반영

- M/21

---

3) 섹션 AI 요약 재생성 (신규, 차별화 포인트)
UFR-AI-035: [섹션AI요약] 회의 참석자로서 | 나는, 작성한 섹션 내용을 쉽게 요약하기 위해 | 버튼 클릭으로 AI가 섹션 내용을 요약해주기를 원한다.
- 시나리오: 섹션 AI 요약 재생성
  회의록 작성/수정 중에 | 특정 섹션의 "AI 재생성" 버튼을 클릭하면 | AI가 해당 섹션 내용을 분석하여 2-3문장의 요약을 자동 생성한다.

  [사용 시점]
  - 회의록 작성 중 각 섹션 완료 시
  - 회의록 수정 중 섹션 내용 변경 후
  - 기존 요약이 부적절하다고 판단될 때

  [AI 처리 과정]
  - 회의 맥락 조회 (선택적)
    - 회의 제목, 참석자, 안건 파악
  - 섹션 내용 파싱
    - 논의사항 추출
    - 결정사항 추출
    - 보류사항 추출
  - 핵심 내용 식별
    - 중요도 평가
    - 키워드 추출
  - 요약 생성
    - 2-3문장으로 압축
    - 논의→결정 흐름 반영
    - 명확한 문장 구성

  [처리 결과]
  - 생성된 AI 요약 (2-3문장, 150자 이내)
  - 생성 시간 기록
  - 사용자는 생성된 요약을 다시 수정 가능

  [Policy/Rule]
  - 섹션 내용이 변경되면 요약도 재생성 가능
  - 이전 요약은 이력으로 보관
  - 처리 시간 2-5초 (빠른 응답)
  - 프롬프트 입력 불필요 (자동 처리)

- M/21

---

UFR-AI-036: [AI한줄요약] 회의 참석자로서 | 나는, 각 안건의 핵심을 빠르게 파악하기 위해 | AI가 생성한 편집 불가능한 한줄 요약을 확인하고 싶다.
- 시나리오: AI 한줄 요약 제공
  회의 종료 시 | AI가 안건별 전체 내용을 요약하면 | 각 안건마다 편집 불가능한 한줄 요약과 편집 가능한 상세 요약이 함께 생성된다.

  [AI 처리 과정]
  - 안건별 전체 내용 분석
  - 핵심 메시지 추출
    - 가장 중요한 논의 사항
    - 최종 결정 또는 결론
    - 핵심 키워드
  - 한 문장 요약 생성
    - 30자 이내 간결한 표현
    - 논의→결정 핵심 반영
    - 명확하고 이해하기 쉬운 문장

  [처리 결과]
  - AI 한줄 요약 (편집 불가)
    - 각 안건의 최상단에 표시
    - 읽기 전용으로 고정
    - 안건의 핵심을 한눈에 파악 가능
  - 상세 요약 정리 (편집 가능)
    - AI 한줄 요약 하단에 표시
    - 사용자가 자유롭게 편집 가능
    - 논의 주제, 발언자별 의견, 결정 사항 포함

  [Policy/Rule]
  - AI 한줄 요약은 회의 종료 시 1회 생성
  - 생성 후에는 편집 불가 (원본 보존)
  - 상세 요약 정리는 사용자가 자유롭게 수정 가능
  - 회의록 수정 화면(11-회의록수정)에서 표시

- M/21

---

4) 관련 회의록 자동 연결 (신규, 차별화 포인트)
UFR-AI-040: [관련회의록연결] 회의 참석자로서 | 나는, 이전 회의 내용을 쉽게 참조하기 위해 | AI가 같은 폴더 내 관련 있는 과거 회의록을 자동으로 찾아 연결해주기를 원한다.
- 시나리오: 관련 회의록 자동 연결
  회의록이 작성되는 상황에서 | AI가 회의 주제와 내용을 분석하면 | 같은 폴더 내 유사한 주제의 과거 회의록을 찾아 자동으로 연결한다.

  [AI 분석 과정]
  - 현재 회의록 주제 및 키워드 추출
  - 벡터 유사도 검색
    - 과거 회의록 DB에서 검색
    - 주제 유사도 계산
  - 관련도 점수 계산 (0-100%)
  - 같은 폴더 내 상위 5개 회의록 선정

  [연결 기준]
  - 주제 유사도 70% 이상
  - 동일 참석자가 50% 이상
  - 키워드 3개 이상 일치
  - 시간적 연관성 (후속 회의, 분기별 회의 등)

  [처리 결과]
  - 관련 회의록 목록 생성
  - 각 회의록별 정보
    - 제목
    - 날짜
    - 참석자
    - 관련도 점수
    - 연관 키워드
  - 회의록 상단에 "관련 회의록" 섹션 자동 추가
  - 클릭 시 해당 회의록으로 이동

  [Policy/Rule]
  - 관련도 70% 이상만 자동 연결
  - 최대 5개까지 표시

- S/13

---

5. AI 서비스 (지능형 검색 - RAG 기능, AI Service에 통합됨)
1) 맥락 기반 용어 설명 (강화)
UFR-RAG-010: [전문용어감지] 회의 참석자로서 | 나는, 업무 지식이 없어도 회의록을 정확히 작성하기 위해 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명을 제공받고 싶다.
- 시나리오: 맥락 기반 전문용어 자동 감지
  회의록이 작성되는 상황에서 | 시스템이 회의록 텍스트를 분석하면 | 전문용어가 자동으로 감지되고 맥락에 맞는 설명이 준비된다.

  **변경사항 (논리 아키텍처)**:
  - AI Service에 RAG 기능 통합
  - RAG와 AI 모두 LLM 기반 처리로 긴밀하게 연동
  - 동일한 벡터 임베딩 모델 및 LLM 공유 가능
  - 회의록 자동 작성 시 용어 설명이 병렬 처리되어 효율적

  [전문용어 감지 처리]
  - 회의록 텍스트 실시간 분석
  - 용어 사전과 비교
    - 조직별 전문용어 DB
    - 산업별 표준 용어 DB
  - 신뢰도 계산 (0-100%)
  - 감지된 용어 위치 기록

  [처리 결과]
  - 전문용어가 감지됨
  - 감지된 용어 정보
    - 용어명
    - 감지 위치 (줄 번호, 문단)
    - 신뢰도 점수
  - 용어 하이라이트 표시
  - 맥락 기반 설명 자동 생성 (UFR-RAG-020 연동)

  [Policy/Rule]
  - 신뢰도 70% 이상만 자동 감지
  - 중복 용어는 첫 번째만 하이라이트

  [비고]
  - 단순 용어 설명이 아닌 맥락 기반 실용적 정보 제공이 차별화 포인트

- S/13

---

UFR-RAG-020: [맥락기반용어설명] 회의 참석자로서 | 나는, 전문용어를 맥락에 맞게 이해하기 위해 | 관련 회의록과 업무 이력을 바탕으로 실용적인 설명을 제공받고 싶다.
- 시나리오: 맥락 기반 용어 설명 자동 제공
  전문용어가 감지된 상황에서 | RAG 시스템이 관련 문서를 검색하면 | 과거 회의록 및 업무 이력에서 맥락에 맞는 실용적인 설명이 생성되어 제공된다.

  [RAG 검색 수행]
  - 벡터 유사도 검색
    - 과거 회의록 검색 (동일 용어 사용 사례)
    - 사내 문서 저장소 검색 (위키, 매뉴얼, 보고서)
    - 업무 이력 검색 (프로젝트 문서, 이메일 등)
  - 관련 문서 추출 (관련도 점수순)
  - 최대 5개 문서 선택

  [맥락 기반 설명 생성]
  - 검색된 문서 내용 분석
  - 용어 정의 추출
  - 실제 사용 사례 추출
  - 현재 회의 맥락에 맞는 설명 생성
    - 간단한 정의 (1-2문장)
    - 이 회의에서의 의미 (맥락 기반)
    - 관련 프로젝트/이슈 연결
    - 과거 논의 요약 (언제, 누가, 어떻게 사용했는지)
    - 참조 출처 링크

  [처리 결과]
  - 맥락 기반 용어 설명이 생성됨 (설명 ID)
  - 설명 내용
    - 간단한 정의
    - 맥락 기반 상세 설명
    - 실제 사용 사례
    - 관련 프로젝트/이슈
    - 과거 회의록 링크 (최대 3개)
    - 사내 문서 링크
  - 툴팁 또는 사이드 패널로 표시
  - 설명 제공 시간 기록

  [설명을 찾지 못한 경우]
  - "관련 정보를 찾을 수 없습니다" 메시지 표시
  - 전문가(회의 참석자)에게 설명 요청 버튼 제공
  - 수동 입력된 설명은 용어 사전에 자동 저장

  [비고]
  - **차별화 포인트**: 단순 용어 설명이 아닌, 조직 내 실제 사용 맥락과 이력을 제공
  - 업무 지식이 없어도 실질적인 도움을 받을 수 있음

- S/21

---

6. Meeting 서비스 (실시간 협업 - Meeting Service에 통합됨)
1) 실시간 협업
UFR-COLLAB-010: [회의록수정동기화] 회의 참석자로서 | 나는, 회의록을 함께 검증하기 위해 | 회의록을 수정하고 실시간으로 다른 참석자와 동기화하고 싶다.
- 시나리오: 회의록 실시간 수정 및 동기화
  회의록 초안이 작성된 상황에서 | 참석자가 회의록 내용을 수정하면 | 수정 사항이 버전 관리되고 웹소켓을 통해 모든 참석자에게 즉시 동기화된다.

  **변경사항 (논리 아키텍처)**:
  - Meeting Service에 실시간 협업 기능 통합
  - WebSocket, 버전 관리, 충돌 해결이 Meeting Service 내부에서 처리됨
  - 서비스 간 통신 오버헤드 제거, 성능 향상

  [회의록 수정 처리]
  - 수정 내용 검증
    - 수정 권한 확인
    - 수정 범위 제한 (잠긴 섹션은 수정 불가)
  - 수정 이력 저장
    - 수정자
    - 수정 시간
    - 수정 전/후 내용
    - 수정 위치
  - 버전 관리
    - 새 버전 번호 생성
    - 이전 버전 보관

  [실시간 동기화]
  - 웹소켓을 통해 수정 델타 전송
    - 전체 내용이 아닌 변경 부분만 전송 (효율성)
  - 모든 참석자 화면에 실시간 반영
  - 수정자 표시 (이름)
  - 수정 영역 하이라이트 (3초간)

  [처리 결과]
  - 참석자가 회의록을 수정함 (수정 ID)
  - 수정 사항이 동기화됨
  - 동기화 시간
  - 영향받은 참석자 목록
  - 수정 완료될 때마다 수정된 내용이 메일로 알림이 발송된다. (알림 여부 설정 가능)

  [Policy/Rule]
  - 회의록 수정 시 웹소켓을 통해 모든 참석자에게 즉시 동기화

- M/34

---

UFR-COLLAB-020: [충돌해결] 회의 참석자로서 | 나는, 동시 수정 상황에서도 내용을 잃지 않기 위해 | 안건별로 충돌 없이 편집하고 싶다.
- 시나리오: 안건별 동시 편집 충돌 방지
  여러 참석자가 회의록을 동시에 수정하는 상황에서 | 각자 다른 안건을 편집하면 | 충돌 없이 실시간으로 저장되고 동기화된다.

  [안건 기반 충돌 방지]
  - 안건 단위 잠금 메커니즘
    - 각 안건은 독립적인 편집 단위
    - 참석자 A가 안건 1 편집 시, 다른 참석자는 안건 2, 3 등 편집 가능
    - 동일 안건 동시 편집 시에만 충돌 처리
  - 편집 중 안건 표시
    - 다른 참석자가 현재 편집 중인 안건 실시간 표시
    - 편집자 이름과 프로필 아이콘 표시
    - "○○○님이 편집 중" 메시지

  [동일 안건 동시 편집 시 충돌 감지]
  - 동일 안건 동시 수정 탐지
    - 필드 단위 비교 (제목, 상세 내용, Todo 등)
    - 버전 기반 충돌 확인
  - 충돌 정보 생성
    - 충돌 안건
    - 관련 수정자 2명
    - 각자의 수정 내용

  [충돌 해결 방식]
  - 필드별 자동 병합 (기본)
    - 다른 필드 편집 시: 자동 병합 (충돌 없음)
    - 예: A가 제목 수정, B가 상세 내용 수정 → 둘 다 반영
  - Last Write Wins (동일 필드 수정 시)
    - 동일 필드 동시 수정 시: 가장 최근 수정이 우선
    - 이전 수정은 버전 이력에 보관
    - 덮어쓰인 사용자에게 알림
  - 수동 병합 (선택)
    - 충돌 내용 비교 UI 표시
    - 사용자가 최종 내용 선택
    - A 선택 / B 선택 / 직접 작성

  [처리 결과]
  - 안건별 독립 편집으로 충돌 최소화
  - 충돌 발생 시:
    - 충돌이 감지됨 (충돌 ID)
    - 충돌 안건 및 필드
    - 관련 수정자
    - 충돌이 해결됨
    - 해결 방법 (자동 병합 / Last Write Wins / 수동 병합)
    - 최종 내용
  - 해결된 내용 실시간 동기화

  [Policy/Rule]
  - 안건 단위 독립 편집으로 충돌 최소화
  - 동일 안건 내 다른 필드 수정 시 자동 병합
  - 동일 필드 동시 수정 시 Last Write Wins 적용

- M/21

---

UFR-COLLAB-030: [검증완료] 회의 참석자로서 | 나는, 회의록의 정확성을 보장하기 위해 | 각 안건을 검증하고 완료 표시를 하고 싶다.
- 시나리오: 안건별 회의록 검증 완료
  회의록 수정 화면에서 안건 내용을 확인한 상황에서 | 참석자가 안건별 검증 완료 버튼을 클릭하면 | 검증 상태가 업데이트되고 다른 참석자에게 동기화된다.

  [검증 처리]
  - 검증자 정보 기록
  - 검증 시간 기록
  - 검증 대상 안건 기록
  - 안건별 검증 상태 업데이트
    - 미검증 → 검증 완료
  - 전체 검증률 계산
    - 검증률 = 검증 완료된 안건 수 / 전체 안건 수
    - 회의록 목록에서 검증률 표시 (예: 70%)

  [안건 잠금 기능]
  - 회의 생성자만 잠금/해제 가능
  - 안건 검증 완료 시 잠금 가능 (선택)
  - 잠긴 안건은 회의 생성자만 잠금 해제 후 수정 가능
  - 참석자는 검증완료된 안건을 읽기 전용으로만 확인 가능

  [처리 결과]
  - 안건 검증이 완료됨
  - 검증자 정보
  - 검증 상태 (검증 완료)
  - 완료 시간
  - 전체 검증률 업데이트
  - 검증 완료 상태 실시간 동기화
  - 검증 배지 표시 (체크 아이콘)
  - 모든 안건 검증 완료 시 전체 메일로 알림 발송

  [통합 화면]
  - 11-회의록수정 화면에서 안건별 검증 처리
  - 별도의 06-검증완료 화면 불필요
  - 안건별 편집 영역에 검증 완료 버튼 제공

  [Policy/Rule]
  - 안건별 검증 완료 시 해당 안건 잠금 가능
  - 모든 안건 검증 완료 시 회의록 최종 확정 가능 (UFR-MEET-050)

- M/8

---

7. Meeting 서비스 (Todo 관리 - Meeting Service에 통합됨, 차별화 포인트)
1) 실시간 Todo 연결 (강화)
UFR-TODO-010: [Todo할당] Todo 시스템으로서 | 나는, AI가 추출한 Todo를 담당자에게 전달하기 위해 | Todo를 실시간으로 할당하고 회의록과 연결하고 싶다.
- 시나리오: Todo 실시간 할당 및 회의록 연결
  AI가 Todo를 추출한 상황에서 | 시스템이 Todo를 등록하고 담당자를 지정하면 | Todo가 실시간으로 할당되고 회의록의 해당 위치와 연결되며 담당자에게 즉시 알림이 발송된다.

  **변경사항 (논리 아키텍처)**:
  - Meeting Service에 Todo 관리 기능 통합
  - Todo와 회의록이 동일 트랜잭션 내에서 처리 가능
  - 회의록-Todo 양방향 연결이 내부 메서드 호출로 처리됨 (10배 빠름)

  [Todo 등록]
  - Todo 정보 저장
    - Todo ID 생성
    - Todo 내용
    - 담당자 (AI 자동 식별 또는 수동 지정)
    - 마감일 (언급된 경우 자동 설정, 없으면 수동 설정)
    - 우선순위 (높음/보통/낮음)
    - 관련 회의록 링크 (섹션 위치 포함)

  [회의록 실시간 연결]
  - 회의록 해당 섹션에 Todo 뱃지 표시
  - Todo 클릭 시 Todo 상세 정보 표시
  - 양방향 연결 (Todo → 회의록, 회의록 → Todo)

  [알림 발송]
  - 담당자에게 즉시 알림
    - 이메일
  - 알림 내용
    - Todo 내용
    - 마감일
    - 회의록 링크 (해당 섹션으로 바로 이동)

  [캘린더 연동]
  - 마감일이 있는 경우 캘린더에 자동 등록
  - 마감일 3일 전 리마인더 일정 생성

  [처리 결과]
  - Todo가 할당됨 (Todo ID)
  - 담당자 정보
  - 마감일
  - 할당 시간
  - 회의록 연결 정보 (섹션 ID, 타임스탬프)
  - 담당자에게 알림이 발송됨
  - 캘린더 등록 완료

  [Policy/Rule]
  - Todo 할당 시 담당자에게 즉시 알림 발송
  - 회의록과 실시간 양방향 연결

  [비고]
  - **차별화 포인트**: Todo와 회의록의 강력한 연결, 원문 맥락 추적 가능

- M/13

---

UFR-TODO-030: [Todo완료처리] Todo 담당자로서 | 나는, 완료된 Todo를 처리하고 회의록에 반영하기 위해 | Todo를 완료하고 회의록에 자동 반영하고 싶다.
- 시나리오: Todo 완료 처리 및 회의록 자동 반영
  Todo 작업이 완료된 상황에서 | 담당자가 완료 버튼을 클릭하면 | Todo가 완료 상태로 변경되고 연결된 회의록에 완료 상태가 실시간으로 반영된다.

  [완료 처리]
  - 완료 시간 자동 기록
  - 완료자 정보 저장
  - 완료 상태로 변경
  - 완료 여부 확인 다이얼로그 표시

  [회의록 실시간 반영]
  - 관련 회의록의 Todo 섹션 자동 업데이트
  - 완료 표시 (체크 아이콘)
  - 완료 시간 기록
  - 완료자 정보 표시

  [알림 발송]
  - 완료 알림
  - 모든 Todo 완료 시 전체 완료 알림

  [처리 결과]
  - Todo가 완료됨
  - 완료 시간
  - 완료자 정보
  - 회의록에 완료 상태가 반영됨
  - 반영 시간
  - 회의록 버전 업데이트

  [Policy/Rule]
  - Todo 완료 시 회의록에 완료 상태 즉시 반영
  - 모든 Todo 완료 시 완료 알림

  [비고]
  - **차별화 포인트**: Todo 완료가 회의록에 실시간 반영되어 회의 결과 추적 용이

- M/8

---

UFR-TODO-040: [Todo관리] Todo 담당자로서 | 나는, 나의 Todo를 효율적으로 관리하기 위해 | Todo 목록을 조회하고 상태를 변경하고 편집하고 싶다.
- 시나리오: Todo 관리 화면 조회 및 관리
  09-Todo관리 화면에 접근하면 | 나의 Todo(내가 담당자인 Todo) 목록이 표시되고 | 필터링, 상태 변경, 편집이 가능하다.

  [화면 정보]
  - 화면번호: 09-Todo관리
  - 프로토타입: design/uiux/prototype/09-Todo관리.html

  [대전제]
  - Todo의 상태는 완료/미완료만 존재
  - 09-Todo관리 화면에서는 나의 Todo(내가 담당자인 Todo)만 표시

  [화면 구성]
  **1. 상단 통계 블록**
  - 전체: 미완료 전체 개수
  - 마감임박: 기한 3일 이내 미완료 개수
  - 지연: 기한이 지난 미완료 개수

  **2. 필터링 기준**
  - 전체(개수): 완료/미완료 전체
  - 지연(개수): 기한이 지난 미완료
  - 마감임박(개수): 기한 3일 이내 미완료
  - 완료(개수): 완료된 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

---

## 논리 아키텍처 반영 사항 요약

### 1. 마이크로서비스 구성 변경 (v2.0)

**변경 전 (v1.0)**: 8개 마이크로서비스
- User, Meeting, STT, AI, RAG, Collaboration, Todo, Notification

**변경 후 (v2.0)**: 5개 마이크로서비스
- User, Meeting, STT, AI, Notification

### 2. 주요 변경사항

#### 2.1 User Service 역할 변경
- **변경 전**: 사용자 인증 및 권한 관리, 대시보드 정보 제공
- **변경 후**: 사용자 인증 전용 (LDAP 연동, JWT 토큰 발급/검증)
- **이유**:
  - 프론트엔드가 모든 API 요청에 사용자 정보(userId, userName, email) 포함
  - User Service 동기 호출 제거 → 성능 향상, 장애 격리
  - 네트워크 지연 제거 (~100ms 개선)

#### 2.2 Meeting Service 통합
- **통합 서비스**: Meeting + Collaboration + Todo
- **핵심 기능**:
  - 회의 관리: 회의 예약, 시작, 종료
  - 회의록 관리: 회의록 생성, 수정, 확정
  - Todo 관리: Todo 할당, 진행 상황 추적, 회의록 양방향 연결
  - 실시간 협업: WebSocket 기반 실시간 동기화, 버전 관리, 충돌 해결
- **이점**:
  - 서비스 간 통신 오버헤드 제거
  - Todo와 회의록이 동일 트랜잭션 내에서 처리 가능
  - 일관성 향상, 개발 효율성 증가
  - 내부 메서드 호출로 처리 속도 10배 향상

#### 2.3 AI Service 통합
- **통합 서비스**: AI + RAG
- **핵심 기능**:
  - LLM 기반 회의록 자동 작성
  - Todo 자동 추출 및 담당자 식별
  - 섹션 AI 요약 재생성 (버튼 클릭 시 요약 생성)
  - 관련 회의록 자동 연결 (벡터 유사도 검색)
  - 전문용어 자동 감지 및 맥락 기반 설명 생성 (RAG)
  - 과거 회의록 및 사내 문서 검색
- **이점**:
  - RAG와 AI 모두 LLM 기반 처리로 긴밀하게 연동
  - 동일한 벡터 임베딩 모델 및 LLM 공유 가능
  - 회의록 자동 작성 시 용어 설명이 병렬 처리되어 효율적
  - 서비스 개수 감소로 운영 복잡도 감소

### 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

#### 3.3 기능적 변경
- **AFR-USER-020 (대시보드)**:
  - 프론트엔드가 Meeting Service에 직접 API 요청
  - User Service는 인증만 담당

### 4. 성능 개선 효과

| 항목 | 개선 전 | 개선 후 | 효과 |
|------|---------|---------|------|
| User Service 동기 호출 | ~100ms | 제거 | 네트워크 지연 제거 |
| Todo 처리 | 서비스 간 통신 | 내부 메서드 호출 | 10배 빠름 |
| 실시간 동기화 | 서비스 간 REST API | Meeting 내부 처리 | 지연 감소 |
| 서비스 개수 | 8개 | 5개 | 운영 복잡도 감소 |

### 5. 차별화 전략 유지

논리 아키텍처 변경에도 불구하고 차별화 포인트는 그대로 유지됩니다:

- ✅ **맥락 기반 용어 설명**: AI Service에서 RAG 기능 통합 제공
- ✅ **강화된 Todo 연결**: Meeting Service에서 더 강력한 통합 제공
- ✅ **프롬프팅 기반 회의록 개선**: AI Service에서 계속 제공
- ✅ **지능형 회의 진행 지원**: AI Service에서 계속 제공

---

## 문서 이력

| 버전 | 작성일 | 작성자 | 변경 내용 |
|------|--------|--------|----------|
| 1.0 | 2025-01-20 | 도그냥 (서비스 기획자) | 초안 작성 (8개 마이크로서비스) |
| 2.0 | 2025-01-22 | 길동 (아키텍트) | 논리 아키텍처 반영 (5개 마이크로서비스로 단순화) |
| 2.0.1 | 2025-10-23 | 강지수 (Product Designer) | 공유 기능 제거 반영 <br>- AFR-USER-020: 대시보드 "공유받은 회의록" 섹션 제거<br>- UFR-MEET-046: 회의록 목록 카테고리 필터 "공유받은 회의" 제거 |
| 2.0.2 | 2025-10-23 | 강지수, 도그냥 | Todo 수정 기능 추가 (UFR-TODO-040)<br>- 회의록 확정 전/후 Todo 수정 기능 추가<br>- 권한별 수정 범위: 담당자(본인 Todo만), 회의 생성자(모든 Todo)<br>- 수정 항목: 제목, 담당자, 마감일, 우선순위<br>- 09-Todo관리, 11-회의록수정 화면에서 수정 가능 |
| 2.0.3 | 2025-10-23 | 강지수 (Product Designer) | 회의록 수정 항목 정책 명확화 (UFR-MEET-055)<br>- 회의 일시/장소: readonly 처리 (회의 예약 화면에서만 변경 가능)<br>- 참석자 관리: 회의 생성자만 추가/삭제 가능 (11-회의록수정 화면에서 직접 관리)<br>- 참석자 UI: 05-회의진행 화면과 동일한 방식으로 구현<br>- 프로토타입: 11-회의록수정.html에 참석자 관리 섹션 추가 |
| 2.0.4 | 2025-10-23 | 강지수 (Product Designer) | 검증완료 섹션 잠금해제 정책 단순화<br>- **정책 변경**: 검증완료 섹션은 회의 생성자만 잠금 해제 후 수정 가능 (참석자는 수정 불가)<br>- **제거**: 참석자용 잠금해제 요청 기능 완전 제거 (공수 절감)<br>- UFR-MEET-055: 권한 제어 명확화 (생성자만 잠금 해제 가능)<br>- UFR-COLLAB-030: 섹션 잠금 기능 설명 업데이트<br>- 프로토타입 11-회의록수정.html: 잠금해제요청 버튼 제거, 검증완료 섹션 읽기 전용 표시 |
| 2.0.5 | 2025-10-23 | 강지수 (Product Designer), 도그냥 (Service Planner) | Todo 및 회의록 관련 요구사항 재정의<br>- **UFR-TODO-040 (09-Todo관리)**: "Todo수정" → "Todo관리" 기능 확장<br>  - 통계 블록 재정의: 전체(미완료), 마감임박(3일 이내), 지연(기한 경과)<br>  - 필터링: 전체, 지연, 마감임박, 완료 (각 필터에 개수 표시)<br>  - 체크박스 확인 모달: 완료/미완료 전환 시 확인<br>  - 권한: 담당자 본인 OR 회의 생성자만 편집 가능<br>- **UFR-MEET-047 (10-회의록상세조회)**: 탭 순서 및 기본 노출 변경<br>  - 탭 구성: 대시보드 / 회의록<br>  - 기본 노출: 대시보드 탭 우선 노출 (기존: 회의록 우선)<br>- **UFR-MEET-055 (11-회의록수정)**: 진입 경로 및 권한 제어 명확화<br>  - 진입 경로: 10-회의록상세조회 → "수정" 버튼 클릭<br>  - 권한 제어: 검증완료 전(모든 참석자), 검증완료 후(회의 생성자만)<br>  - 회의 일시/장소: 읽기 전용 표시 명시 |
| 2.1.0 | 2025-10-24 | 강지수 (Product Designer) | 회의 종료 후 워크플로우 개선 및 안건 기반 회의록 구조 도입<br>- **UFR-MEET-040 (회의종료)**: 회의 종료 시 사용자 선택 옵션 제공<br>  - AI가 STT 텍스트를 주요 안건으로 요약 정리 (템플릿 및 메모 항목 반영)<br>  - 종료 후 선택: 회의록 수정 화면 이동 OR 대시보드 이동<br>  - 회의록 상태: 작성중으로 저장<br>- **UFR-AI-010 (회의록자동작성)**: 실시간 + 종료 시 이중 처리 방식<br>  - 시나리오 1: 실시간 AI 주요 메모 작성 (회의 진행 중)<br>  - 시나리오 2: 회의 종료 시 전체 안건 요약 (AI 한줄 요약 + 상세 요약)<br>- **UFR-AI-020 (Todo자동추출)**: Todo 기본값 정책 추가<br>  - 담당자 기본값: 회의록 생성자<br>  - 마감일 기본값: 다음 회의 날짜 OR 오늘<br>  - 우선순위 기본값: 보통<br>  - Todo 독립성: 회의록 확정 상태와 무관하게 완료 처리 가능<br>- **UFR-AI-036 (AI한줄요약)**: 신규 유저스토리 추가<br>  - 각 안건별 편집 불가능한 AI 한줄 요약 (30자 이내)<br>  - 편집 가능한 상세 요약과 함께 제공<br>- **UFR-MEET-050 (최종확정)**: 안건 검증 요구사항 추가<br>  - 모든 안건 검증 완료 시 최종 확정 가능<br>  - 검증률 = 검증 완료된 안건 수 / 전체 안건 수<br>- **UFR-COLLAB-030 (검증완료)**: 안건별 검증으로 변경<br>  - 섹션 검증 → 안건별 검증<br>  - 11-회의록수정 화면에서 안건별 검증 처리<br>  - 06-검증완료 화면 불필요 (11-회의록수정에 통합) |
| 2.1.1 | 2025-10-24 | 강지수 (Product Designer) | 회의 종료 화면 정책 명확화 및 실시간 협업 충돌 방지 개선<br>- **UFR-MEET-040 (회의종료)**: 회의 종료 화면 정책 및 옵션 추가<br>  - 회의 종료 화면은 확인 전용 (편집 불가) 명시<br>  - 안건별 AI 요약 전체 표시 (한줄 요약 + 상세 요약 + Todo)<br>  - 옵션 추가: "바로 최종 확정" (옵션 2)<br>  - 3가지 선택 옵션: 회의록 수정 / 바로 최종 확정 / 대시보드 이동<br>- **UFR-COLLAB-020 (충돌해결)**: 안건 기반 충돌 방지 메커니즘 강화<br>  - 안건 단위 독립 편집으로 충돌 최소화<br>  - 다른 안건 동시 편집 시 충돌 없음<br>  - 동일 안건 내 다른 필드 편집 시 자동 병합<br>  - 동일 필드 동시 수정 시에만 Last Write Wins 적용<br>  - 편집 중 안건 실시간 표시 (편집자 이름 및 아이콘)<br>- **UFR-MEET-050 (최종확정)**: 회의 종료 화면 바로 확정 시나리오 추가<br>  - 시나리오 2: 회의 종료 화면에서 바로 최종 확정<br>  - 바로 확정 시 모든 안건 자동 검증 완료 처리<br>  - 필수 항목 자동 충족 (AI 생성 내용 활용)<br>  - 회의록 수정 화면 거치지 않고 바로 확정 완료 |
| 2.1.2 | 2025-10-24 | 강지수 (Product Designer) | 역할 용어 통일 및 권한 체계 명확화<br>- **용어 통일**: "회의록 작성자" → "회의 생성자" 또는 "회의 참석자"로 명확히 구분<br>  - 생성자 권한 필요: UFR-MEET-010 (회의예약), UFR-MEET-020 (템플릿선택), UFR-MEET-030 (회의시작), UFR-MEET-040 (회의종료), UFR-MEET-050 (최종확정)<br>  - 참석자 권한: UFR-MEET-046 (목록조회), UFR-MEET-047 (상세조회), UFR-AI-010~040 (AI 기능), UFR-RAG-010~020 (RAG 기능)<br>- **역할 정의**:<br>  - 생성자: 회의 예약을 생성한 사람 (특별 권한: 참석자 관리, 회의 시작/종료, 최종 확정)<br>  - 참석자: 회의에 참여하는 전체 인원 (생성자 포함, 기본 권한: 안건 편집, 검증, Todo 관리)<br>- **권한 체계 명확화**:<br>  - 회의록 상세 조회 화면: 역할 표시 "생성자/참석자"로 변경<br>  - Todo 편집 권한: 담당자 본인 OR 회의 생성자 |
| 2.1.3 | 2025-10-24 | 강지수 (Product Designer) | 회의록 목록 조회 화면 생성자 표시 기능 추가 (UFR-MEET-046)<br>- **목록 표시 정보 추가**: 생성자 표시 (👑 아이콘)<br>  - 현재 사용자가 회의 생성자인 경우 회의록 카드에 👑 아이콘 표시<br>  - 아이콘 크기: 16px, title 속성 "생성자"로 툴팁 제공<br>- **UI/UX 설계서 업데이트**: 12-회의록목록조회 화면 UI 구성요소 명세 추가<br>- **스타일 가이드 업데이트**: creator-badge 스타일 추가 (배지 섹션)<br>- **프로토타입 수정**: 12-회의록목록조회.html, common.css<br>  - createMeetingCard() 함수: creatorBadge 변수 추가 및 렌더링<br>  - common.css: .creator-badge 스타일 정의 |

---