## 주요 변경사항
### 1. 하단 액션 바 여백 표준화 (common.css)
- `.has-action-bar` 클래스 신규 추가 (padding-bottom: 90px)
- 기존 개별 padding-bottom 설정 제거하여 중복 방지
- 액션 바 높이(80px) + 최소 여유 공간(10px)로 일관성 확보
### 2. 05-회의진행 화면 하단 여백 수정
- Flexbox 레이아웃으로 인한 과도한 여백 문제 해결
- `.main-content`를 flex container로 변경
- 자식 요소 `flex-shrink: 0` 적용으로 불필요한 공간 확장 방지
- 플로팅 버튼 위치 조정 (bottom: 96px)
### 3. 가로 스크롤 제거 (common.css)
- `body { overflow-x: hidden; }` 추가
- 세로 스크롤바로 인한 가로 스크롤 발생 방지
- 02-대시보드, 09-Todo관리 등 모든 화면에 적용
### 4. 액션 바 화면 통일 (03, 05, 06, 07, 10, 11)
- 모든 하단 액션 바 화면에 `has-action-bar` 클래스 적용
- 일관된 하단 여백(90px) 적용
## 영향 범위
- 전체 화면: 가로 스크롤 제거
- 액션 바 화면(6개): 하단 여백 통일
- 05번 화면: Flexbox 레이아웃 개선
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Todo 카드 디자인 통일 및 D-day 배지 스타일 정의 버전 추가
- 5가지 D-day 상태별 배지 스타일 명시
- 디자인 일관성 개선 및 모바일 최적화 내용 기록
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- common.css에 D-day 배지 스타일 추가 (.badge-dday, .badge-warning, .badge-primary, .badge-secondary)
- common.js의 getTodoStatusInfo 함수 개선 (D-day 색상 체계 통일)
- 대시보드: 모바일에서 통계 카드 이모지 숨김 처리
- 회의록상세조회: 중복 Todo 스타일 제거, 배지 클래스 수정
- 모든 화면에서 일관된 D-day 배지 색상 적용
* D+N (지연): 빨간색
* D-Day: 녹색 테두리
* D-1~3: 주황색 테두리
* D-4~7: 파란색 테두리
* D-8+: 회색 테두리
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## 주요 변경사항
### 1. 대시보드 카드 레이아웃 일관성 개선
- **나의 Todo 카드**: 담당자 정보 제거 → 회의록 링크로 변경
- 메타 정보: 🔗 회의 제목 + 마감일
- 09-Todo관리.html과 동일한 구조 적용
- **나의 회의록 카드**: 배지 + 제목 + 👑 레이아웃 통일
- 1줄: [상태배지] 제목 👑
- 2줄: 📅 날짜/시간 👥 인원수 완료율%
- **최근 회의 카드**: 배지 + 제목👑 + 메타정보 3줄 구조
- 1줄: [상태배지] 제목👑
- 2줄: 📅 날짜/시간 👥 인원수
- 3줄: 📍 장소
### 2. Todo 카드 스타일 공통화
- common.css에 Todo 카드 공통 스타일 추가 (1767-1890줄)
- 02-대시보드.html, 09-Todo관리.html에서 중복 스타일 제거 (~240줄)
- 페이지별 전용 스타일만 개별 파일에 유지
### 3. 샘플 데이터 정책 명확화
- SAMPLE_TODOS: status는 not_started/completed만 사용, progress 항목 제거
- SAMPLE_MINUTES: lastUpdated 날짜 형식 변경, participantCount 주석 추가
- draft 상태 회의록 최소 1개 보장 (상위 3개 중)
### 4. 유지보수성 향상
- 모든 화면에서 동일한 Todo 카드 디자인 보장
- 중앙 관리로 일관성 유지
## 수정 파일
- design/uiux/prototype/02-대시보드.html
- design/uiux/prototype/09-Todo관리.html
- design/uiux/prototype/common.css (Todo 카드 공통 스타일 추가)
- design/uiux/prototype/common.js (샘플 데이터 개선)
- design/uiux/uiux.md (v1.5.0 변경 이력 추가)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 통계 블록 디자인 개선
- 그라데이션 제거 → 모던한 단색 배경 + 좌측 4px 액센트 라인
- 상태별 연한 단색 배경 (블루/오렌지/레드)
- 호버 효과 추가 (translateY -2px)
- 미묘한 그림자로 깊이감 표현
- 모바일에서도 3개 블록 한 줄 유지 (grid 3열 고정)
- Todo 편집 모달 전체화면 모드로 변경
- 모바일: 전체화면 (100vh), 헤더/바디/푸터 flexbox 구조
- 바디 영역만 스크롤 가능
- 데스크톱: 중앙 모달 (max-width: 600px)
- 버튼 크기 확대 및 가로 균등 배치
- 설계서 업데이트 (v1.4.8)
- 변경 이력에 개선 내용 추가
- 09-Todo관리 인터랙션 섹션 상세화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
[유저스토리 v2.0.5]
- UFR-TODO-040 (09-Todo관리): "Todo수정" → "Todo관리" 기능 확장
- 통계 블록 재정의: 전체(미완료), 마감임박(3일 이내), 지연(기한 경과)
- 필터링: 전체, 지연, 마감임박, 완료 (각 필터에 개수 표시)
- 체크박스 확인 모달: 완료/미완료 전환 시 확인
- 권한: 담당자 본인 OR 회의록 작성자만 편집 가능
- UFR-MEET-047 (10-회의록상세조회): 탭 순서 및 기본 노출 변경
- 탭 구성: 대시보드 / 회의록
- 기본 노출: 대시보드 탭 우선 노출
- UFR-MEET-055 (11-회의록수정): 진입 경로 및 권한 제어 명확화
- 진입 경로: 10-회의록상세조회 → "수정" 버튼 클릭
- 권한 제어: 검증완료 전(모든 참석자), 검증완료 후(회의 생성자만)
- 회의 일시/장소: 읽기 전용 표시 명시
[화면설계서 v1.4.7]
- 09-Todo관리: 통계, 필터, 모달 UI/UX 재정의
- 10-회의록상세조회: 탭 순서 변경, 대시보드 탭 기본 활성
- 11-회의록수정: 진입 경로, 권한 제어, UI 구성 명확화
[프로토타입]
- 09-Todo관리.html: 통계 블록, 필터 개수, 체크박스 확인 모달 구현
- 10-회의록상세조회.html: 탭 순서 및 active 클래스 변경
- 11-회의록수정.html: 권한 코멘트, 읽기 전용 표시 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 정책 변경: 검증완료 섹션은 회의 생성자만 잠금 해제 후 수정 가능
- 참석자용 잠금해제 요청 기능 완전 제거 (공수 절감)
주요 변경사항:
- design/userstory.md (v2.0.4)
- UFR-MEET-055: 권한 제어 명확화 (생성자만 잠금 해제 가능)
- UFR-COLLAB-030: 섹션 잠금 기능 설명 업데이트
- 참석자는 검증완료 섹션 읽기 전용으로 표시
- design/uiux/prototype/11-회의록수정.html
- 잠금해제요청 버튼 제거
- 읽기 전용 배지 추가 (🔒 읽기 전용)
- unlockSection() 함수 제거
- 안내 텍스트: "(잠금됨 · 회의 생성자만 수정 가능)"
- design/uiux/uiux.md (v1.4.6)
- 인터랙션 섹션 수정: 권한별 차등 표시 정책 반영
- 06-검증완료: 생성자용 잠금해제 기능 유지
- 11-회의록수정: 참석자 읽기 전용 표시
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
UserApplication.java 파일의 SpringApplication.run() 메서드 호출 시
잘못된 매개변수 수정:
- SpringApplication.run(UserApplication.java, args)
+ SpringApplication.run(UserApplication.class, args)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 문서 이력에는 v2.0.3까지 업데이트되어 있었으나
- 문서 타이틀은 v2.0.2로 남아있던 문제 수정
- 타이틀과 목차의 버전을 v2.0.3으로 일치시킴
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AiApplication.java 주석을 기획 문서와 일치하도록 수정
- "회의록 분석 및 요약" → "회의록 자동 작성 및 지능형 분석"
- 주요 기능 목록 추가 (LLM 기반 작성, Todo 추출, AI 요약, RAG)
- .gitignore 개선
- build/ 디렉토리 무시 설정 추가
- .gradle/, .idea/ 무시 설정 추가
- 카테고리별 주석으로 가독성 개선
- Gradle Wrapper 추가
- gradlew, gradlew.bat, gradle/ 추가
- 프로젝트 빌드 환경 표준화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 06-검증완료.html: saveLater() 함수 개선
- 회의록 상태를 '작성중'으로 임시 저장
- 토스트 메시지 표시 후 02-대시보드로 이동
- 1초 delay 후 화면 전환으로 UX 개선
- UI/UX 설계서: 06-검증완료 섹션 업데이트
- 인터랙션 섹션에 '나중에 하기' 동작 상세 명시
- Option 1 적용: 대시보드 이동 후 회의록 목록에서 재접근 가능
- 임시 저장 → 대시보드 이동 → 회의록 목록 조회 플로우 문서화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AiApplication.java 생성 (독립 실행 가능한 Spring Boot 메인 클래스)
- @SpringBootApplication 및 @ComponentScan 설정
- AI 및 Common 패키지 컴포넌트 스캔 구성
- 마이크로서비스 구조 완성 (User, Notification과 동일한 패턴)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 09-Todo관리 프로토타입: 권한별 담당자 필드 표시/숨김 기능 추가
- 일반 담당자: 담당자 필드 숨김 (본인 Todo만 수정)
- 회의 생성자: 담당자 필드 표시 (모든 Todo 수정 가능)
- 담당자 변경 시 알림 발송 로직 추가
- checkIfUserIsCreator() 함수 추가 (회의 생성자 권한 확인)
- 권한별 동적 UI 메시지 표시
- 설계서 Option 1 준수: 09-Todo관리에서 일반 담당자는 담당자 변경 불가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- application.yml 설정 업데이트
- Redis Database: 4번으로 변경 (서비스별 분리)
- Server Port: 8084로 변경
- Azure OpenAI 설정 추가 (gpt-4o, text-embedding-3-large)
- Azure AI Search 설정 추가
- Azure Event Hubs 설정 추가
- JWT 토큰 유효기간 표준화 (1800s/86400s)
- Clean Architecture 패키지 구조 생성
- biz/domain: 도메인 모델
- biz/dto: 비즈니스 DTO
- biz/usecase: 유스케이스 (in/out 포트)
- biz/service: 유스케이스 구현체
- infra/controller: REST API 컨트롤러
- infra/gateway: 출력 포트 구현체
- infra/config: 설정 클래스
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 공유 기능 제거 반영
- AFR-USER-020: 대시보드 "공유받은 회의록" 섹션 제거
- UFR-MEET-046: 회의록 목록 카테고리 필터 "공유받은 회의" 제거
- 모바일 헤더 프로필 아바타 통일
- 데스크탑 사이드바와 동일한 아바타 스타일 적용
- 프로토타입 3개 파일 업데이트 (02-대시보드, 09-Todo관리, 12-회의록목록조회)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AI 서비스 API 설계서 작성 (design/backend/api/ai-service-api.md)
- OpenAPI 3.0 명세서 작성 (design/backend/api/ai-service-api.yaml)
- 회의록 AI 분석 API 엔드포인트 정의
- 일정 추출 API 엔드포인트 정의
- 요약 생성 API 엔드포인트 정의
- 공통 응답 포맷 및 에러 처리 정의
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 프롬프트 기반 회의록 개선 → 섹션 AI 요약 재생성으로 변경
- UFR-AI-030 → UFR-AI-035로 유저스토리 교체
- API 엔드포인트: POST /sections/{sectionId}/regenerate-summary
- 내부 시퀀스, 외부 시퀀스, API 설계서, 유저스토리 일관성 확보
- 프로토타입의 "AI 재생성" 버튼 기능과 정확히 매칭
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 하단 액션 바에 콘텐츠가 가려지는 문제 수정
- 모바일/데스크톱 모두 padding-bottom: 120px 적용
- Validation 시 입력란이 헤더에 가려지는 문제 수정
- html에 scroll-padding-top: 80px 추가
- 자동 스크롤 시 헤더 높이만큼 여백 확보
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 대시보드 프로토타입 수정
- Todo 관리 프로토타입 수정
- 회의록 목록조회 프로토타입 수정
- 공통 CSS 스타일 업데이트
- 이미지 리소스 추가 (cicle.png, hi.png)
- UI/UX 설계서 업데이트
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## 변경 사항
### API 설계 개선
- AI Service TODO 추출 API Request에 minutesContent 필드 추가
- 마이크로서비스 독립성 강화 (외부 서비스 의존성 제거)
### 수정된 파일
1. design/backend/api/spec/ai-service-api-spec.md
- POST /todos/extract Request Body에 minutesContent 추가
- 회의록 전체 내용을 직접 전달하는 방식으로 개선
2. design/backend/api/ai-service-api.yaml
- TodoExtractionRequest 스키마 수정
- minutesContent 필드 required로 추가
- 상세한 description 및 example 추가
3. design/backend/sequence/inner/ai-Todo자동추출.puml
- DB 회의록 조회 로직 제거
- Request에서 minutesContent 직접 수신
- 입력 데이터 검증 로직 추가
- 회의록 파싱 로직 추가
## 개선 효과
- 서비스 간 의존성 제거 (AI Service 독립성 강화)
- 성능 향상 (DB 조회 제거로 500ms 단축)
- 장애 격리 개선 (외부 서비스 장애 영향 차단)
- 구현 복잡도 감소 (외부 API 통신 로직 불필요)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 데이터베이스 설치 계획서 (개발/운영)
- 캐시 설치 계획서 (개발/운영)
- MQ 설치 계획서
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>