- TableListComponent: table_type_columns의 input_type 정보를 가져와서 숫자 포맷팅
- getColumnInputTypes API 추가로 컬럼별 입력 타입 조회
- columnMeta에 inputType 포함하여 formatCellValue에서 사용
- 테이블 관리에서 설정한 입력 타입(number/decimal)에 따라 자동으로 천 단위 콤마 표시
- 근본적인 해결: 컬럼명 기반이 아닌 실제 설정값 기반 포맷팅
- EditModal: 저장 완료 후 자동으로 닫히고 부모 테이블 새로고침
- buttonActions.ts: 저장 성공 후 closeEditModal 이벤트 발생
- InteractiveScreenViewerDynamic: onSave prop 추가하여 EditModal 연동
- InteractiveDataTable: EditModal 열 때 onSave 콜백으로 loadData 전달
- 두 가지 시나리오 모두 지원:
1. InteractiveScreenViewerDynamic 버튼의 onSave 호출
2. DynamicComponentRenderer 버튼의 buttonActions.ts 처리
✨ 새로운 기능
- 테이블 타입 관리에 테이블 복제 기능 추가
- 기존 테이블의 설정과 컬럼 정보를 복사하여 새 테이블 생성
- 최고 관리자만 사용 가능 (company_code = '*' AND userType = 'SUPER_ADMIN')
- 테이블 1개 선택 시에만 복제 버튼 활성화
🎨 UI 개선
- 테이블 목록에 '테이블 복제' 버튼 추가 (Copy 아이콘)
- CreateTableModal을 복제 모드로 재사용
- 복제 모드 시 제목/설명/버튼 텍스트 동적 변경
- 원본 테이블 정보 자동 로드
🔧 기술적 개선
- CreateTableModal에 mode/sourceTableName props 추가
- 복제 모드 감지 및 데이터 자동 로드 로직 구현
- API 타입 정의 수정 (ColumnListData 인터페이스 추가)
- 백엔드 응답 구조와 프론트엔드 타입 일치화
🐛 버그 수정
- API 응답 구조 불일치 문제 해결
- ColumnListResponse 타입 수정 (배열 → 객체)
- 데이터 파싱 로직 수정 (data.columns 접근)
- 디버그 로그 추가로 문제 추적 개선
📝 변경된 파일
- frontend/app/(main)/admin/tableMng/page.tsx
- frontend/components/admin/CreateTableModal.tsx
- frontend/lib/api/tableManagement.ts
- frontend/types/ddl.ts
- 테이블_복제_기능_구현_계획서.md (신규)
✅ 테스트 완료
- 최고 관리자 권한 체크
- 테이블 정보 로드
- 컬럼 정보 복제
- 새 테이블명 입력 및 검증
- 테이블 생성 및 목록 갱신
- frontend: screen.ts에 saveScreenLayout 함수 추가 (ScreenDesigner_new.tsx가 호출하던 누락된 함수)
- frontend: ScreenDesigner_new.tsx 저장 시 디버깅 로그 추가
- backend: screenManagementService.ts에 dataflowConfig 저장 확인 로그 추가
문제 원인:
- ScreenDesigner_new.tsx가 호출하던 screenApi.saveScreenLayout 함수가 정의되지 않음
- 이로 인해 레이아웃 저장이 실패했을 가능성
해결:
- saveScreenLayout 함수를 추가하여 정상적인 레이아웃 저장 가능
- 디버깅 로그를 통해 실제로 selectedDiagramId가 저장되는지 확인 가능
- 화면 관리 페이지에서 position.x === 0인 컴포넌트가 100% 너비로 표시되도록 수정
- 대시보드 뷰어에서 부모 컨테이너의 maxWidth 제한 제거하여 화면 전체 너비 활용
- AppLayout의 main 영역에 16px 내부 패딩 적용
- RealtimePreview 및 RealtimePreviewDynamic 컴포넌트에서 좌측 정렬 컴포넌트 너비 자동 조정
- 모바일 환경에서 화면 스케일링 비활성화 (반응형만 작동)
- table-mobile-fixed CSS 클래스 추가로 모바일 테이블 레이아웃 개선
- useResponsive 훅 추가로 반응형 감지 기능 구현
- 외부 커넥션 관리 테이블 표준화 (DB 연결, REST API 연결)
- 모든 관리자 테이블의 그림자 제거 (테이블 타입 관리 왼쪽 카드 제외)
- 테이블 타입 관리 왼쪽 카드 호버 효과 강화 (shadow-lg, bg-muted/20)
- 탭 컴포넌트 배경색 밝게 조정 (bg-muted/30)
- 탭 트리거 테두리 제거
- 모든 테이블 헤더의 회색 배경 제거 (bg-muted/50 → bg-background)
- 모든 테이블 행의 홀수 행 회색 배경 제거 (모든 행을 흰색 배경으로 통일)
- 호버 시에만 회색 배경이 나타나도록 통일
- TableListComponent, SingleTableWithSticky, 모든 관리자 테이블 컴포넌트에 적용
- 테이블 구조 표준화 문서 업데이트
- 모든 테이블 컴포넌트의 외곽 테두리(border) 제거
- 테이블 컨테이너의 라운드(rounded-lg) 제거
- 테이블 행 구분선(border-b)은 유지하여 데이터 구분
- FlowWidget과 TableListComponent에 동일한 스타일 적용
- 검색 필터 영역의 회색 배경(bg-muted/30) 제거
- 검색 필터 제목 제거
- AdvancedSearchFilters 컴포넌트의 '검색 필터' 제목 제거
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.