# Phase 0: 컴포넌트 사용 현황 분석 ## 분석 일시 2024-12-19 ## 분석 대상 - 활성화된 화면 정의 (screen_definitions.is_active = 'Y') - 화면 레이아웃 (screen_layouts) --- ## 1. 컴포넌트별 사용량 순위 ### 상위 15개 컴포넌트 | 순위 | 컴포넌트 | 사용 횟수 | 사용 화면 수 | V2 매핑 | | :--: | :-------------------------- | :-------: | :----------: | :------------------------------ | | 1 | button-primary | 571 | 364 | V2Input (type: button) | | 2 | text-input | 805 | 166 | **V2Input (type: text)** | | 3 | table-list | 130 | 130 | V2List (viewMode: table) | | 4 | table-search-widget | 127 | 127 | V2List (searchable: true) | | 5 | select-basic | 121 | 76 | **V2Select** | | 6 | number-input | 86 | 34 | **V2Input (type: number)** | | 7 | date-input | 83 | 51 | **V2Date** | | 8 | file-upload | 41 | 18 | V2Media (type: file) | | 9 | tabs-widget | 39 | 39 | V2Group (type: tabs) | | 10 | split-panel-layout | 39 | 39 | V2Layout (type: split) | | 11 | category-manager | 38 | 38 | V2Biz (type: category) | | 12 | numbering-rule | 31 | 31 | V2Biz (type: numbering) | | 13 | selected-items-detail-input | 29 | 29 | 복합 컴포넌트 | | 14 | modal-repeater-table | 25 | 25 | V2List (modal: true) | | 15 | image-widget | 29 | 29 | V2Media (type: image) | --- ## 2. V2 컴포넌트별 통합 대상 분석 ### V2Input (예상 통합 대상: 891개) | 기존 컴포넌트 | 사용 횟수 | 비율 | | :------------ | :-------: | :---: | | text-input | 805 | 90.3% | | number-input | 86 | 9.7% | **우선순위: 1위** - 가장 많이 사용되는 컴포넌트 ### V2Select (예상 통합 대상: 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위** - 다양한 모드 지원 필요 ### V2Date (예상 통합 대상: 83개) | 기존 컴포넌트 | 사용 횟수 | | :---------------- | :-------: | | date-input (null) | 58 | | date-input (date) | 23 | | date-input (text) | 2 | **우선순위: 3위** ### V2List (예상 통합 대상: 283개) | 기존 컴포넌트 | 사용 횟수 | 비고 | | :-------------------- | :-------: | :---------- | | table-list | 130 | 기본 테이블 | | table-search-widget | 127 | 검색 테이블 | | modal-repeater-table | 25 | 모달 반복 | | repeater-field-group | 15 | 반복 필드 | | card-display | 11 | 카드 표시 | | simple-repeater-table | 1 | 단순 반복 | **우선순위: 4위** - 핵심 데이터 표시 컴포넌트 ### V2Media (예상 통합 대상: 70개) | 기존 컴포넌트 | 사용 횟수 | | :------------ | :-------: | | file-upload | 41 | | image-widget | 29 | ### V2Layout (예상 통합 대상: 62개) | 기존 컴포넌트 | 사용 횟수 | | :------------------ | :-------: | | split-panel-layout | 39 | | screen-split-panel | 21 | | split-panel-layout2 | 2 | ### V2Group (예상 통합 대상: 99개) | 기존 컴포넌트 | 사용 횟수 | | :-------------------- | :-------: | | tabs-widget | 39 | | conditional-container | 23 | | section-paper | 11 | | section-card | 10 | | text-display | 13 | | universal-form-modal | 7 | | repeat-screen-modal | 5 | ### V2Biz (예상 통합 대상: 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 우선순위 (즉시 효과가 큰 컴포넌트) | 순위 | V2 컴포넌트 | 통합 대상 수 | 영향 화면 수 | 이유 | | :---: | :---------------- | :----------: | :----------: | :--------------- | | **1** | **V2Input** | 891개 | 200+ | 가장 많이 사용 | | **2** | **V2Select** | 140개 | 100+ | 다양한 모드 필요 | | **3** | **V2Date** | 83개 | 51 | 비교적 단순 | ### Phase 2 우선순위 (데이터 표시 컴포넌트) | 순위 | V2 컴포넌트 | 통합 대상 수 | 이유 | | :---: | :---------------- | :----------: | :--------------- | | **4** | **V2List** | 283개 | 핵심 데이터 표시 | | **5** | **V2Layout** | 62개 | 레이아웃 구조 | | **6** | **V2Group** | 99개 | 콘텐츠 그룹화 | ### Phase 3 우선순위 (특수 컴포넌트) | 순위 | V2 컴포넌트 | 통합 대상 수 | 이유 | | :---: | :------------------- | :----------: | :------------ | | **7** | **V2Media** | 70개 | 파일/이미지 | | **8** | **V2Biz** | 79개 | 비즈니스 특화 | | **9** | **V2Hierarchy** | 0개 | 신규 기능 | --- ## 4. 주요 발견 사항 ### 4.1 button-primary 분리 검토 - 사용량: 571개 (1위) - 현재 계획: V2Input에 포함 - **제안**: 별도 `V2Button` 컴포넌트로 분리 검토 - 버튼은 입력과 성격이 다름 - 액션 타입, 스타일, 권한 등 복잡한 설정 필요 ### 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. [ ] V2Input 구현 시작 (Phase 1-1)