# 프로젝트: 화면 관리 기능 개선 (복제/삭제/그룹 관리/테이블 설정) ## 개요 화면 관리 시스템의 복제, 삭제, 수정, 테이블 설정 기능을 전면 개선하여 효율적인 화면 관리를 지원합니다. ## 핵심 기능 ### 1. 단일 화면 복제 - [x] 우클릭 컨텍스트 메뉴에서 "복제" 선택 - [x] 화면명, 화면 코드 자동 생성 (중복 시 `_COPY` 접미사 추가) - [x] 연결된 모달 화면 함께 복제 - [x] 대상 그룹 선택 가능 - [x] 복제 후 목록 자동 새로고침 ### 2. 그룹(폴더) 전체 복제 - [x] 대분류 폴더 복제 시 모든 하위 폴더 + 화면 재귀적 복제 - [x] 정렬 순서(display_order) 유지 - [x] 대분류(최상위 그룹) 복제 시 경고 문구 표시 - [x] 정렬 순서 입력 필드 추가 - [x] 복제 모드 선택: 전체(폴더+화면), 폴더만, 화면만 - [x] 모달 스크롤 지원 (max-h-[90vh] overflow-y-auto) ### 3. 고급 옵션: 이름 일괄 변경 - [x] 찾을 텍스트 / 대체할 텍스트 (Find & Replace) - [x] 미리보기 기능 ### 4. 삭제 기능 - [x] 단일 화면 삭제 (휴지통으로 이동) - [x] 그룹 삭제 (화면 함께 삭제 옵션) - [x] 삭제 시 로딩 프로그레스 바 표시 ### 5. 화면 수정 기능 - [x] 우클릭 "수정" 메뉴로 화면 이름/그룹/역할/정렬 순서 변경 - [x] 그룹 추가/수정 시 상위 그룹 기반 자동 회사 코드 설정 ### 6. 테이블 설정 기능 (TableSettingModal) - [x] 화면 설정 모달에 "테이블 설정" 탭 추가 - [x] 입력 타입 변경 시 관련 참조 필드 자동 초기화 - 엔티티→텍스트: referenceTable, referenceColumn, displayColumn 초기화 - 코드→다른 타입: codeCategory, codeValue 초기화 - [x] 데이터 일관성 유지 (inputType ↔ referenceTable 연동) - [x] 조인 배지 단일화 (FK 배지 제거, 조인 배지만 표시) ### 7. 회사 코드 지원 (최고 관리자) - [x] 대상 회사 선택 가능 - [x] 상위 그룹 선택 시 자동 회사 코드 설정 ## 관련 파일 - `frontend/components/screen/CopyScreenModal.tsx` - 복제 모달 - `frontend/components/screen/ScreenGroupTreeView.tsx` - 트리 뷰 + 컨텍스트 메뉴 - `frontend/components/screen/TableSettingModal.tsx` - 테이블 설정 모달 - `frontend/components/screen/ScreenSettingModal.tsx` - 화면 설정 모달 (테이블 설정 탭 포함) - `frontend/lib/api/screen.ts` - 화면 API - `frontend/lib/api/screenGroup.ts` - 그룹 API - `frontend/lib/api/tableManagement.ts` - 테이블 관리 API ## 진행 상태 - [완료] 단일 화면 복제 + 새로고침 - [완료] 그룹 전체 복제 (재귀적) - [완료] 고급 옵션: 이름 일괄 변경 (Find & Replace) - [완료] 단일 화면/그룹 삭제 + 로딩 프로그레스 - [완료] 화면 수정 (이름/그룹/역할/순서) - [완료] 테이블 설정 탭 추가 - [완료] 입력 타입 변경 시 관련 필드 초기화 - [완료] 그룹 복제 모달 스크롤 문제 수정 --- # 이전 프로젝트: 외부 REST API 커넥션 관리 확장 (POST/Body 지원) ## 개요 현재 GET 방식 위주로 구현된 외부 REST API 커넥션 관리 기능을 확장하여, POST, PUT, DELETE 등 다양한 HTTP 메서드와 JSON Request Body를 설정하고 테스트할 수 있도록 개선합니다. 이를 통해 토큰 발급 API나 데이터 전송 API 등 다양한 외부 시스템과의 연동을 지원합니다. ## 핵심 기능 1. **DB 스키마 확장**: `external_rest_api_connections` 테이블에 `default_method`, `default_body` 컬럼 추가 2. **백엔드 로직 개선**: - 커넥션 생성/수정 시 메서드와 바디 정보 저장 - 연결 테스트 시 설정된 메서드와 바디를 사용하여 요청 수행 - SSL 인증서 검증 우회 옵션 적용 (내부망/테스트망 지원) 3. **프론트엔드 UI 개선**: - 커넥션 설정 모달에 HTTP 메서드 선택(Select) 및 Body 입력(Textarea/JSON Editor) 필드 추가 - 테스트 기능에서 Body 데이터 포함하여 요청 전송 ## 테스트 계획 ### 1단계: 기본 기능 및 DB 마이그레이션 - [x] DB 마이그레이션 스크립트 작성 및 실행 - [x] 백엔드 타입 정의 수정 (`default_method`, `default_body` 추가) ### 2단계: 백엔드 로직 구현 - [x] 커넥션 생성/수정 API 수정 (필드 추가) - [x] 커넥션 상세 조회 API 확인 - [x] 연결 테스트 API 수정 (Method, Body 반영하여 요청 전송) ### 3단계: 프론트엔드 구현 - [x] 커넥션 관리 리스트/모달 UI 수정 - [x] 연결 테스트 UI 수정 및 기능 확인 ## 에러 처리 계획 - **JSON 파싱 에러**: Body 입력값이 유효한 JSON이 아닐 경우 에러 처리 - **API 호출 에러**: 외부 API 호출 실패 시 상세 로그 기록 및 클라이언트에 에러 메시지 전달 - **SSL 인증 에러**: `rejectUnauthorized: false` 옵션으로 처리 (기존 `RestApiConnector` 활용) ## 진행 상태 - [완료] 모든 단계 구현 완료