# 프로젝트: V2/V2 컴포넌트 설정 스키마 정비 ## 개요 레거시 컴포넌트를 제거하고, V2/V2 컴포넌트 전용 Zod 스키마와 기본값 레지스트리를 한 곳에서 관리한다. ## 핵심 기능 1. [x] 레거시 컴포넌트 스키마 제거 2. [x] V2 컴포넌트 overrides 스키마 정의 (16개) 3. [x] V2 컴포넌트 overrides 스키마 정의 (9개) 4. [x] 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-v2-repeater ## 정의된 V2 컴포넌트 (9개) - v2-input, v2-select, v2-date - v2-list, v2-layout, v2-group - v2-media, v2-biz, v2-hierarchy ## 테스트 계획 ### 1단계: 기본 기능 - [x] V2 레이아웃 저장 시 컴포넌트별 overrides 스키마 검증 통과 - [x] V2 컴포넌트 기본값과 스키마가 매칭됨 ### 2단계: 에러 케이스 - [x] 잘못된 overrides 입력 시 Zod 검증 실패 처리 (safeParse + console.warn + graceful fallback) - [x] 누락된 기본값 컴포넌트 저장 시 안전한 기본값 적용 (레지스트리 조회 → 빈 객체) ## 에러 처리 계획 - 스키마 파싱 실패 시 로그/에러 메시지 표준화 - 기본값 누락 시 안전한 fallback 적용 ## 진행 상태 - [x] 레거시 컴포넌트 제거 완료 - [x] V2/V2 스키마 정의 완료 - [x] 한 파일 통합 관리 완료 # 프로젝트: 화면 복제 기능 개선 (DB 구조 개편 후) ## 개요 채번/카테고리에서 `menu_objid` 의존성 제거 완료 후, 화면 복제 기능을 새 DB 구조에 맞게 수정하고 테스트합니다. ## 핵심 변경사항 ### DB 구조 변경 (완료) - 채번규칙: `menu_objid` 의존성 제거 → `table_name + column_name + company_code` 기반 - 카테고리: `menu_objid` 의존성 제거 → `table_name + column_name + company_code` 기반 - 복제 순서 의존성 문제 해결 ### 복제 옵션 정리 (완료) - [x] **삭제**: 코드 카테고리 + 코드 복사 옵션 - [x] **삭제**: 연쇄관계 설정 복사 옵션 - [x] **이름 변경**: "카테고리 매핑 + 값 복사" → "카테고리 값 복사" ### 현재 복제 옵션 (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` 검색 조건 추가 - 문자열/숫자 타입 모두 처리