diff --git a/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md b/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md deleted file mode 100644 index eed679f..0000000 --- a/claude/유저스토리_변경사항_보고서_v2.2.0에서_v2.3.0.md +++ /dev/null @@ -1,454 +0,0 @@ -# 유저스토리 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/prototype/10-회의록상세조회.html b/design/uiux/prototype/10-회의록상세조회.html index 9a198b2..d133819 100644 --- a/design/uiux/prototype/10-회의록상세조회.html +++ b/design/uiux/prototype/10-회의록상세조회.html @@ -107,11 +107,41 @@ margin-bottom: var(--space-md); } + /* 회의 제목 컨테이너 */ + .meeting-title-container { + display: flex; + flex-direction: column; + gap: var(--space-sm); + margin-bottom: var(--space-md); + } + + /* 배지 영역 (배지 + 크라운) */ + .meeting-badges { + display: flex; + align-items: center; + gap: var(--space-xs); + } + + /* 회의 제목 */ .meeting-basic-info h2 { font-size: var(--font-h2); font-weight: var(--font-weight-bold); color: var(--gray-900); - margin-bottom: var(--space-sm); + margin: 0; + line-height: 1.3; + } + + /* 데스크톱: 기존 가로 배치 유지 */ + @media (min-width: 768px) { + .meeting-title-container { + flex-direction: row; + align-items: center; + gap: var(--space-sm); + } + + .meeting-basic-info h2 { + margin: 0; + } } .info-row { @@ -165,23 +195,6 @@ .participant { width: calc(50% - var(--space-md) / 2); } - - /* 통계 그리드: 모바일에서도 4열 유지, gap만 축소 */ - .stats-grid { - gap: var(--space-xs); - } - - .stat-item { - padding: var(--space-sm); - } - - .stat-value { - font-size: var(--font-base); - } - - .stat-label { - font-size: var(--font-xs); - } } /* 회의록 섹션 */ @@ -279,22 +292,6 @@ margin-bottom: var(--space-md); } - .reference-item { - background: var(--white); - border-radius: var(--radius-md); - padding: var(--space-sm); - margin-bottom: var(--space-sm); - cursor: pointer; - transition: all var(--transition-fast); - } - - .reference-item:hover { - box-shadow: var(--shadow-sm); - } - - .reference-item:last-child { - margin-bottom: 0; - } .reference-header { display: flex; @@ -310,7 +307,7 @@ .reference-title { flex: 1; - font-size: var(--font-small); + font-size: var(--font-body); font-weight: var(--font-weight-medium); color: var(--gray-900); } @@ -338,7 +335,7 @@ } .reference-meta { - font-size: var(--font-caption); + font-size: var(--font-small); color: var(--gray-500); margin-bottom: var(--space-xs); } @@ -405,10 +402,11 @@ color: var(--white); } + /* 통계 그리드 - 모바일 기본 (2x2) */ .stats-grid { display: grid; - grid-template-columns: repeat(4, 1fr); - gap: var(--space-md); + grid-template-columns: repeat(2, 1fr); + gap: var(--space-sm); margin-top: var(--space-md); } @@ -431,6 +429,14 @@ color: var(--gray-500); } + /* 데스크톱: 1x4 그리드 */ + @media (min-width: 768px) { + .stats-grid { + grid-template-columns: repeat(4, 1fr); + gap: var(--space-md); + } + } + /* 결정사항 카드 */ .decision-card { background: var(--white); @@ -462,7 +468,7 @@ border-top: 1px solid var(--gray-300); } - /* Todo 진행상황 */ + /* Todo 리스트 */ .todo-filters { display: flex; gap: var(--space-sm); @@ -523,7 +529,64 @@ margin-bottom: var(--space-xs); } - /* Todo 진행상황 - 09-Todo관리 스타일 적용 */ + /* Todo 리스트 - 단순 조회 스타일 */ + .simple-todo-list { + display: flex; + flex-direction: column; + gap: var(--space-sm); + } + + .simple-todo-item { + position: relative; + padding: var(--space-md); + background: var(--white); + border-radius: var(--radius-md); + border: 1px solid var(--gray-300); + } + + .simple-todo-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: var(--space-sm); + margin-bottom: var(--space-xs); + } + + .simple-todo-title { + flex: 1; + font-size: var(--font-body); + font-weight: var(--font-weight-medium); + color: var(--gray-900); + min-width: 0; + } + + .simple-todo-edit-btn { + background: transparent; + border: none; + font-size: 20px; + cursor: pointer; + padding: 4px; + color: var(--gray-500); + transition: all var(--transition-fast); + flex-shrink: 0; + border-radius: 4px; + } + + .simple-todo-edit-btn:hover { + color: var(--primary); + background: var(--primary-light); + transform: scale(1.1); + } + + .simple-todo-meta { + font-size: var(--font-small); + color: var(--gray-600); + display: flex; + gap: var(--space-md); + align-items: center; + } + + /* Todo 리스트 - 09-Todo관리 스타일 적용 */ .todo-filters { display: flex; gap: var(--space-sm); @@ -688,6 +751,24 @@ display: block; } + /* 대시보드 탭의 관련회의록 카드 스타일 강화 */ + .card .reference-item { + border: 1px solid var(--gray-200) !important; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important; + margin-bottom: var(--space-sm) !important; + } + + .card .reference-item:hover { + border-color: var(--primary) !important; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12) !important; + transform: translateY(-1px) !important; + } + + .card .reference-item:active { + transform: translateY(0) !important; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08) !important; + } + /* 모바일 화면에서 관련회의록 왼쪽 정렬 */ @media (max-width: 600px) { .reference-item { @@ -738,10 +819,14 @@
-
- 확정완료 - -

2025년 1분기 제품 기획 회의

+
+ +
+ 확정완료 + +
+ +

2025년 1분기 제품 기획 회의

📅 @@ -757,7 +842,7 @@
김민준 - 작성자 + 생성자
@@ -1044,60 +1129,65 @@
-

📋 Todo 진행상황

+

📋 Todo 리스트

Todo 항목은 조회만 가능합니다. 제목, 담당자, 마감일 정보만 표시됩니다.

- -
-
-
- 데이터베이스 스키마 설계 + +
+
+
+
데이터베이스 스키마 설계
+
-
+
👤 이준호 - 📅 2025-10-20 + 📅 2025-10-20
-
-
- API 명세서 작성 +
+
+
API 명세서 작성
+
-
+
👤 이준호 - 📅 2025-10-23 + 📅 2025-10-23
-
-
- 예산 편성안 검토 +
+
+
예산 편성안 검토
+
-
+
👤 김민준 - 📅 2025-10-22 + 📅 2025-10-22
-
-
- UI 프로토타입 디자인 +
+
+
UI 프로토타입 디자인
+
-
+
👤 최유진 - 📅 2025-10-28 + 📅 2025-10-28
-
-
- 사용자 피드백 분석 +
+
+
사용자 피드백 분석
+
-
+
👤 김민준 - 📅 2025-10-19 + 📅 2025-10-19
@@ -1113,7 +1203,7 @@ AI 기능 개선 회의 92%
-
2025-10-23 15:00 · 이준호
+
이준호 · 2025-10-23 15:00
AI 요약 정확도 개선 방안 논의. BERT 모델 도입 및 학습 데이터 확보 계획 수립.
@@ -1125,7 +1215,7 @@ 개발 리소스 계획 회의 88%
-
2025-10-22 11:00 · 김민준
+
김민준 · 2025-10-22 11:00
Q4 개발 리소스 현황 및 배분 계획. 신규 프로젝트 우선순위 협의.
@@ -1137,7 +1227,7 @@ 경쟁사 분석 회의 78%
-
2025-10-20 10:00 · 박서연
+
박서연 · 2025-10-20 10:00
경쟁사 A, B, C 분석 결과. 우리의 차별점은 실시간 협업 및 검증 기능.
@@ -1151,6 +1241,33 @@
+ + + +