oneshim-core
모든 크레이트의 기반이 되는 핵심 크레이트입니다.
역할
- 도메인 모델: 애플리케이션 전체에서 사용하는 데이터 구조 정의
- 포트 인터페이스: 외부 시스템과의 계약 정의 (Hexagonal Architecture)
- 에러 정의: 통합 에러 타입
- 설정: 애플리케이션 설정 구조
Hexagonal Architecture
oneshim-core는 Hexagonal Architecture의 Core 역할을 합니다.
모든 비즈니스 로직과 인터페이스는 여기서 정의되고, 나머지 크레이트가 어댑터로 구현합니다.
주요 구성요소
도메인 모델
시스템 전체에서 공유되는 핵심 데이터 타입을 정의합니다.
| 분류 | 설명 |
|---|---|
| 컨텍스트 모델 | 사용자 작업 환경, 이벤트, 세션 등 |
| 이미지 모델 | 스크린샷 프레임, 델타 인코딩, 페이로드 |
| 시스템 모델 | 시스템 메트릭, 활성 창, 프로세스 정보 |
| 제안 모델 | AI 제안, 우선순위, 피드백 |
| 자동화 모델 | 자동화 의도, 액션, 정책, 프리셋 |
포트 인터페이스
외부 시스템과의 통신 계약을 trait으로 정의합니다. 각 어댑터 크레이트가 이를 구현합니다.
| 포트 | 구현 크레이트 | 역할 |
|---|---|---|
| SystemMonitor | oneshim-monitor | 시스템 메트릭 수집 |
| ProcessMonitor | oneshim-monitor | 활성 창/프로세스 추적 |
| ActivityMonitor | oneshim-monitor | 유휴 상태 감지 |
| StorageService | oneshim-storage | 로컬 데이터 저장 |
| ApiClient | oneshim-network | 서버 API 통신 |
| SseClient | oneshim-network | 실시간 이벤트 수신 |
| CaptureTrigger | oneshim-vision | 캡처 결정 |
| FrameProcessor | oneshim-vision | 이미지 처리 |
| DesktopNotifier | oneshim-ui | 알림 표시 |
에러 정의
전체 시스템에서 사용하는 통합 에러 타입을 정의합니다. 네트워크, 저장소, 인증, 이미지 처리 등 모든 오류 상황을 포괄합니다.
설정
애플리케이션 설정을 구조화하여 관리합니다.
| 설정 영역 | 설명 |
|---|---|
| 서버 | 서버 URL, 타임아웃, 재시도 정책 |
| 모니터링 | 수집 간격, 동기화 주기 |
| 저장소 | 보존 기간, 최대 용량 |
| 비전 | 캡처 쓰로틀, 썸네일 크기, OCR 옵션 |
| 자동화 | 활성화 여부, 샌드박스, AI 제공자 |
| 업데이트 | 자동 업데이트, 체크 주기 |
동의 관리 (Consent)
GDPR Article 17/20 등 개인정보보호 규정을 준수하기 위한 동의 관리 기능을 제공합니다.
관련 문서: