mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 13:46:24 +00:00
논리 아키텍처 설계 완료
- 8개 마이크로서비스 정의 (User, Meeting, STT, AI, RAG, Collaboration, Todo, Notification) - 6개 클라우드 디자인 패턴 적용 (API Gateway, Queue-Based Load Leveling, Cache-Aside, Pub-Sub, Async Request-Reply, Health Monitoring) - 논리 아키텍처 다이어그램 작성 (Mermaid) - 서비스와 MQ 중심으로 간소화 - 외부 시스템 통합 표현 - Mermaid 문법 검증 완료 - 논리 아키텍처 설계서 작성 (58페이지) - 서비스별 책임 및 아키텍처 상세 정의 - 서비스 간 통신 전략 (동기/비동기/캐시/Async Request-Reply) - 주요 사용자 플로우 5가지 - 데이터 흐름 및 캐싱 전략 - 확장성 및 성능 고려사항 - 보안 고려사항 - 유저스토리 매핑 (24/24, 100% 커버리지) - 다음 단계 및 구현 로드맵 - 아키텍처 결정 기록 (ADR) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
5fb62c582e
commit
550cbb9be1
File diff suppressed because it is too large
Load Diff
@ -1,119 +1,59 @@
|
|||||||
graph TB
|
graph TB
|
||||||
%% 클라이언트 레이어
|
%% 마이크로서비스 레이어
|
||||||
Client[Web/Mobile Application]
|
subgraph Services["마이크로서비스"]
|
||||||
|
%% 핵심 서비스
|
||||||
|
UserSvc["User Service<br/>- 사용자 인증<br/>- 권한 관리"]
|
||||||
|
MeetingSvc["Meeting Service<br/>- 회의 관리<br/>- 회의록 관리<br/>- 회의록 공유"]
|
||||||
|
|
||||||
%% API Gateway
|
%% 전문 서비스
|
||||||
APIGateway[API Gateway Kong/Spring Cloud Gateway 라우팅, 인증, Rate Limiting]
|
STTSvc["STT Service<br/>- 음성 녹음<br/>- 텍스트 변환<br/>- 화자 식별"]
|
||||||
|
AISvc["AI Service<br/>- 회의록 자동 작성<br/>- Todo 추출<br/>- 프롬프팅 개선"]
|
||||||
|
RAGSvc["RAG Service<br/>- 맥락 기반 용어 설명<br/>- 관련 문서 검색"]
|
||||||
|
|
||||||
%% 백엔드 서비스
|
%% 지원 서비스
|
||||||
UserService[User Service 사용자 인증 및 권한 관리]
|
CollabSvc["Collaboration Service<br/>- 실시간 동기화<br/>- 버전 관리<br/>- 충돌 해결"]
|
||||||
MeetingService[Meeting Service 회의 관리, 회의록 관리]
|
TodoSvc["Todo Service<br/>- Todo 할당/관리<br/>- 진행 상황 추적<br/>- 회의록 연동"]
|
||||||
STTService[STT Service 음성 녹음, STT 처리]
|
NotifySvc["Notification Service<br/>- 알림 발송<br/>- 리마인더 관리"]
|
||||||
AIService[AI Service 회의록 자동 작성, Todo 추출]
|
end
|
||||||
RAGService[RAG Service 맥락 기반 용어 설명]
|
|
||||||
CollabService[Collaboration Service 실시간 동기화, 버전 관리]
|
|
||||||
TodoService[Todo Service Todo 관리, 진행 추적]
|
|
||||||
NotifyService[Notification Service 알림 발송, 리마인더]
|
|
||||||
|
|
||||||
%% 인프라 컴포넌트
|
%% 메시지 브로커
|
||||||
Redis[(Redis 분산 캐시, 세션, 작업 상태)]
|
subgraph MQ["메시지 브로커"]
|
||||||
RabbitMQ[RabbitMQ 메시지 큐, 이벤트 버스]
|
RabbitMQ["RabbitMQ<br/>- Pub/Sub<br/>- Queue-Based Load Leveling"]
|
||||||
|
end
|
||||||
%% 데이터베이스
|
|
||||||
UserDB[(PostgreSQL user_db)]
|
|
||||||
MeetingDB[(PostgreSQL meeting_db)]
|
|
||||||
STTDB[(PostgreSQL transcript_db)]
|
|
||||||
AIDB[(PostgreSQL ai_db)]
|
|
||||||
RAGDB[(PostgreSQL rag_db + Vector DB)]
|
|
||||||
CollabDB[(PostgreSQL collaboration_db)]
|
|
||||||
TodoDB[(PostgreSQL todo_db)]
|
|
||||||
NotifyDB[(PostgreSQL notification_db)]
|
|
||||||
|
|
||||||
%% 외부 시스템
|
%% 외부 시스템
|
||||||
LDAP[LDAP Server]
|
External["외부 시스템<br/>- STT 엔진<br/>- LLM<br/>- Email/SMS"]
|
||||||
AzureStorage[Azure Storage 음성 파일]
|
|
||||||
AzureSpeech[Azure Speech API STT 엔진]
|
|
||||||
LLMAPI[LLM API OpenAI/Azure OpenAI]
|
|
||||||
SMTP[SMTP Server 이메일]
|
|
||||||
|
|
||||||
%% 클라이언트 → API Gateway
|
%% 서비스 → RabbitMQ (이벤트 발행)
|
||||||
Client -->|HTTPS| APIGateway
|
MeetingSvc -->|MeetingEnded| RabbitMQ
|
||||||
|
MeetingSvc -->|MeetingCreated| RabbitMQ
|
||||||
|
STTSvc -->|TranscriptReady| RabbitMQ
|
||||||
|
AISvc -->|TodoExtracted| RabbitMQ
|
||||||
|
AISvc -->|TranscriptCreated| RabbitMQ
|
||||||
|
CollabSvc -->|SectionVerified| RabbitMQ
|
||||||
|
TodoSvc -->|TodoCompleted| RabbitMQ
|
||||||
|
|
||||||
%% API Gateway → 서비스 (라우팅)
|
%% RabbitMQ → 서비스 (큐 구독)
|
||||||
APIGateway -->|/api/users/**| UserService
|
RabbitMQ -->|STT 요청| STTSvc
|
||||||
APIGateway -->|/api/meetings/**| MeetingService
|
RabbitMQ -->|AI 처리| AISvc
|
||||||
APIGateway -->|/api/transcripts/**| STTService
|
RabbitMQ -->|알림 발송| NotifySvc
|
||||||
APIGateway -->|/api/ai/**| AIService
|
RabbitMQ -->|Todo 생성| TodoSvc
|
||||||
APIGateway -->|/api/rag/**| RAGService
|
RabbitMQ -->|회의 이벤트| CollabSvc
|
||||||
APIGateway -->|/api/collaboration/**| CollabService
|
|
||||||
APIGateway -->|/api/todos/**| TodoService
|
|
||||||
APIGateway -->|/api/notifications/**| NotifyService
|
|
||||||
|
|
||||||
%% 서비스 → Redis (캐시)
|
%% 서비스 → 외부 시스템
|
||||||
UserService -.->|Cache: 사용자 프로필| Redis
|
STTSvc -.->|음성 변환| External
|
||||||
MeetingService -.->|Cache: 회의 정보| Redis
|
AISvc -.->|LLM 요청| External
|
||||||
TodoService -.->|Cache: Todo 목록| Redis
|
NotifySvc -.->|이메일/SMS| External
|
||||||
AIService -.->|작업 상태 저장| Redis
|
|
||||||
|
|
||||||
%% 서비스 → 데이터베이스
|
%% 스타일
|
||||||
UserService --> UserDB
|
classDef core fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
||||||
MeetingService --> MeetingDB
|
classDef special fill:#f8bbd0,stroke:#c2185b,stroke-width:2px
|
||||||
STTService --> STTDB
|
classDef support fill:#d1c4e9,stroke:#512da8,stroke-width:2px
|
||||||
AIService --> AIDB
|
classDef mq fill:#fff9c4,stroke:#f57f17,stroke-width:3px
|
||||||
RAGService --> RAGDB
|
classDef external fill:#cfd8dc,stroke:#455a64,stroke-width:2px
|
||||||
CollabService --> CollabDB
|
|
||||||
TodoService --> TodoDB
|
|
||||||
NotifyService --> NotifyDB
|
|
||||||
|
|
||||||
%% 동기 통신 (REST API)
|
class UserSvc,MeetingSvc core
|
||||||
MeetingService -.->|Meeting 사용자 정보 조회 Cache 우선| UserService
|
class STTSvc,AISvc,RAGSvc special
|
||||||
TodoService -->|Todo 회의록 Todo 섹션 업데이트| MeetingService
|
class CollabSvc,TodoSvc,NotifySvc support
|
||||||
AIService -->|AI 관련 문서 검색| RAGService
|
class RabbitMQ mq
|
||||||
|
class External external
|
||||||
%% 비동기 통신 (Queue)
|
|
||||||
MeetingService -->|Meeting 회의록 생성 요청| RabbitMQ
|
|
||||||
RabbitMQ -->|transcript.creation.queue| STTService
|
|
||||||
|
|
||||||
STTService -->|STT 회의록 자동 작성 요청| RabbitMQ
|
|
||||||
RabbitMQ -->|ai.processing.queue| AIService
|
|
||||||
|
|
||||||
AIService -->|AI Todo 추출 요청| RabbitMQ
|
|
||||||
RabbitMQ -->|todo.extraction.queue| TodoService
|
|
||||||
|
|
||||||
MeetingService -->|Meeting 알림 발송| RabbitMQ
|
|
||||||
STTService -->|STT 알림 발송| RabbitMQ
|
|
||||||
TodoService -->|Todo 알림 발송| RabbitMQ
|
|
||||||
CollabService -->|Collab 알림 발송| RabbitMQ
|
|
||||||
RabbitMQ -->|notification.queue| NotifyService
|
|
||||||
|
|
||||||
%% 이벤트 기반 통신 (Pub-Sub)
|
|
||||||
MeetingService -->|MeetingCreated MeetingEnded| RabbitMQ
|
|
||||||
STTService -->|TranscriptCreated| RabbitMQ
|
|
||||||
TodoService -->|TodoCreated TodoCompleted| RabbitMQ
|
|
||||||
CollabService -->|SectionVerified| RabbitMQ
|
|
||||||
|
|
||||||
%% WebSocket (실시간 통신)
|
|
||||||
Client <-.->|WebSocket 실시간 회의록 동기화| CollabService
|
|
||||||
|
|
||||||
%% 외부 시스템 연동
|
|
||||||
UserService -->|인증| LDAP
|
|
||||||
STTService -->|음성 파일 저장| AzureStorage
|
|
||||||
STTService -->|STT 처리| AzureSpeech
|
|
||||||
AIService -->|회의록 자동 작성 Todo 추출| LLMAPI
|
|
||||||
RAGService -->|용어 설명 생성| LLMAPI
|
|
||||||
NotifyService -->|이메일 발송| SMTP
|
|
||||||
|
|
||||||
%% 스타일링
|
|
||||||
classDef clientStyle fill:#e1f5ff,stroke:#01579b,stroke-width:2px
|
|
||||||
classDef gatewayStyle fill:#fff3e0,stroke:#e65100,stroke-width:3px
|
|
||||||
classDef serviceStyle fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
|
|
||||||
classDef infraStyle fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
|
|
||||||
classDef dbStyle fill:#fff9c4,stroke:#f57f17,stroke-width:2px
|
|
||||||
classDef externalStyle fill:#fce4ec,stroke:#880e4f,stroke-width:2px
|
|
||||||
|
|
||||||
class Client clientStyle
|
|
||||||
class APIGateway gatewayStyle
|
|
||||||
class UserService,MeetingService,STTService,AIService,RAGService,CollabService,TodoService,NotifyService serviceStyle
|
|
||||||
class Redis,RabbitMQ infraStyle
|
|
||||||
class UserDB,MeetingDB,STTDB,AIDB,RAGDB,CollabDB,TodoDB,NotifyDB dbStyle
|
|
||||||
class LDAP,AzureStorage,AzureSpeech,LLMAPI,SMTP externalStyle
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user