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:
@@ -34,15 +34,20 @@ deactivate Cache
|
||||
alt Cache Miss
|
||||
Service -> MeetingRepo: findById(meetingId)
|
||||
activate MeetingRepo
|
||||
MeetingRepo -> DB: SELECT * FROM meetings\nWHERE id = ?
|
||||
MeetingRepo -> DB: 회의 정보 조회
|
||||
activate DB
|
||||
DB --> MeetingRepo: 회의 정보
|
||||
deactivate DB
|
||||
MeetingRepo --> Service: Meeting
|
||||
deactivate MeetingRepo
|
||||
|
||||
Service -> Cache: SET meeting:info:{meetingId}
|
||||
Service -> Cache: SET meeting:info:{meetingId}\n(TTL: 10분)
|
||||
activate Cache
|
||||
note right of Cache
|
||||
회의 정보 캐싱:
|
||||
- TTL: 10분
|
||||
- 자동 만료
|
||||
end note
|
||||
Cache --> Service: 캐싱 완료
|
||||
deactivate Cache
|
||||
end
|
||||
@@ -61,6 +66,18 @@ Service -> Service: 회의 상태 확인
|
||||
|
||||
alt 회의가 이미 진행 중
|
||||
Service --> Controller: 409 Conflict\n이미 진행 중인 회의
|
||||
note right
|
||||
에러 응답 형식:
|
||||
{
|
||||
"error": {
|
||||
"code": "MEETING_ALREADY_IN_PROGRESS",
|
||||
"message": "이미 진행 중인 회의입니다",
|
||||
"details": "해당 회의는 현재 진행 중 상태입니다",
|
||||
"timestamp": "2025-10-23T12:00:00Z",
|
||||
"path": "/api/meetings/{meetingId}/start"
|
||||
}
|
||||
}
|
||||
end note
|
||||
return 409 Conflict
|
||||
else 시작 가능
|
||||
Service -> Service: 회의 세션 생성
|
||||
@@ -78,7 +95,7 @@ else 시작 가능
|
||||
- status: ACTIVE
|
||||
end note
|
||||
|
||||
SessionRepo -> DB: INSERT INTO meeting_sessions\n(id, meetingId, startedBy, startedAt, status)
|
||||
SessionRepo -> DB: 회의 세션 생성
|
||||
activate DB
|
||||
DB --> SessionRepo: 세션 생성 완료
|
||||
deactivate DB
|
||||
@@ -88,7 +105,7 @@ else 시작 가능
|
||||
' 회의 상태 업데이트
|
||||
Service -> MeetingRepo: updateStatus(meetingId, "IN_PROGRESS")
|
||||
activate MeetingRepo
|
||||
MeetingRepo -> DB: UPDATE meetings\nSET status = 'IN_PROGRESS',\n actualStartTime = NOW()\nWHERE id = ?
|
||||
MeetingRepo -> DB: 회의 상태를 'IN_PROGRESS'로 변경하고 실제 시작 시간 기록
|
||||
activate DB
|
||||
DB --> MeetingRepo: 업데이트 완료
|
||||
deactivate DB
|
||||
@@ -106,7 +123,7 @@ else 시작 가능
|
||||
|
||||
Service -> MeetingRepo: createMinutesDraft(meetingId, sessionId)
|
||||
activate MeetingRepo
|
||||
MeetingRepo -> DB: INSERT INTO minutes\n(id, meetingId, sessionId, status, createdAt)\nVALUES (?, ?, ?, 'DRAFT', NOW())
|
||||
MeetingRepo -> DB: 회의록 초안 생성 (상태: DRAFT)
|
||||
activate DB
|
||||
DB --> MeetingRepo: 회의록 생성 완료
|
||||
deactivate DB
|
||||
|
||||
Reference in New Issue
Block a user