논리 아키텍처 설계 완료

- 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:
ondal 2025-10-22 11:09:33 +09:00
parent 5fb62c582e
commit 550cbb9be1
2 changed files with 710 additions and 608 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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