mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 10:16:24 +00:00
주요 변경사항: - Meeting, Collaboration, Todo 서비스를 Meeting Service로 통합 - User Service 동기 참조 완전 제거 (프론트엔드에서 사용자 정보 전송) - 서비스 간 동기 통신 제거로 성능 향상 (~100ms 지연 제거) - 이벤트 발행/구독 매핑 단순화 통합된 Meeting Service 기능: - 회의 및 회의록 관리 - Todo 관리 및 진행 상황 추적 - 실시간 협업 (WebSocket) - 버전 관리 및 충돌 해결 - 회의/Todo 통계 성능 개선: - User Service 동기 호출 제거: ~100ms 지연 제거 - Todo 처리: 서비스 간 통신 → 내부 메서드 호출 (10배 빠름) - Collaboration: REST API 제거 → 내부 처리 변경된 파일: - design/backend/logical/logical-architecture.mmd - design/backend/logical/logical-architecture.md (ADR-007 추가) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
122 lines
5.4 KiB
Plaintext
122 lines
5.4 KiB
Plaintext
graph TB
|
|
%% ========================================
|
|
%% 클라이언트 레이어
|
|
%% ========================================
|
|
subgraph Client["클라이언트 레이어"]
|
|
WebApp["웹 애플리케이션<br/>(React/Vue SPA)"]
|
|
end
|
|
|
|
%% ========================================
|
|
%% API Gateway 레이어
|
|
%% ========================================
|
|
subgraph Gateway["API Gateway 레이어"]
|
|
APIGateway["API Gateway<br/>- JWT 인증/인가<br/>- 서비스 라우팅<br/>- Rate Limiting<br/>- CORS 처리"]
|
|
end
|
|
|
|
%% ========================================
|
|
%% 마이크로서비스 레이어
|
|
%% ========================================
|
|
subgraph Services["마이크로서비스 레이어"]
|
|
%% 핵심 서비스
|
|
UserSvc["User Service<br/>- 사용자 인증 (LDAP)<br/>- JWT 토큰 발급"]
|
|
MeetingSvc["Meeting Service<br/>- 회의 생애주기 관리<br/>- 회의록 CRUD<br/>- 템플릿 관리<br/>- 회의 통계<br/>- Todo 관리<br/>- 실시간 동기화 (WebSocket)<br/>- 버전 관리"]
|
|
|
|
%% 전문 서비스
|
|
STTSvc["STT Service<br/>- 음성 녹음<br/>- 텍스트 변환<br/>- 화자 식별"]
|
|
AISvc["AI Service<br/>- 회의록 자동 작성<br/>- Todo 추출<br/>- 프롬프팅 개선<br/>- 전문용어 감지 (RAG)<br/>- 맥락 기반 설명 (RAG)<br/>- 관련 회의록 연결"]
|
|
|
|
%% 지원 서비스
|
|
NotifySvc["Notification Service<br/>- 알림 발송<br/>- 리마인더 관리"]
|
|
end
|
|
|
|
%% ========================================
|
|
%% 인프라 레이어
|
|
%% ========================================
|
|
subgraph Infrastructure["인프라 레이어"]
|
|
%% 캐시
|
|
Redis["Redis<br/>- 분산 캐시 (Cache-Aside)<br/>- 작업 상태 저장<br/>- 세션 관리"]
|
|
|
|
%% 메시지 브로커
|
|
RabbitMQ["RabbitMQ<br/>- Pub/Sub 패턴<br/>- Queue-Based Load Leveling"]
|
|
end
|
|
|
|
%% ========================================
|
|
%% 외부 시스템
|
|
%% ========================================
|
|
subgraph External["외부 시스템"]
|
|
AzureSpeech["Azure Speech<br/>(STT 엔진)"]
|
|
LLM["AI Model Server<br/>(LLM)"]
|
|
EmailSMS["Email/SMS Service"]
|
|
end
|
|
|
|
%% ========================================
|
|
%% 클라이언트 → API Gateway (동기)
|
|
%% ========================================
|
|
WebApp -->|"HTTPS<br/>모든 API 요청"| APIGateway
|
|
|
|
%% ========================================
|
|
%% API Gateway → 서비스 (동기 라우팅)
|
|
%% ========================================
|
|
APIGateway -->|"/api/users/**"| UserSvc
|
|
APIGateway -->|"/api/meetings/**<br/>/api/todos/**"| MeetingSvc
|
|
APIGateway -->|"/api/stt/**"| STTSvc
|
|
APIGateway -->|"/api/ai/**"| AISvc
|
|
APIGateway -->|"/api/notifications/**"| NotifySvc
|
|
|
|
%% ========================================
|
|
%% 클라이언트 → Meeting (WebSocket)
|
|
%% ========================================
|
|
WebApp -.->|"WebSocket<br/>실시간 동기화"| MeetingSvc
|
|
|
|
%% ========================================
|
|
%% 서비스 → Redis (캐시 우선 전략)
|
|
%% ========================================
|
|
MeetingSvc -.->|"Cache-Aside<br/>회의 정보/참여자/Todo"| Redis
|
|
AISvc -.->|"작업 상태 저장<br/>Async Request-Reply"| Redis
|
|
|
|
%% ========================================
|
|
%% 서비스 간 동기 통신 제거 (프론트엔드에서 사용자 정보 전송)
|
|
%% ========================================
|
|
|
|
%% ========================================
|
|
%% 서비스 → RabbitMQ (이벤트 발행)
|
|
%% ========================================
|
|
MeetingSvc ==>|"이벤트 발행"| RabbitMQ
|
|
STTSvc ==>|"이벤트 발행"| RabbitMQ
|
|
AISvc ==>|"이벤트 발행"| RabbitMQ
|
|
|
|
%% ========================================
|
|
%% 이벤트 구독 정보 (노트)
|
|
%% ========================================
|
|
Note1["📋 이벤트 구독 매핑<br/><br/>Meeting Service:<br/>- TranscriptSummaryCreated<br/><br/>STT Service:<br/>- MeetingEnded<br/><br/>AI Service:<br/>- MeetingCreated<br/>- MeetingEnded<br/>- TranscriptReady<br/><br/>Notification Service:<br/>- MeetingCreated<br/>- MeetingEnded<br/>- TranscriptCreated<br/>- TodoCreated<br/>- TodoCompleted"]
|
|
|
|
Note1 -.->|"참조"| RabbitMQ
|
|
|
|
%% ========================================
|
|
%% 서비스 → 외부 시스템
|
|
%% ========================================
|
|
STTSvc -.->|"음성 변환 요청"| AzureSpeech
|
|
AISvc -.->|"LLM 요청"| LLM
|
|
NotifySvc -.->|"이메일/SMS 발송"| EmailSMS
|
|
|
|
%% ========================================
|
|
%% 스타일 정의
|
|
%% ========================================
|
|
classDef client fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
|
|
classDef gateway fill:#fff9c4,stroke:#f57f17,stroke-width:3px
|
|
classDef core fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
classDef special fill:#f8bbd0,stroke:#c2185b,stroke-width:2px
|
|
classDef support fill:#d1c4e9,stroke:#512da8,stroke-width:2px
|
|
classDef infra fill:#b2ebf2,stroke:#00838f,stroke-width:2px
|
|
classDef mq fill:#ffe0b2,stroke:#e65100,stroke-width:3px
|
|
classDef external fill:#cfd8dc,stroke:#455a64,stroke-width:2px
|
|
|
|
class WebApp client
|
|
class APIGateway gateway
|
|
class UserSvc,MeetingSvc core
|
|
class STTSvc,AISvc special
|
|
class NotifySvc support
|
|
class Redis infra
|
|
class RabbitMQ mq
|
|
class AzureSpeech,LLM,EmailSMS external
|