- 테이블 컬럼의 DISTINCT 값을 조회하는 API를 추가하였습니다. 이 API는 특정 테이블과 컬럼에서 DISTINCT 값을 반환하여 선택박스 옵션으로 사용할 수 있도록 합니다.
- API 호출 시 멀티테넌시를 고려하여 회사 코드에 따라 필터링을 적용하였습니다.
- 관련된 라우터 설정을 추가하여 API 접근을 가능하게 하였습니다.
- 프론트엔드에서 DISTINCT 값을 조회할 수 있도록 UnifiedSelect 컴포넌트를 업데이트하였습니다.
- `inputType` 사용 가이드를 삭제하였습니다. 이 가이드는 더 이상 필요하지 않으며, 관련 내용은 다른 문서로 통합되었습니다.
- 다국어 지원 컴포넌트 개발 가이드를 삭제하였습니다. 이 문서는 `component-development-guide.mdc`로 통합되어 더 이상 사용되지 않습니다.
- 통합된 가이드는 새로운 구조와 내용을 포함하고 있어 개발자들이 참고할 수 있도록 안내합니다.
- 화면 컴포넌트 개발 가이드를 개선하여 핵심 원칙과 패턴을 명확히 설명하였습니다.
- 목차를 재구성하고, V2 컴포넌트 규칙, 표준 Props 인터페이스, 멀티테넌시 관련 내용을 추가하였습니다.
- 각 컴포넌트의 역할과 사용법을 상세히 설명하여 개발자들이 이해하기 쉽게 하였습니다.
- API 호출 시 autoFilter 패턴과 렌더링 최적화 패턴을 포함하여 가이드의 실용성을 높였습니다.
- 렉 구조 컴포넌트에서 v2-rack-structure를 지원하도록 수정하였습니다. 기존의 rack-structure 컴포넌트는 deprecated 처리되었습니다.
- 불필요한 콘솔 로그 메시지를 제거하여 코드의 가독성을 향상시켰습니다.
- 관련된 컴포넌트에서 v2 구조에 맞게 변경 사항을 반영하였습니다.
- 카테고리 값 관리 컴포넌트에 체크박스를 통한 다중 선택 기능을 추가하였습니다.
- 선택된 카테고리를 일괄 삭제할 수 있는 다이얼로그를 구현하였습니다.
- 테이블 관리 서비스에서 다중 선택 처리 로직을 추가하여, 파이프(|)로 구분된 값을 처리하도록 개선하였습니다.
- 관련된 로그 메시지를 추가하여 다중 선택 및 삭제 과정에서의 정보를 기록하도록 하였습니다.
- 카테고리 값 삭제 시, 자기 자신과 모든 하위 카테고리 ID를 재귀적으로 수집하는 기능을 추가하였습니다.
- 삭제 대상 카테고리 값 수집 완료 후, 하위 카테고리부터 역순으로 삭제하는 로직을 구현하였습니다.
- 관련된 로그 메시지를 추가하여 삭제 과정과 결과를 기록하도록 하였습니다.
- 화면 관리 기능에서 하위 항목 개수를 계산하는 로직을 개선하여 사용자에게 더 정확한 정보를 제공하도록 하였습니다.
- 화면의 기본 테이블을 업데이트하는 기능을 추가하였습니다. 사용자가 선택한 테이블 이름을 화면 레이아웃에 저장하고, 해당 정보를 기반으로 데이터베이스의 화면 정의를 업데이트합니다.
- 관련된 로그 메시지를 추가하여 업데이트 성공 여부를 콘솔에 기록하도록 하였습니다.
- 화면 디자인에서 현재 선택된 테이블을 기본 테이블로 설정하는 로직을 포함하였습니다.
- 테스트 테이블에서 채번 규칙 목록을 조회하는 API를 추가하였습니다. 이 API는 회사 코드와 선택적 메뉴 OBJID를 기반으로 규칙을 반환합니다.
- 회사별 카테고리 컬럼을 조회하는 API를 추가하여, 회사 코드에 따라 카테고리 컬럼을 필터링하여 반환하도록 개선하였습니다.
- 관련된 서비스 및 라우터를 업데이트하여 새로운 기능을 통합하였습니다.
- 채번 규칙 저장 API에서 ruleName을 필수로 설정하고, tableName과 columnName은 선택적으로 변경하였습니다.
- 테이블 관리 페이지에서 자동 저장 기능을 제거하고, 전체 저장 버튼으로 저장하도록 수정하였습니다.
- 카테고리 컬럼 선택 시, 선택된 컬럼의 테이블 이름과 컬럼 이름을 함께 전달하도록 개선하였습니다.
- V2 컴포넌트의 아키텍처, 설계 원칙, 사용법을 정리한 가이드를 추가하였습니다.
- V2 컴포넌트의 개요, 목록, Core 인프라, 이벤트 시스템, 채번/카테고리 시스템, 설정 패널 가이드, 결합도 현황, Unified 폼 컴포넌트, 개발 가이드, 참고 자료 및 향후 계획을 포함하고 있습니다.
- 각 컴포넌트의 특징과 사용법을 상세히 설명하여 개발자들이 V2 컴포넌트를 쉽게 이해하고 활용할 수 있도록 하였습니다.
- V2 Core 라이브러리를 추가하여 느슨한 결합 아키텍처를 지원합니다.
- V2 EventBus를 통해 타입 안전한 이벤트 발행 및 구독 기능을 구현하였습니다.
- V2ErrorBoundary 컴포넌트를 추가하여 각 컴포넌트의 에러를 격리하고, 사용자 정의 폴백 UI 및 재시도 기능을 제공합니다.
- UnifiedRepeater 및 ButtonPrimaryComponent에서 V2 EventBus를 활용하여 이벤트 처리 로직을 개선하였습니다.
- 레거시 이벤트와의 호환성을 위해 LegacyEventAdapter를 추가하여 점진적 마이그레이션을 지원합니다.
- V2 컴포넌트 간의 통신을 위한 이벤트 타입을 정의하였습니다.
- EditModal, InteractiveScreenViewer, SaveModal 컴포넌트에서 리피터 데이터(배열)를 마스터 저장에서 제외하고, 별도로 저장하는 로직을 추가하였습니다.
- 리피터 데이터 저장 이벤트를 발생시켜 UnifiedRepeater 컴포넌트가 이를 리스닝하도록 개선하였습니다.
- 각 컴포넌트에서 최종 저장 데이터 로그를 업데이트하여, 저장 과정에서의 데이터 흐름을 명확히 하였습니다.
이로 인해 데이터 저장의 효율성과 리피터 관리의 일관성이 향상되었습니다.
- 엑셀 컬럼과 시스템 컬럼 간의 중복 체크 설정을 위한 체크박스 추가
- 중복 체크 시 처리 방법을 선택할 수 있는 옵션(건너뛰기/덮어쓰기) 추가
- 중복 체크 설정된 컬럼 수 및 관련 안내 메시지 표시
- 중복 체크를 위한 기존 데이터 조회 로직 구현
- 업로드 후 성공/실패/건너뛰기 건수에 대한 상세 결과 메시지 표시
- 두 테이블 간의 조인 관계를 조회하는 API를 추가하였습니다. 이 API는 메인 테이블과 디테일 테이블을 파라미터로 받아, 해당 테이블 간의 조인 관계를 반환합니다.
- DataflowService에 조인 관계 조회 메서드를 구현하여, 회사 코드에 따라 적절한 조인 정보를 필터링합니다.
- 프론트엔드에서 조인 관계를 캐시하여, 반복적인 API 호출을 줄이고 성능을 개선하였습니다.
이로 인해 마스터-디테일 저장 기능의 효율성이 향상되었습니다.
- beforeFormSave 이벤트 핸들러에서 validateRequiredFields() 호출 추가
- 검증 실패 시 validationFailed 플래그로 저장 중단 처리
- 누락된 필수 필드명을 사용자에게 toast로 명확히 표시
- 패널 설정에서 필수 체크 하여도 작동하지 않는 문제 해결
- ScreenDesigner 컴포넌트에서 불필요한 디버그 로그를 제거하여 코드 가독성을 향상시켰습니다.
- ButtonConfigPanel에서 actionType을 로컬 상태로 관리하도록 개선하여, 버튼 액션 설정의 일관성을 높였습니다.
- RepeatContainerComponent에서 섹션별 폼 데이터 관리 기능을 추가하여, 각 반복 아이템의 독립적인 폼 데이터 처리가 가능해졌습니다.
이로 인해 코드의 효율성과 유지보수성이 향상되었습니다.
- InteractiveDataTable에서 valueCode 및 valueId에 대한 매핑 로직을 추가하여, 두 가지 키로 카테고리 정보를 저장할 수 있도록 개선하였습니다.
- UnifiedInput 및 TableListComponent에서 불필요한 디버그 로그를 주석 처리하여 코드 가독성을 향상시켰습니다.
이로 인해 카테고리 관리 및 데이터 처리의 효율성이 향상되었습니다.
- 카테고리 트리 컨트롤러에 전체 카테고리 키 목록 조회 라우트 추가: GET /api/category-tree/test/all-category-keys
- 카테고리 트리 서비스에 전체 카테고리 키 목록 조회 메서드 구현: 모든 테이블과 컬럼 조합을 반환
- 채번규칙 컨트롤러에서 폼 데이터 처리 기능 추가: 코드 미리보기 시 카테고리 기반 폼 데이터 사용
- 관련 API 클라이언트 및 타입 정의 업데이트: 카테고리 키 조회 및 채번규칙 API에 대한 요청 처리 개선
이로 인해 카테고리 관리 및 채번규칙 테스트의 효율성이 향상되었습니다.
테이블 설정에서 input_type을 변경할 때 screen_layouts의
componentConfig.webType이 업데이트되지 않는 버그 수정
문제:
- syncScreenLayoutsInputType 함수에서 widgetType, inputType은 업데이트하지만
componentConfig.webType은 누락되어 기존 값(예: "text")이 유지됨
- 프론트엔드 SelectBasicComponent는 webType을 기준으로 카테고리 로딩 여부를
판단하므로, input_type을 category로 변경해도 옵션이 표시되지 않음
수정:
- componentConfig 업데이트 시 webType도 inputType과 동일하게 설정
- 로그 메시지에 webType 정보 추가
품목정보에서 동일하게 발생하는 문제
화면 레이아웃(screen_layouts)의 componentConfig.webType이 text로 설정되어 있어서 카테고리 API를 호출하지 않습니다
카테고리 값을 메뉴별로 다르게 설정할 수 있도록 menuObjid를 모달 체인 전체에 전달합니다.
변경 내용:
- InteractiveDataTable: 등록/수정 모달 열 때 menuObjid를 이벤트에 포함
- EditModal: menuObjid를 state에 저장하고 하위 컴포넌트에 전달
- SaveModal: menuObjid props를 받아서 DynamicComponentRenderer에 전달
- SelectBasicComponent: getCategoryValues API 호출 시 menuObjid 파라미터 전달
이를 통해 같은 테이블/컬럼이라도 메뉴에 따라 다른 카테고리 옵션을 표시할 수 있습니다.
카테고리 API를 호출할 때 menuObjid를 전달하여 메뉴별 필터링 적용 가능하게 변경
- 카테고리 트리 컨트롤러와 서비스 추가: 트리 구조를 지원하는 카테고리 값 관리 기능을 구현하였습니다.
- 카테고리 트리 API 클라이언트 추가: CRUD 작업을 위한 API 클라이언트를 구현하였습니다.
- 카테고리 값 관리 컴포넌트 및 설정 패널 추가: 사용자 인터페이스에서 카테고리 값을 관리할 수 있도록 트리 구조 기반의 컴포넌트를 추가하였습니다.
- 관련 라우트 및 레지스트리 업데이트: 카테고리 트리 관련 라우트를 추가하고, 컴포넌트 레지스트리에 등록하였습니다.
이로 인해 카테고리 관리의 효율성이 향상되었습니다.
; 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.