phase2 70% 완료

This commit is contained in:
2025-09-05 16:19:31 +09:00
parent ad9c281efb
commit b844719da4
9 changed files with 1152 additions and 125 deletions

View File

@@ -626,12 +626,17 @@ PUT /api/external-call-configs/:id
- [x] 노드 간 드래그앤드롭 연결 기능
- [x] 줌, 팬, 미니맵 등 React Flow 기본 기능
### Phase 2: 관계 설정 기능 (2주)
### Phase 2: 관계 설정 기능 (2주) - 🚧 **진행 중 (70% 완료)**
- [ ] 1:1, 1:N 관계 설정
- [ ] 단순 키값 연결
- [ ] 연결 설정 모달
- [ ] 노드 간 드래그앤드롭 연결
- [x] 연결 설정 모달 UI 구현
- [x] 1:1, 1:N, N:1, N:N 관계 타입 선택 UI
- [x] 단순 키값, 데이터 저장, 외부 호출 연결 종류 UI
- [x] 필드-to-필드 연결 시스템 (클릭 기반)
- [x] 선택된 필드 정보 표시 및 순서 보장
- [ ] 연결 생성 로직 구현 (모달에서 실제 엣지 생성)
- [ ] 생성된 연결의 시각적 표시 (React Flow 엣지)
- [ ] 연결 데이터 백엔드 저장 API 연동
- [ ] 기존 연결 수정/삭제 기능
### Phase 3: 고급 연결 타입 (2-3주)
@@ -672,23 +677,39 @@ PUT /api/external-call-configs/:id
**구현된 기능:**
- React Flow 12.8.4 기반 시각적 캔버스
- 화면 노드 컴포넌트 (필드 정보, 타입별 색상 구분)
- 화면 노드 컴포넌트 (필드 정보, 타입별 색상 구분, 노드 리사이징)
- 커스텀 엣지 컴포넌트 (관계 타입별 스타일링)
- 드래그앤드롭 노드 배치 및 연결
- 줌, 팬, 미니맵 등 고급 시각화 기능
- 샘플 데이터 생성 및 관리 기능
- 줌, 팬, 미니맵 등 고급 시각화 기능 (스크롤 충돌 해결)
- 실제 화면 데이터 연동 (테이블 관리 API 연결)
- 필드-to-필드 연결 시스템 (클릭 기반, 2개 화면 제한)
- 연결 설정 모달 (관계 타입, 연결 종류 선택 UI)
- /admin/dataflow 경로 설정
- 메뉴 시스템 연동 준비 완료
- 메뉴 시스템 연동 완료
- 사용자 경험 개선 (토스트 알림, 선택 순서 보장)
**구현된 파일:**
- `frontend/components/dataflow/DataFlowDesigner.tsx`
- `frontend/components/dataflow/ScreenNode.tsx`
- `frontend/components/dataflow/CustomEdge.tsx`
- `frontend/app/(main)/admin/dataflow/page.tsx`
- `docs/add_dataflow_menu.sql` (메뉴 추가 스크립트)
- `frontend/components/dataflow/DataFlowDesigner.tsx` - 메인 캔버스 컴포넌트
- `frontend/components/dataflow/ScreenNode.tsx` - 화면 노드 컴포넌트 (NodeResizer 포함)
- `frontend/components/dataflow/CustomEdge.tsx` - 커스텀 엣지 컴포넌트
- `frontend/components/dataflow/ConnectionSetupModal.tsx` - 연결 설정 모달
- `frontend/app/(main)/admin/dataflow/page.tsx` - 데이터 흐름 관리 페이지
- `frontend/lib/api/dataflow.ts` - 데이터 흐름 API 클라이언트
- `docs/add_dataflow_menu.sql` - 메뉴 추가 스크립트
**다음 단계:** Phase 2 - 관계 설정 기능 구현
**주요 개선사항:**
1. **스크롤 충돌 해결**: 노드 내부 스크롤과 React Flow 줌/팬 기능 분리
2. **노드 리사이징**: NodeResizer를 통한 노드 크기 조정 및 내용 반영
3. **필드-to-필드 연결**: 드래그앤드롭 대신 클릭 기반 필드 선택 방식
4. **2개 화면 제한**: 최대 2개 화면에서만 필드 선택 가능
5. **선택 순서 보장**: 사이드바와 모달에서 필드 선택 순서 정확히 반영
6. **실제 데이터 연동**: 테이블 관리 시스템의 실제 화면/필드 데이터 사용
7. **사용자 경험**: react-hot-toast를 통한 친화적인 알림 시스템
8. **React 안정성**: 렌더링 중 상태 변경 문제 해결
**다음 단계:** Phase 2 - 실제 연결 생성 및 시각적 표시 기능 구현
### 주요 가치