외부/내부 시퀀스 설계 일관성 개선 및 표준화

주요 변경사항:

[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:
ondal
2025-10-23 09:48:06 +09:00
parent f86973c93b
commit 715add4dbc
43 changed files with 505 additions and 156 deletions
@@ -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