ERP-node/PLAN.MD

4.4 KiB

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

개요

화면 관리 시스템의 복제 및 삭제 기능을 전면 개선하여, 단일 화면 복제, 그룹(폴더) 전체 복제, 정렬 순서 유지, 일괄 이름 변경 등 다양한 고급 기능을 지원합니다.

핵심 기능

1. 단일 화면 복제

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

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

  • 대분류 폴더 복제 시 모든 하위 폴더 + 화면 재귀적 복제
  • 정렬 순서(display_order) 유지
    • 그룹 생성 시 원본 display_order 전달
    • 화면 추가 시 원본 display_order 유지
    • 하위 그룹들 display_order 순으로 정렬 후 복제
  • 대분류(최상위 그룹) 복제 시 경고 문구 표시
  • 정렬 순서 입력 필드 추가 (사용자가 직접 수정 가능)
  • 원본 그룹 정보 표시 개선
    • 직접 포함 화면 수
    • 하위 그룹 수
    • 복제될 총 화면 수 (하위 그룹 포함)

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

  • 삭제할 텍스트 지정 (모든 폴더/화면 이름에서 제거)
  • 추가할 접미사 지정 (기본값: " (복제)")
  • 미리보기 기능

4. 삭제 기능

  • 단일 화면 삭제 (휴지통으로 이동)
  • 그룹 삭제 시 옵션 선택
    • "화면도 함께 삭제" 체크박스
    • 체크 시: 그룹 + 포함된 화면 모두 삭제
    • 미체크 시: 화면은 "미분류"로 이동

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

  • 대상 회사 선택 가능
  • 복제된 그룹/화면에 선택한 회사 코드 적용

관련 파일

  • frontend/components/screen/CopyScreenModal.tsx - 복제 모달 (화면/그룹 통합)
  • frontend/components/screen/ScreenGroupTreeView.tsx - 트리 뷰 + 컨텍스트 메뉴
  • frontend/lib/api/screen.ts - 화면 API (복제, 삭제)
  • frontend/lib/api/screenGroup.ts - 그룹 API

진행 상태

  • [완료] 단일 화면 복제 + 새로고침
  • [완료] 그룹 전체 복제 (재귀적)
  • [완료] 정렬 순서(display_order) 유지
  • [완료] 대분류 경고 문구
  • [완료] 정렬 순서 입력 필드
  • [완료] 고급 옵션: 이름 일괄 변경
  • [완료] 단일 화면 삭제
  • [완료] 그룹 삭제 (화면 함께 삭제 옵션)

이전 프로젝트: 외부 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 활용)

진행 상태

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