[유저스토리 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>
- 외부 시퀀스(6개), 내부 시퀀스(30개), API 명세(5개) 일관성 검증
- Sequential thinking을 활용한 체계적 분석
- 종합 평가: A등급 (96.25/100점)
- 일관성 수준: 매우 높음 (99%)
- 검증된 API: 47개 중 45개 완벽 일치 (95.7%)
- 사소한 문서 개선 사항 2개 식별
주요 강점:
- OpenAPI 3.0 표준 완벽 준수
- 유저스토리 100% 추적 가능
- 컨트롤러 분리 명확
- 3단계 일관성 확보 (외부→내부→API)
개선 권장:
- 대시보드 라우팅 규칙 문서 수정
- 베이스 URL 표기 통일
- WebSocket 상세 문서화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 5개 마이크로서비스 API 명세 작성 (User, Meeting, STT, AI, Notification)
- OpenAPI 3.0 표준 준수
- 총 47개 API 설계
- 유저스토리 100% 커버리지
- swagger-cli 검증 통과
- 종합 API 설계서 작성
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- .gitignore 업데이트
- 대시보드 프로토타입 수정
- 회의록 상세조회 프로토타입 수정
- 회의록 목록조회 프로토타입 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- .gitignore 업데이트
- 대시보드 프로토타입 수정
- 회의록공유 프로토타입 삭제
- UI/UX 설계서 업데이트
- 공유하기 제거 검토 보고서 추가
- 유저스토리 업데이트
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- inner/user-대시보드조회.puml 삭제 (outer와 중복)
- outer/대시보드조회.puml 수정
- Meeting Service 호출 흐름 추가
- MSA 아키텍처 제대로 반영
- 서비스 간 통신 명확화
- inner/meeting-대시보드조회.puml 유지 (Meeting Service 비즈니스 로직)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 4개의 중복된 STT 시퀀스를 2개로 통합
- 녹음 시작 및 화자 인식 플로우 통합 (stt-녹음시작및인식.puml)
- 텍스트 변환 플로우 통합 - 실시간/배치 모드 포함 (stt-텍스트변환통합.puml)
- 중복 파일 4개 삭제 (음성녹음시작, 음성텍스트변환, 음성녹음인식, 텍스트변환)
- Azure Speech Service 설정 및 신뢰도 검증 기준 통일
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>