ERP-node/PLAN.MD

4.9 KiB

프로젝트: 화면 관리 기능 개선 (복제/삭제/그룹 관리/테이블 설정)

개요

화면 관리 시스템의 복제, 삭제, 수정, 테이블 설정 기능을 전면 개선하여 효율적인 화면 관리를 지원합니다.

핵심 기능

1. 단일 화면 복제

  • 우클릭 컨텍스트 메뉴에서 "복제" 선택
  • 화면명, 화면 코드 자동 생성 (중복 시 _COPY 접미사 추가)
  • 연결된 모달 화면 함께 복제
  • 대상 그룹 선택 가능
  • 복제 후 목록 자동 새로고침

2. 그룹(폴더) 전체 복제

  • 대분류 폴더 복제 시 모든 하위 폴더 + 화면 재귀적 복제
  • 정렬 순서(display_order) 유지
  • 대분류(최상위 그룹) 복제 시 경고 문구 표시
  • 정렬 순서 입력 필드 추가
  • 복제 모드 선택: 전체(폴더+화면), 폴더만, 화면만
  • 모달 스크롤 지원 (max-h-[90vh] overflow-y-auto)

3. 고급 옵션: 이름 일괄 변경

  • 찾을 텍스트 / 대체할 텍스트 (Find & Replace)
  • 미리보기 기능

4. 삭제 기능

  • 단일 화면 삭제 (휴지통으로 이동)
  • 그룹 삭제 (화면 함께 삭제 옵션)
  • 삭제 시 로딩 프로그레스 바 표시

5. 화면 수정 기능

  • 우클릭 "수정" 메뉴로 화면 이름/그룹/역할/정렬 순서 변경
  • 그룹 추가/수정 시 상위 그룹 기반 자동 회사 코드 설정

6. 테이블 설정 기능 (TableSettingModal)

  • 화면 설정 모달에 "테이블 설정" 탭 추가
  • 입력 타입 변경 시 관련 참조 필드 자동 초기화
    • 엔티티→텍스트: referenceTable, referenceColumn, displayColumn 초기화
    • 코드→다른 타입: codeCategory, codeValue 초기화
  • 데이터 일관성 유지 (inputType ↔ referenceTable 연동)
  • 조인 배지 단일화 (FK 배지 제거, 조인 배지만 표시)

7. 회사 코드 지원 (최고 관리자)

  • 대상 회사 선택 가능
  • 상위 그룹 선택 시 자동 회사 코드 설정

관련 파일

  • 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 마이그레이션

  • DB 마이그레이션 스크립트 작성 및 실행
  • 백엔드 타입 정의 수정 (default_method, default_body 추가)

2단계: 백엔드 로직 구현

  • 커넥션 생성/수정 API 수정 (필드 추가)
  • 커넥션 상세 조회 API 확인
  • 연결 테스트 API 수정 (Method, Body 반영하여 요청 전송)

3단계: 프론트엔드 구현

  • 커넥션 관리 리스트/모달 UI 수정
  • 연결 테스트 UI 수정 및 기능 확인

에러 처리 계획

  • JSON 파싱 에러: Body 입력값이 유효한 JSON이 아닐 경우 에러 처리
  • API 호출 에러: 외부 API 호출 실패 시 상세 로그 기록 및 클라이언트에 에러 메시지 전달
  • SSL 인증 에러: rejectUnauthorized: false 옵션으로 처리 (기존 RestApiConnector 활용)

진행 상태

  • [완료] 모든 단계 구현 완료