# Phase 0: 컴포넌트 사용 현황 분석 ## 분석 일시 2024-12-19 ## 분석 대상 - 활성화된 화면 정의 (screen_definitions.is_active = 'Y') - 화면 레이아웃 (screen_layouts) --- ## 1. 컴포넌트별 사용량 순위 ### 상위 15개 컴포넌트 | 순위 | 컴포넌트 | 사용 횟수 | 사용 화면 수 | Unified 매핑 | | :--: | :-------------------------- | :-------: | :----------: | :------------------------------ | | 1 | button-primary | 571 | 364 | UnifiedInput (type: button) | | 2 | text-input | 805 | 166 | **UnifiedInput (type: text)** | | 3 | table-list | 130 | 130 | UnifiedList (viewMode: table) | | 4 | table-search-widget | 127 | 127 | UnifiedList (searchable: true) | | 5 | select-basic | 121 | 76 | **UnifiedSelect** | | 6 | number-input | 86 | 34 | **UnifiedInput (type: number)** | | 7 | date-input | 83 | 51 | **UnifiedDate** | | 8 | file-upload | 41 | 18 | UnifiedMedia (type: file) | | 9 | tabs-widget | 39 | 39 | UnifiedGroup (type: tabs) | | 10 | split-panel-layout | 39 | 39 | UnifiedLayout (type: split) | | 11 | category-manager | 38 | 38 | UnifiedBiz (type: category) | | 12 | numbering-rule | 31 | 31 | UnifiedBiz (type: numbering) | | 13 | selected-items-detail-input | 29 | 29 | 복합 컴포넌트 | | 14 | modal-repeater-table | 25 | 25 | UnifiedList (modal: true) | | 15 | image-widget | 29 | 29 | UnifiedMedia (type: image) | --- ## 2. Unified 컴포넌트별 통합 대상 분석 ### UnifiedInput (예상 통합 대상: 891개) | 기존 컴포넌트 | 사용 횟수 | 비율 | | :------------ | :-------: | :---: | | text-input | 805 | 90.3% | | number-input | 86 | 9.7% | **우선순위: 1위** - 가장 많이 사용되는 컴포넌트 ### UnifiedSelect (예상 통합 대상: 140개) | 기존 컴포넌트 | 사용 횟수 | widgetType | | :------------------------ | :-------: | :--------- | | select-basic (category) | 65 | category | | select-basic (null) | 50 | - | | autocomplete-search-input | 19 | entity | | entity-search-input | 20 | entity | | checkbox-basic | 7 | checkbox | | radio-basic | 5 | radio | **우선순위: 2위** - 다양한 모드 지원 필요 ### UnifiedDate (예상 통합 대상: 83개) | 기존 컴포넌트 | 사용 횟수 | | :---------------- | :-------: | | date-input (null) | 58 | | date-input (date) | 23 | | date-input (text) | 2 | **우선순위: 3위** ### UnifiedList (예상 통합 대상: 283개) | 기존 컴포넌트 | 사용 횟수 | 비고 | | :-------------------- | :-------: | :---------- | | table-list | 130 | 기본 테이블 | | table-search-widget | 127 | 검색 테이블 | | modal-repeater-table | 25 | 모달 반복 | | repeater-field-group | 15 | 반복 필드 | | card-display | 11 | 카드 표시 | | simple-repeater-table | 1 | 단순 반복 | **우선순위: 4위** - 핵심 데이터 표시 컴포넌트 ### UnifiedMedia (예상 통합 대상: 70개) | 기존 컴포넌트 | 사용 횟수 | | :------------ | :-------: | | file-upload | 41 | | image-widget | 29 | ### UnifiedLayout (예상 통합 대상: 62개) | 기존 컴포넌트 | 사용 횟수 | | :------------------ | :-------: | | split-panel-layout | 39 | | screen-split-panel | 21 | | split-panel-layout2 | 2 | ### UnifiedGroup (예상 통합 대상: 99개) | 기존 컴포넌트 | 사용 횟수 | | :-------------------- | :-------: | | tabs-widget | 39 | | conditional-container | 23 | | section-paper | 11 | | section-card | 10 | | text-display | 13 | | universal-form-modal | 7 | | repeat-screen-modal | 5 | ### UnifiedBiz (예상 통합 대상: 79개) | 기존 컴포넌트 | 사용 횟수 | | :--------------------- | :-------: | | category-manager | 38 | | numbering-rule | 31 | | flow-widget | 8 | | rack-structure | 2 | | related-data-buttons | 2 | | location-swap-selector | 2 | | tax-invoice-list | 1 | --- ## 3. 구현 우선순위 결정 ### Phase 1 우선순위 (즉시 효과가 큰 컴포넌트) | 순위 | Unified 컴포넌트 | 통합 대상 수 | 영향 화면 수 | 이유 | | :---: | :---------------- | :----------: | :----------: | :--------------- | | **1** | **UnifiedInput** | 891개 | 200+ | 가장 많이 사용 | | **2** | **UnifiedSelect** | 140개 | 100+ | 다양한 모드 필요 | | **3** | **UnifiedDate** | 83개 | 51 | 비교적 단순 | ### Phase 2 우선순위 (데이터 표시 컴포넌트) | 순위 | Unified 컴포넌트 | 통합 대상 수 | 이유 | | :---: | :---------------- | :----------: | :--------------- | | **4** | **UnifiedList** | 283개 | 핵심 데이터 표시 | | **5** | **UnifiedLayout** | 62개 | 레이아웃 구조 | | **6** | **UnifiedGroup** | 99개 | 콘텐츠 그룹화 | ### Phase 3 우선순위 (특수 컴포넌트) | 순위 | Unified 컴포넌트 | 통합 대상 수 | 이유 | | :---: | :------------------- | :----------: | :------------ | | **7** | **UnifiedMedia** | 70개 | 파일/이미지 | | **8** | **UnifiedBiz** | 79개 | 비즈니스 특화 | | **9** | **UnifiedHierarchy** | 0개 | 신규 기능 | --- ## 4. 주요 발견 사항 ### 4.1 button-primary 분리 검토 - 사용량: 571개 (1위) - 현재 계획: UnifiedInput에 포함 - **제안**: 별도 `UnifiedButton` 컴포넌트로 분리 검토 - 버튼은 입력과 성격이 다름 - 액션 타입, 스타일, 권한 등 복잡한 설정 필요 ### 4.2 conditional-container 처리 - 사용량: 23개 - 현재 계획: 공통 conditional 속성으로 통합 - **확인 필요**: 기존 화면에서 어떻게 마이그레이션할지 ### 4.3 category 관련 컴포넌트 - select-basic (category): 65개 - category-manager: 38개 - **총 103개**의 카테고리 관련 컴포넌트 - 카테고리 시스템 통합 중요 --- ## 5. 다음 단계 1. [ ] 데이터 마이그레이션 전략 설계 (Phase 0-2) 2. [ ] sys_input_type JSON Schema 설계 (Phase 0-3) 3. [ ] DynamicConfigPanel 프로토타입 (Phase 0-4) 4. [ ] UnifiedInput 구현 시작 (Phase 1-1)