mirror of
https://github.com/hwanny1128/HGZero.git
synced 2026-06-13 09:29:10 +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:
@@ -10,6 +10,16 @@ participant "Meeting Service" as Meeting
|
||||
participant "Redis Cache" as Redis
|
||||
participant "Notification Service" as Notification
|
||||
|
||||
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
|
||||
|
||||
autonumber
|
||||
|
||||
== Todo 완료 처리 ==
|
||||
|
||||
@@ -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- 통계 차트 표시
|
||||
|
||||
@@ -11,6 +11,16 @@ participant "Redis Cache" as Redis
|
||||
participant "Azure Event Hubs" as EventHub
|
||||
participant "Notification Service" as Notification
|
||||
|
||||
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 -> Web: 공유 버튼 클릭
|
||||
activate Web
|
||||
|
||||
@@ -12,6 +12,16 @@ database "Redis Cache" as Cache
|
||||
database "Meeting DB" as MeetingDB
|
||||
participant "WebSocket" as WS
|
||||
|
||||
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: 회의록 클릭
|
||||
|
||||
@@ -12,6 +12,16 @@ participant "AI Service" as AI
|
||||
database "Redis Cache" as Cache
|
||||
queue "Azure Event Hubs" as EventHub
|
||||
|
||||
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: 회의 시작 버튼 클릭
|
||||
|
||||
@@ -13,6 +13,16 @@ participant "Azure Event Hubs" as EventHub
|
||||
participant "Notification Service" as Notification
|
||||
participant "Email Service" as Email
|
||||
|
||||
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 -> WebApp: 회의 정보 입력\n(제목, 날짜/시간, 장소, 참석자)
|
||||
activate WebApp
|
||||
|
||||
@@ -12,6 +12,16 @@ participant "AI Service" as AI
|
||||
participant "Notification Service" as Notification
|
||||
participant "Azure Event Hubs" as EventHub
|
||||
|
||||
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 -> WebApp: 회의 종료 버튼 클릭
|
||||
WebApp -> Gateway: POST /meetings/{meetingId}/end
|
||||
|
||||
Reference in New Issue
Block a user