시스템 아키텍처
전체 아키텍처
┌────────────────────────────────────────────────────────────────┐
│ GenD Platform │
│ │
│ ┌──────────┐ ┌──────────────────────────────────────────┐ │
│ │ GenD UI │ │ GenD API (FastAPI) │ │
│ │ React │──│ ┌────────┐ ┌─────────┐ ┌───────────┐ │ │
│ │ + Vite │ │ │Routers │ │Services │ │ Security │ │ │
│ │ + shadcn │ │ │ (30+) │ │ (25+) │ │ Gateway │ │ │
│ └──────────┘ │ └────────┘ └─────────┘ └───────────┘ │ │
│ └────────────────┬───────────────────────┘ │
│ │ │
│ ┌───────────────────────────────┼──────────────────────────┐ │
│ │ Data Layer │ │ │
│ │ │ │ │
│ │ ┌────────┐ ┌─────────┐ ┌──┴───────┐ ┌────────────┐ │ │
│ │ │ Trino │ │PostgreSQL│ │ Weaviate │ │ ArangoDB │ │ │
│ │ │ (SQL) │ │ (Meta) │ │ (VDB) │ │ (Graph) │ │ │
│ │ └───┬────┘ └─────────┘ └──────────┘ └────────────┘ │ │
│ │ │ │ │
│ │ ┌───┴────────────────────────────────┐ │ │
│ │ │ Trino Catalogs │ │ │
│ │ │ ┌────────┐ ┌──────┐ ┌───────────┐│ │ │
│ │ │ │Iceberg │ │Source│ │ TPC-H ││ │ │
│ │ │ │(S3/HMS)│ │ DB │ │ TPC-DS ││ │ │
│ │ │ └────────┘ └──────┘ └───────────┘│ │ │
│ │ └────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Infrastructure (Kubernetes) │ │
│ │ SeaweedFS · Keycloak · Vault · Grafana · OpenSearch │ │
│ │ Dagster · MLflow · Presidio · Debezium · Fluent Bit │ │
│ └───────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
3-Layer AI 파이프라인
사용자 질문: "VIP 고객 사기 거래 보여줘"
│
▼
[Layer 1: Weaviate — Vector DB]
문서 청크 검색 (FDS 매뉴얼, 데이터 사전)
+ security_level 필터 + HMAC 검증
│
▼
[Layer 2: ArangoDB — Graph DB]
스키마 그래프 탐색 (테이블, FK 경로, 용어집)
+ 코사인 유사도 검색 + security_level 필터
│
▼
[Layer 3: LLM → SQL → Trino]
ContextGateway (보안 평가)
→ LLM SQL 생성 (GPT-4 / Claude)
→ SqlGuard (SQL 검증, fail-closed)
→ Trino 실행 (Federation SQL)
→ QueryCache (Weaviate에 캐싱)
주요 컴포넌트
| 컴포넌트 | 기술 | 역할 |
|---|---|---|
| GenD UI | React 19 + Vite + shadcn/ui | 웹 프론트엔드 |
| GenD API | FastAPI + uvicorn | REST API 서버 |
| Trino | Trino 435+ | Federation SQL 엔진 |
| PostgreSQL | PostgreSQL 15 | 메타데이터 + 운영 DB |
| Weaviate | Weaviate 1.24+ | 벡터 검색 (RAG) |
| ArangoDB | ArangoDB 3.11+ | 스키마 지식 그래프 |
| Iceberg | Apache Iceberg | 테이블 포맷 (데이터 레이크) |
| SeaweedFS | SeaweedFS 3.x | S3 호환 오브젝트 스토리지 |
| Keycloak | Keycloak 24+ | SSO / OIDC 인증 |
| Vault | HashiCorp Vault | 시크릿 + HMAC 서명 |
| Dagster | Dagster 1.6+ | 파이프라인 오케스트레이션 |
| MLflow | MLflow 2.x | ML 실험 추적 |
| Presidio | Microsoft Presidio | PII 자동 탐지 |
| Grafana | Grafana 10+ | 모니터링 대시보드 |
| OpenSearch | OpenSearch 2.x | 감사 로그 검색 |
보안 아키텍처
요청 → Keycloak JWT 검증
→ ContextGateway (컨텍스트 보안 평가)
- PASS: 전체 접근
- MASK: PII 마스킹 후 접근
- BLOCK: 접근 차단
→ SqlGuard (SQL 보안 검증, fail-closed)
- DML/DDL 차단
- 테이블 접근 권한 확인
→ Trino 실행
→ AuditMiddleware (OpenSearch 감사 로그)