# 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