graph TB %% ======================================== %% 클라이언트 레이어 %% ======================================== subgraph Client["클라이언트 레이어"] WebApp["웹 애플리케이션
(React/Vue SPA)"] end %% ======================================== %% API Gateway 레이어 %% ======================================== subgraph Gateway["API Gateway 레이어"] APIGateway["API Gateway
- JWT 인증/인가
- 서비스 라우팅
- Rate Limiting
- CORS 처리"] end %% ======================================== %% 마이크로서비스 레이어 %% ======================================== subgraph Services["마이크로서비스 레이어"] %% 핵심 서비스 UserSvc["User Service
- 사용자 인증 (LDAP)
- JWT 토큰 발급"] MeetingSvc["Meeting Service
- 회의 생애주기 관리
- 회의록 CRUD
- 템플릿 관리
- 회의 통계
- Todo 관리
- 실시간 동기화 (WebSocket)
- 버전 관리"] %% 전문 서비스 STTSvc["STT Service
- 음성 녹음
- 텍스트 변환
- 화자 식별"] AISvc["AI Service
- 회의록 자동 작성
- Todo 추출
- 프롬프팅 개선
- 전문용어 감지 (RAG)
- 맥락 기반 설명 (RAG)
- 관련 회의록 연결"] %% 지원 서비스 NotifySvc["Notification Service
- 알림 발송
- 리마인더 관리"] end %% ======================================== %% 인프라 레이어 %% ======================================== subgraph Infrastructure["인프라 레이어"] %% 캐시 Redis["Redis
- 분산 캐시 (Cache-Aside)
- 작업 상태 저장
- 세션 관리"] %% 메시지 브로커 EventHubs["Azure Event Hubs
- Pub/Sub 패턴 (Consumer Groups)
- Partition 기반 부하 분산
- 이벤트 스트리밍"] end %% ======================================== %% 외부 시스템 %% ======================================== subgraph External["외부 시스템"] AzureSpeech["Azure Speech
(STT 엔진)"] LLM["AI Model Server
(LLM)"] EmailSMS["Email/SMS Service"] end %% ======================================== %% 클라이언트 → API Gateway (동기) %% ======================================== WebApp -->|"HTTPS
모든 API 요청"| APIGateway %% ======================================== %% API Gateway → 서비스 (동기 라우팅) %% ======================================== APIGateway -->|"/api/users/**"| UserSvc APIGateway -->|"/api/meetings/**
/api/todos/**"| MeetingSvc APIGateway -->|"/api/stt/**"| STTSvc APIGateway -->|"/api/ai/**"| AISvc APIGateway -->|"/api/notifications/**"| NotifySvc %% ======================================== %% 클라이언트 → Meeting (WebSocket) %% ======================================== WebApp -.->|"WebSocket
실시간 동기화"| MeetingSvc %% ======================================== %% 서비스 → Redis (캐시 우선 전략) %% ======================================== MeetingSvc -.->|"Cache-Aside
회의 정보/참여자/Todo"| Redis AISvc -.->|"작업 상태 저장
Async Request-Reply"| Redis %% ======================================== %% 서비스 간 동기 통신 제거 (프론트엔드에서 사용자 정보 전송) %% ======================================== %% ======================================== %% 서비스 → Event Hubs (이벤트 발행) %% ======================================== MeetingSvc ==>|"이벤트 발행
(meeting-events)"| EventHubs STTSvc ==>|"이벤트 발행
(transcript-events)"| EventHubs AISvc ==>|"이벤트 발행
(transcript-events)"| EventHubs %% ======================================== %% 이벤트 구독 정보 (노트) %% ======================================== Note1["📋 이벤트 구독 매핑

Meeting Service:
- TranscriptSummaryCreated

STT Service:
- MeetingEnded

AI Service:
- MeetingCreated
- MeetingEnded
- TranscriptReady

Notification Service:
- MeetingCreated
- MeetingEnded
- TranscriptCreated
- TodoCreated
- TodoCompleted"] Note1 -.->|"참조"| EventHubs %% ======================================== %% 서비스 → 외부 시스템 %% ======================================== 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 EventHubs mq class AzureSpeech,LLM,EmailSMS external