ERP-node/docs/phase0-component-usage-anal...

7.1 KiB

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)