Files
bim-dogma-poc/README.md
2026-01-08 15:32:15 +09:00

51 lines
1.8 KiB
Markdown

# Excel KV Middleware & Schema Editor
복잡한 구조의 엑셀 데이터를 고성능 Key-Value Store(**Microsoft Garnet**)에 적재하고, 표준 스키마를 정의/편집하는 시스템입니다.
## 🚀 Key Features
### 1. High-Performance Ingestion
- **Pure .NET 8.0**: Python 등 외부 의존성 없는 단일 플랫폼.
- **Embedded Garnet**: Redis 호환 고성능 인메모리 스토어 내장.
- **2D Flattening**:
- 병합된 Cross-Tab 엑셀 헤더를 논리적 Key로 자동 평탄화.
- Key Format: `{Sheet}:{LeftAxis}*{TopAxis}` (예: `Station.No1*Concrete.TypeA`)
### 2. Smart Schema Management
- **Interactive Region**: 헤더와 데이터 영역을 동적으로 지정 가능 (`RegionConfig`).
- **Unmerge & Fill**: 병합된 셀을 자동으로 분리하여 데이터 컨텍스트 유지.
- **SI Unit System**: 물리적 단위(`m`, `m3`, `kg`)를 코드 레벨(`SiUnit` Enum)에서 엄격하게 관리.
### 3. Editor UI (In Progress)
- **Blazor Web App**: 웹 기반의 협업 가능한 스키마 편집기.
- **CRDT Sync**: 다수 사용자가 동시 편집 시 충돌 없는 병합 지원 예정.
## 🛠 Project Structure
- **`ExcelKv.Core`**: 핵심 로직 라이브러리 (SI Unit, ExcelLoader, SchemaRegistry).
- **`ExcelKvPoC`**: 데이터 파싱 및 적재 검증용 콘솔 앱.
- **`SchemaEditor`**: 표준 스키마 편집용 Blazor 웹 애플리케이션.
## 🚦 Getting Started
### Prerequisites
- .NET SDK 8.0+
### Run PoC (Excel Ingestion)
```bash
dotnet run --project ExcelKvPoC
```
- 실행 시 `sample.txt`에 파싱된 Key-Value 결과가 출력됩니다.
### Run Editor (Blazor)
```bash
dotnet run --project SchemaEditor
```
## 📝 Roadmap
- [x] Excel Parsing & 2D Flattening
- [x] Garnet Integration (Embedded)
- [x] SI Unit System Definition
- [ ] Blazor Editor UI Implementation
- [ ] CRDT Synchronization Layer