Files
vexplor/PLAN.MD
kjs 4fe512aeda feat: V2/Unified 컴포넌트 설정 스키마 정비 및 레거시 컴포넌트 제거
- 레거시 컴포넌트를 제거하고, V2 및 Unified 컴포넌트 전용 Zod 스키마와 기본값 레지스트리를 통합 관리합니다.
- V2 컴포넌트와 Unified 컴포넌트의 overrides 스키마를 정의하고, 기본값과의 병합 로직을 추가하였습니다.
- 레이아웃 조회 시 V2 테이블을 우선적으로 조회하고, 없을 경우 V1 테이블을 조회하도록 개선하였습니다.
- 관련된 테스트 계획 및 에러 처리 계획을 수립하여 안정성을 높였습니다.
2026-01-28 16:08:19 +09:00

4.7 KiB

프로젝트: V2/Unified 컴포넌트 설정 스키마 정비

개요

레거시 컴포넌트를 제거하고, V2/Unified 컴포넌트 전용 Zod 스키마와 기본값 레지스트리를 한 곳에서 관리한다.

핵심 기능

  1. 레거시 컴포넌트 스키마 제거
  2. V2 컴포넌트 overrides 스키마 정의 (16개)
  3. Unified 컴포넌트 overrides 스키마 정의 (9개)
  4. componentConfig.ts 한 파일에서 통합 관리

정의된 V2 컴포넌트 (18개)

  • v2-table-list, v2-button-primary, v2-text-display
  • v2-split-panel-layout, v2-section-card, v2-section-paper
  • v2-divider-line, v2-repeat-container, v2-rack-structure
  • v2-numbering-rule, v2-category-manager, v2-pivot-grid
  • v2-location-swap-selector, v2-aggregation-widget
  • v2-card-display, v2-table-search-widget, v2-tabs-widget
  • v2-unified-repeater

정의된 Unified 컴포넌트 (9개)

  • unified-input, unified-select, unified-date
  • unified-list, unified-layout, unified-group
  • unified-media, unified-biz, unified-hierarchy

테스트 계획

1단계: 기본 기능

  • V2 레이아웃 저장 시 컴포넌트별 overrides 스키마 검증 통과
  • Unified 컴포넌트 기본값과 스키마가 매칭됨

2단계: 에러 케이스

  • 잘못된 overrides 입력 시 Zod 검증 실패 처리 (safeParse + console.warn + graceful fallback)
  • 누락된 기본값 컴포넌트 저장 시 안전한 기본값 적용 (레지스트리 조회 → 빈 객체)

에러 처리 계획

  • 스키마 파싱 실패 시 로그/에러 메시지 표준화
  • 기본값 누락 시 안전한 fallback 적용

진행 상태

  • 레거시 컴포넌트 제거 완료
  • V2/Unified 스키마 정의 완료
  • 한 파일 통합 관리 완료

프로젝트: 화면 복제 기능 개선 (DB 구조 개편 후)

개요

채번/카테고리에서 menu_objid 의존성 제거 완료 후, 화면 복제 기능을 새 DB 구조에 맞게 수정하고 테스트합니다.

핵심 변경사항

DB 구조 변경 (완료)

  • 채번규칙: menu_objid 의존성 제거 → table_name + column_name + company_code 기반
  • 카테고리: menu_objid 의존성 제거 → table_name + column_name + company_code 기반
  • 복제 순서 의존성 문제 해결

복제 옵션 정리 (완료)

  • 삭제: 코드 카테고리 + 코드 복사 옵션
  • 삭제: 연쇄관계 설정 복사 옵션
  • 이름 변경: "카테고리 매핑 + 값 복사" → "카테고리 값 복사"

현재 복제 옵션 (3개)

  1. 채번 규칙 복사 - 채번규칙 복제
  2. 카테고리 값 복사 - 카테고리 값 복제 (table_column_category_values)
  3. 테이블 타입관리 입력타입 설정 복사 - table_type_columns 복제

테스트 계획

1. 화면 간 연결 복제 테스트

  • 수주관리 1번→2번→3번→4번 화면 연결 상태에서 복제
  • 복제 후 연결 관계가 유지되는지 확인
  • 각 화면의 고유 키값이 새로운 화면을 참조하도록 변경되는지 확인

2. 제어관리 복제 테스트

  • 다른 회사로 제어관리 복제
  • 복제된 플로우 스텝/연결이 정상 작동하는지 확인

3. 추가 옵션 복제 테스트

  • 채번규칙 복사 정상 작동 확인
  • 카테고리 값 복사 정상 작동 확인
  • 테이블 타입관리 입력타입 설정 복사 정상 작동 확인

4. 기본 복제 테스트

  • 단일 화면 복제 (모달 포함)
  • 그룹 전체 복제 (재귀적)
  • 메뉴 동기화 정상 작동

관련 파일

  • frontend/components/screen/CopyScreenModal.tsx - 복제 모달
  • frontend/components/screen/ScreenGroupTreeView.tsx - 트리 뷰 + 컨텍스트 메뉴
  • backend-node/src/services/screenManagementService.ts - 복제 서비스
  • backend-node/src/services/numberingRuleService.ts - 채번규칙 서비스
  • docs/DB_STRUCTURE_DIAGRAM.md - DB 구조 문서

진행 상태

  • [완료] DB 구조 개편 (menu_objid 의존성 제거)
  • [완료] 복제 옵션 정리 (코드카테고리/연쇄관계 삭제, 이름 변경)
  • [완료] 화면 간 연결 복제 버그 수정 (targetScreenId 매핑 추가)
  • [대기] 화면 간 연결 복제 테스트
  • [대기] 제어관리 복제 테스트
  • [대기] 추가 옵션 복제 테스트

수정 이력

2026-01-26: 버튼 targetScreenId 매핑 버그 수정

문제: 그룹 복제 시 버튼의 targetScreenId가 새 화면으로 매핑되지 않음

  • 수주관리 1→2→3→4 화면 복제 시 연결이 깨지는 문제

수정 파일: backend-node/src/services/screenManagementService.ts

  • updateTabScreenReferences 함수에 targetScreenId 처리 로직 추가
  • 쿼리에 targetScreenId 검색 조건 추가
  • 문자열/숫자 타입 모두 처리