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:
@@ -28,7 +28,7 @@ activate Service
|
||||
' 회의록 정보 조회
|
||||
Service -> MinutesRepo: findById(minutesId)
|
||||
activate MinutesRepo
|
||||
MinutesRepo -> DB: SELECT * FROM minutes WHERE id = ?
|
||||
MinutesRepo -> DB: 회의록 정보 조회
|
||||
activate DB
|
||||
DB --> MinutesRepo: 회의록 정보
|
||||
deactivate DB
|
||||
@@ -49,6 +49,18 @@ Service -> Service: 회의록 상태 확인
|
||||
|
||||
alt 회의록이 이미 확정됨
|
||||
Service --> Controller: 409 Conflict\n이미 확정된 회의록
|
||||
note right
|
||||
에러 응답 형식:
|
||||
{
|
||||
"error": {
|
||||
"code": "MINUTES_ALREADY_FINALIZED",
|
||||
"message": "이미 확정된 회의록입니다",
|
||||
"details": "확정된 회의록은 다시 확정할 수 없습니다",
|
||||
"timestamp": "2025-10-23T12:00:00Z",
|
||||
"path": "/api/minutes/{minutesId}/finalize"
|
||||
}
|
||||
}
|
||||
end note
|
||||
return 409 Conflict
|
||||
else 확정 가능
|
||||
note over Service
|
||||
@@ -71,6 +83,18 @@ else 확정 가능
|
||||
alt 필수 항목 누락
|
||||
ValidationService --> Service: ValidationException\n누락된 항목 목록
|
||||
Service --> Controller: 400 Bad Request\n필수 항목 누락
|
||||
note right
|
||||
에러 응답 형식:
|
||||
{
|
||||
"error": {
|
||||
"code": "MISSING_REQUIRED_FIELDS",
|
||||
"message": "필수 항목이 누락되었습니다",
|
||||
"details": "회의 제목, 참석자 목록, 논의 내용 중 일부가 누락되었습니다",
|
||||
"timestamp": "2025-10-23T12:00:00Z",
|
||||
"path": "/api/minutes/{minutesId}/finalize"
|
||||
}
|
||||
}
|
||||
end note
|
||||
return 400 Bad Request
|
||||
else 검증 통과
|
||||
ValidationService --> Service: 검증 성공
|
||||
@@ -82,7 +106,7 @@ else 확정 가능
|
||||
' 회의록 상태 업데이트
|
||||
Service -> MinutesRepo: finalize(minutesId, version)
|
||||
activate MinutesRepo
|
||||
MinutesRepo -> DB: UPDATE minutes\nSET status = 'FINALIZED',\n version = ?,\n finalizedAt = NOW(),\n finalizedBy = ?\nWHERE id = ?
|
||||
MinutesRepo -> DB: 회의록 확정 상태 업데이트
|
||||
activate DB
|
||||
DB --> MinutesRepo: 업데이트 완료
|
||||
deactivate DB
|
||||
@@ -92,7 +116,7 @@ else 확정 가능
|
||||
' 회의록 스냅샷 저장 (버전 관리)
|
||||
Service -> MinutesRepo: saveSnapshot(minutesId, version, content)
|
||||
activate MinutesRepo
|
||||
MinutesRepo -> DB: INSERT INTO minutes_snapshots\n(minutesId, version, content, createdAt)
|
||||
MinutesRepo -> DB: 회의록 스냅샷 저장
|
||||
activate DB
|
||||
DB --> MinutesRepo: 스냅샷 저장 완료
|
||||
deactivate DB
|
||||
|
||||
Reference in New Issue
Block a user