Add 데이터 스키마 정의서

2026-04-16 16:10:50 +09:00
commit 3b3297a4a1

@@ -0,0 +1,118 @@
# HM ITAM 데이터 스키마 정의서
현재 `c:\Project\HM ITAM` 프로젝트 자산관리에 사용하고 있는 핵심 데이터 모델과 스키마 구조입니다. 주된 데이터 모델은 `src/excelHandler.ts` 파일과 상태 관리를 위한 `src/state.ts` 파일에 정의되어 있습니다.
## 1. 전역 상태 및 마스터 데이터 구조
### `AppState` (상태 관리 스키마)
애플리케이션 전반의 상태를 관리하는 구조체입니다. (`src/state.ts`)
| 속성명 | 타입 | 설명 |
|---|---|---|
| `masterData` | `MasterAssetData` | 애플리케이션의 핵심 자산 정보 및 로그 모음 |
| `activeCategory` | `'hw' \| 'sw'` | 현재 화면의 메인 카테고리 (하드웨어/소프트웨어) |
| `activeSubTab` | `string` | 활성화된 서브 탭 (대시보드 또는 개별 탭) |
| `activeCharts` | `any[]` | 대시보드에 활성화된 차트 정보 데이터 |
### `MasterAssetData` (마스터 데이터 스키마)
모든 자산 데이터의 최상위 집합입니다. (`src/excelHandler.ts`)
| 속성명 | 타입 | 설명 |
|---|---|---|
| `hw` | `HardwareAsset[]` | 전체 하드웨어 자산 배열 |
| `sw` | `SoftwareAsset[]` | 전체 소프트웨어 자산 배열 |
| `swUsers` | `SWUser[]` | 소프트웨어 사용자 라이선스 할당 목록 |
| `logs` | `HardwareLog[]` | 데이터 변경/관리 이력 변동 로그 목록 |
---
## 2. 하드웨어 스키마 (`HardwareAsset`)
하드웨어 자산을 표현하며 기기 유형(`type`)별로 사용하는 필드가 다릅니다.
| 속성명 | 타입 | 필수여부 | 설명 |
|---|---|:---:|---|
| **`id`** | `string` | **O** | 기기/자산 고유 식별자 ID |
| **`type`** | `string` | **O** | 자산의 유형: `'개인PC'`, `'서버'`, `'스토리지'`, `'전산비품'` |
| **`법인`** | `string` | **O** | 관리 대상 법인명 |
| **`자산코드`** | `string` | **O** | 고유 자산 관리 코드 번호 |
| **`명칭`** | `string` | **O** | 자산의 명칭 |
| **`위치`** | `string` | **O** | 장비 보관 또는 설치 위치 |
| **`관리자`** | `string` | **O** | 자산을 관리하는 담당자명 |
| **`IP주소`** | `string` | **O** | 네트워크 IP 주소 |
| **`MACaddress`** | `string` | **O** | 물리적 MAC 주소 |
| **`HW사양`** | `string` | **O** | 하드웨어 기본 사양 요약 |
| **`OS`** | `string` | **O** | 기기에 설치된 운영체제 정보 |
| **`납품업체`** | `string` | **O** | 구입 및 유지보수 납품 업체 |
| **`품의서명`** | `string` | **O** | 자산 매입 품의서 결재 문서명 |
| `사용자` | `string` | X | 실 사용자명 (개인PC 전용) |
| `담당자_정` | `string` | X | 주(정) 담당자 (서버, 스토리지 등) |
| `담당자_부` | `string` | X | 부 담당자 (서버, 스토리지 등) |
| `CPU` / `GPU` / `RAM` | `string` | X | 프로세서 및 메모리 하드웨어 스펙 |
| `SSD1`, `SSD2`, `HDD1`, `HDD2`| `string` | X | 디스크드라이브 등 저장 장치 스펙 |
| `storage유형` | `string` | X | 물리/가상 스토리지 구분 (서버/스토리지) |
| `비품유형` | `string` | X | 비품의 종류 (예: 모니터, 마우스 등) |
| `모델명` | `string` | X | 제조업체 기기 모델명 (서버/스토리지 등) |
| `용량` | `string` | X | 총 제공 공간 용량 (스토리지) |
| `구매일` | `string` | X | 자산 최초 도입 일자 |
| `금액` | `string` | X | 자산 구매 또는 투입 금액 |
| `용도` | `string` | X | 서버나 기기의 주 사용 용도 |
| `상세` | `string` | X | 자산의 상세 설명 및 특징 |
| `원격접속` | `string` | X | 원격 접속 IP와 포트 (서버 전용) |
| `모니터링` | `string` | X | 모니터링 시스템 여부 및 환경 (서버) |
| `비고` | `string` | X | 그 외 특이사항 정리표 |
---
## 3. 소프트웨어 스키마 (`SoftwareAsset`)
소프트웨어 자산을 표현하며 구독형(Subcription)과 영구형(Permanent)으로 구분합니다.
| 속성명 | 타입 | 필수여부 | 설명 |
|---|---|:---:|---|
| **`id`** | `string` | **O** | SW 자산 고유 식별 ID |
| **`type`** | `string` | **O** | SW 분류 유형:`'구독SW'`, `'영구SW'` |
| **`법인`** | `string` | **O** | 주 계약/소지 법인명 |
| **`제품명`** | `string` | **O** | 소프트웨어 상표 또는 제품명 |
| **`구매일`** | `string` | **O** | 구매한 날짜 |
| **`금액`** | `string` | **O** | 구매 혹은 월/연 비용 |
| **`수량`** | `number` | **O** | 보유 또는 계약 라이선스 개수 (License count) |
| **`계정명`** | `string` | **O** | 클라우드 또는 어드민 액세스 계정 |
| **`납품업체`** | `string` | **O** | 구매처 / 벤더 업체 |
| **`비고`** | `string` | **O** | 관련 참고사항 |
| `분야` | `string` | X | 용도별 분류 (예: 디자인, 오피스 등) |
| `부서` | `string` | X | 주관 부서 |
| `구독일` | `string` | X | 구독 만료 혹은 갱신일정 (구독SW 전용) |
| `유지보수여부` | `boolean` | X | 유지보수(MA) 계약 맺어져 있는지 유무 (영구SW 전용) |
---
## 4. 소프트웨어 사용자 정보 스키마 (`SWUser`)
개별 소프트웨어 라이선스가 임직원에게 점유/할당된 내역을 관리합니다.
| 속성명 | 타입 | 설명 |
|---|---|---|
| `id` | `string` | 사용자 할당 내역 고유 식별자 |
| `swId` | `string` | 사용하는 라이선스 모델의 부모 `SoftwareAsset.id` 와 외래키 관계 |
| `법인` | `string` | 소속 대상 법인 |
| `부서` | `string` | 소속 부서 |
| `팀` | `string` | 소속 팀 |
| `직위` | `string` | 임직원 직위/직급 |
| `이름` | `string` | 대상자 이름 |
| `사용기간` | `string` | 라이선스 사용 시작 및 반납(종료) 날짜/기간 |
| `신청서명` | `string` | 할당 승인된 결재 신청서 문서 명칭 |
---
## 5. 자산 변동 이력 스키마 (`HardwareLog`)
자산 상태 변경이나 구매, 폐기, 인가 등의 이력을 트래킹하기 위한 로그 데이터 모델입니다.
| 속성명 | 타입 | 설명 |
|---|---|---|
| `id` | `string` | 단일 히스토리 이력 식별 ID |
| `assetId` | `string` | 대상 자산의 ID 번호 |
| `date` | `string` | 변경 발생/기록 일자 |
| `details` | `string` | 상세 변경 내용 내역 |
| `user` | `string` | 해당 변경 및 관리를 수행한 관리자 이름 |