mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 16:29:11 +00:00
외부/내부 시퀀스 설계 일관성 개선 및 표준화
주요 변경사항:
[Critical]
- API 엔드포인트 통일: POST /api/minutes/{minutesId}/finalize
- 이벤트 이름 표준화: MinutesFinalized
[Warning]
- API Gateway 라우팅 규칙 문서화 (외부 시퀀스 7개 파일)
- 대시보드 API 경로 통일: GET /api/dashboard
- AI 제안 병합 프로세스 상세 문서화
- 회의록 확정 검증 로직 5단계 상세화
[Minor]
- Redis 캐시 TTL 명시 (7개 파일, TTL 정책 표준화)
- 대시보드 페이지네이션 파라미터 추가
- 에러 응답 포맷 표준화 (14개 에러 응답)
총 31개 파일 수정, 34건의 개선 사항 적용
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -6,43 +6,59 @@ title 대시보드조회 외부 시퀀스
|
||||
actor "사용자" as User
|
||||
participant "Web App" as Frontend
|
||||
participant "API Gateway" as Gateway
|
||||
participant "Meeting Service" as Meeting
|
||||
participant "User Service" as UserService
|
||||
database "Redis Cache" as Cache
|
||||
database "Meeting DB" as MeetingDB
|
||||
database "User DB" as UserDB
|
||||
|
||||
note over Gateway
|
||||
라우팅 규칙:
|
||||
/api/meetings/** → Meeting Service
|
||||
/api/minutes/** → Meeting Service
|
||||
/api/dashboard → User Service
|
||||
/api/notifications/** → Notification Service
|
||||
/api/auth/** → User Service
|
||||
/api/todos/** → Meeting Service
|
||||
end note
|
||||
|
||||
User -> Frontend: 대시보드 접근
|
||||
activate Frontend
|
||||
|
||||
Frontend -> Gateway: GET /api/meetings/dashboard
|
||||
Frontend -> Gateway: GET /api/dashboard?\npage=1&size=10&sort=createdAt,desc
|
||||
note right
|
||||
페이지네이션 파라미터:
|
||||
- page: 페이지 번호 (기본값: 1)
|
||||
- size: 페이지 크기 (기본값: 10)
|
||||
- sort: 정렬 기준 (기본값: createdAt,desc)
|
||||
end note
|
||||
activate Gateway
|
||||
|
||||
Gateway -> Meeting: GET /dashboard
|
||||
activate Meeting
|
||||
Gateway -> UserService: GET /dashboard?\npage=1&size=10&sort=createdAt,desc
|
||||
activate UserService
|
||||
|
||||
' 캐시 조회
|
||||
Meeting -> Cache: GET dashboard:{userId}
|
||||
UserService -> Cache: GET dashboard:{userId}
|
||||
activate Cache
|
||||
Cache --> Meeting: 캐시 조회 결과
|
||||
Cache --> UserService: 캐시 조회 결과
|
||||
deactivate Cache
|
||||
|
||||
alt Cache Hit
|
||||
Meeting -> Meeting: 캐시 데이터 반환
|
||||
UserService -> UserService: 캐시 데이터 반환
|
||||
else Cache Miss
|
||||
Meeting -> MeetingDB: 대시보드 데이터 조회\n- 예정된 회의 목록\n- 진행 중 Todo 목록\n- 최근 회의록 목록\n- 공유받은 회의록 목록\n- 통계 정보
|
||||
activate MeetingDB
|
||||
MeetingDB --> Meeting: 조회 결과
|
||||
deactivate MeetingDB
|
||||
UserService -> UserDB: 대시보드 데이터 조회\n- 예정된 회의 목록\n- 진행 중 Todo 목록\n- 최근 회의록 목록\n- 공유받은 회의록 목록\n- 통계 정보
|
||||
activate UserDB
|
||||
UserDB --> UserService: 조회 결과
|
||||
deactivate UserDB
|
||||
|
||||
Meeting -> Cache: SET dashboard:{userId}\n(TTL: 5분)
|
||||
UserService -> Cache: SET dashboard:{userId}\n(TTL: 5분)
|
||||
activate Cache
|
||||
Cache --> Meeting: 캐시 저장 완료
|
||||
Cache --> UserService: 캐시 저장 완료
|
||||
deactivate Cache
|
||||
end
|
||||
|
||||
Meeting --> Gateway: 대시보드 데이터 응답\n{\n "upcomingMeetings": [...],\n "activeTodos": [...],\n "recentMinutes": [...],\n "sharedMinutes": [...],\n "statistics": {...}\n}
|
||||
deactivate Meeting
|
||||
UserService --> Gateway: 대시보드 데이터 응답\n{\n "upcomingMeetings": [...],\n "activeTodos": [...],\n "recentMinutes": [...],\n "sharedMinutes": [...],\n "statistics": {...},\n "pagination": {\n "page": 1,\n "size": 10,\n "totalElements": 45,\n "totalPages": 5,\n "hasNext": true\n }\n}
|
||||
deactivate UserService
|
||||
|
||||
Gateway --> Frontend: 200 OK\n대시보드 데이터
|
||||
Gateway --> Frontend: 200 OK\n대시보드 데이터 + 페이지네이션 정보
|
||||
deactivate Gateway
|
||||
|
||||
Frontend -> Frontend: 대시보드 화면 렌더링\n- 예정된 회의 표시\n- Todo 목록 표시\n- 최근/공유 회의록 표시\n- 통계 차트 표시
|
||||
|
||||
Reference in New Issue
Block a user