[Refactor] 소프트웨어 자산 데이터 스키마 통합 및 백엔드/프론트엔드 최적화 완료 #15

Open
opened 2026-04-30 09:37:19 +09:00 by Taehoon · 0 comments
Owner

[Refactor] 소프트웨어 자산 데이터 스키마 통합 및 백엔드/프론트엔드 최적화 완료

1. 개요 (Overview)

기존 시스템에 분산되어 있던 구독/영구 소프트웨어 자산 테이블 구조를 최신 통합 스키마(asset_software_subscription, asset_software_perpetual)로 이관하고, 관련 API 엔드포인트 및 프론트엔드 데이터 처리 로직을 전면 개편하였습니다. 이를 통해 데이터 정합성과 시스템의 전반적인 안정성을 확보했습니다.

2. 상세 작업 내역 (Changes)

A. 데이터베이스 & 백엔드 (Backend)

  • SW 스키마 통합:
    • subscription_sw, permanent_sw 형태의 기존 테이블을 신규 asset_software_* 구조로 변경.
    • 이관 시 계정 정보(account_name) 추가 및 구매/시작/만료일 등 세부 속성 맵핑 강화.
  • API 안정화 (server.js):
    • 하드웨어(PC/서버 등) 조회 시 발생하던 필드 매핑 참조 오류(HW_SELECT_FIELDS) 해결.
    • 전역 에러 핸들링 도입: 빈 응답([]) 반환 처리로 프론트엔드 크래시 방지.
    • 요청 디버깅을 위한 Request Logger([ISO-Date] METHOD URL) 도입.

B. 프론트엔드 (Frontend)

  • API 엔드포인트 동기화 (src/core/state.ts):
    • 모든 자산 로딩 및 일괄 저장(Batch Save) 로직을 최신 통합 API 경로로 맵핑(api/asset/.../batch).
    • 데이터 로드 시 빈 객체/배열 검증 로직 추가.
  • 날짜 정규화 고도화 (src/core/utils.ts):
    • YYYY.MM.DD 포맷 외에 YYYYMM(6자리) 포맷 데이터도 정상 파싱하도록 로직(normalizeDate) 보완.
  • 할당 수량 로직 최적화 (SwDashboard.ts, SwListView.ts):
    • 통합된 사용자 할당 구조(asset_software_assignment)를 기반으로 현재 할당된 총 수량 및 잔여(가용) 라이선스 수량 계산 로직 전면 수정.

C. 환경 정리 (Cleanup)

  • 사용이 완료된 임시 진단/이관 스크립트 전량 삭제 (check_db.js, diagnose_*.js, migrate_sw_data.js 등).
  • 관련 임시 이슈 문서(docs/issues/...) 제거 완료.

3. 검증 (Verification)

  • 서버(Vite, Express) 정상 구동 및 로컬/네트워크(Host) 접속 확인.
  • 프론트엔드 대시보드 및 리스트 페이지(PC, 서버, SW, 클라우드 등) 에러 없는 정상 렌더링 확인.
  • 진단 스크립트 및 더미 파일이 최종 브랜치 커밋에서 제외되었음을 확인.
### [Refactor] 소프트웨어 자산 데이터 스키마 통합 및 백엔드/프론트엔드 최적화 완료 #### 1. 개요 (Overview) 기존 시스템에 분산되어 있던 구독/영구 소프트웨어 자산 테이블 구조를 최신 통합 스키마(`asset_software_subscription`, `asset_software_perpetual`)로 이관하고, 관련 API 엔드포인트 및 프론트엔드 데이터 처리 로직을 전면 개편하였습니다. 이를 통해 데이터 정합성과 시스템의 전반적인 안정성을 확보했습니다. #### 2. 상세 작업 내역 (Changes) **A. 데이터베이스 & 백엔드 (Backend)** - **SW 스키마 통합**: - `subscription_sw`, `permanent_sw` 형태의 기존 테이블을 신규 `asset_software_*` 구조로 변경. - 이관 시 계정 정보(`account_name`) 추가 및 구매/시작/만료일 등 세부 속성 맵핑 강화. - **API 안정화 (`server.js`)**: - 하드웨어(PC/서버 등) 조회 시 발생하던 필드 매핑 참조 오류(`HW_SELECT_FIELDS`) 해결. - 전역 에러 핸들링 도입: 빈 응답(`[]`) 반환 처리로 프론트엔드 크래시 방지. - 요청 디버깅을 위한 Request Logger(`[ISO-Date] METHOD URL`) 도입. **B. 프론트엔드 (Frontend)** - **API 엔드포인트 동기화 (`src/core/state.ts`)**: - 모든 자산 로딩 및 일괄 저장(Batch Save) 로직을 최신 통합 API 경로로 맵핑(`api/asset/.../batch`). - 데이터 로드 시 빈 객체/배열 검증 로직 추가. - **날짜 정규화 고도화 (`src/core/utils.ts`)**: - `YYYY.MM.DD` 포맷 외에 `YYYYMM`(6자리) 포맷 데이터도 정상 파싱하도록 로직(`normalizeDate`) 보완. - **할당 수량 로직 최적화 (`SwDashboard.ts`, `SwListView.ts`)**: - 통합된 사용자 할당 구조(`asset_software_assignment`)를 기반으로 현재 할당된 총 수량 및 잔여(가용) 라이선스 수량 계산 로직 전면 수정. **C. 환경 정리 (Cleanup)** - 사용이 완료된 임시 진단/이관 스크립트 전량 삭제 (`check_db.js`, `diagnose_*.js`, `migrate_sw_data.js` 등). - 관련 임시 이슈 문서(`docs/issues/...`) 제거 완료. #### 3. 검증 (Verification) - [x] 서버(Vite, Express) 정상 구동 및 로컬/네트워크(Host) 접속 확인. - [x] 프론트엔드 대시보드 및 리스트 페이지(PC, 서버, SW, 클라우드 등) 에러 없는 정상 렌더링 확인. - [x] 진단 스크립트 및 더미 파일이 최종 브랜치 커밋에서 제외되었음을 확인.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Taehoon/ITAM#15