You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
┌─────────────────────────────────────────────────────────┐
│ 세션 활용 전략 │
├─────────────────────────────────────────────────────────┤
│ │
│ Claude Code (세션 제한) Antigravity (세션 여유) │
│ ──────────────────── ────────────────────── │
│ • 타입/인터페이스 정의 • D3.js 이벤트 핸들링 │
│ • 컴포넌트 스켈레톤 생성 • 복잡한 드래그 로직 │
│ • API 설계 • 시각적 피드백 구현 │
│ • 문서 업데이트 • 버그 수정/최적화 │
│ • 구조적 결정 • 테스트 작성 │
│ │
│ 작업 시간: 짧게, 핵심만 작업 시간: 길게, 상세히 │
└─────────────────────────────────────────────────────────┘
4. 다음 작업: Phase 6 (Orange 3 스타일 인터랙션)
4.1 목표
Orange 3 워크플로우 앱처럼 직관적인 노드 조작 UX 구현
4.2 인터랙션 명세
ID
동작
트리거
결과
I-1
엣지+노드 생성
노드 테두리 드래그 → 빈 캔버스
새 노드 생성 + 엣지 연결
I-2
엣지만 생성
노드 테두리 드래그 → 다른 노드
두 노드 간 엣지 생성
I-3
노드 생성
빈 캔버스 더블클릭
해당 위치에 새 노드
I-4
노드 배치
왼쪽 목록 → 캔버스 드래그
노드 복사 배치
I-5
노드 이동
노드 중앙 드래그
노드만 이동
I-6
캔버스 패닝
배경 드래그
뷰포트 이동
I-7
줌
마우스 휠
확대/축소
4.3 작업 분담 (상세)
Claude Code 작업 (구조 설계)
[ ] 4.3.1 타입 정의 추가 (frontend/src/types/index.ts)
- DragState: 드래그 상태 관리
- DropTarget: 드롭 대상 정보
- NodeRegion: 노드 영역 (center/border)
- DragType: 드래그 유형 (node-move/edge-create)
[ ] 4.3.2 컴포넌트 파일 생성 (스켈레톤)
- src/components/graph/NodeElement.tsx
- src/components/graph/EdgeElement.tsx
- src/components/graph/DragPreview.tsx
- src/components/sidebar/NodeList.tsx
- src/components/sidebar/NodeListItem.tsx
- src/components/sidebar/index.ts
[ ] 4.3.3 App.tsx 레이아웃 수정
- 왼쪽 사이드바 영역 추가
- 기존 오른쪽 패널 유지
[ ] 4.3.4 문서 업데이트
- CLAUDE.md 상태 업데이트
- walkthrough.md Phase 6 진행 기록
Antigravity 작업 (구현)
[x] 4.3.5 RadialGraph.tsx 수정 ✅
- 노드 영역 감지 (Action Ring 방식)
- 드래그 시작점에 따른 동작 분기
- 배경 드래그와 노드 드래그 분리
[x] 4.3.6 드래그 시각적 피드백 ✅
- 드래그 중 임시 엣지 렌더링 (점선)
- 유효 타겟 하이라이트 (녹색 테두리)
[ ] 4.3.7 NodeElement.tsx 구현 (보류)
- RadialGraph에 통합됨
[x] 4.3.8 NodeList.tsx 구현 ✅
- 전체 노드 목록 표시
- 드래그 소스 설정
[x] 4.3.9 캔버스 더블클릭 노드 생성 ✅
- 클릭 위치 → 그래프 좌표 변환
- 노드 생성 API 호출
[x] 4.3.10 테두리 드래그 → 새 노드 생성 ✅
- parentId 설정으로 depth 자동 계산
- HAS_CHILD 관계 생성
4.4 기술 상세
노드 영역 감지 로직
// 노드 중앙에서의 거리로 영역 판별functiongetNodeRegion(mousePos: {x: number;y: number},nodePos: {x: number;y: number},nodeRadius: number,borderWidth: number=10): 'center'|'border'|'outside'{constdistance=Math.sqrt(Math.pow(mousePos.x-nodePos.x,2)+Math.pow(mousePos.y-nodePos.y,2))if(distance>nodeRadius)return'outside'if(distance>nodeRadius-borderWidth)return'border'return'center'}
# 서비스 시작
docker-compose up -d # Neo4jcd backend && mvn spring-boot:run # Backend (8080)cd frontend && npm run dev # Frontend (5173)# MCP 서버
claude mcp list # 연결 상태 확인
claude mcp get neo4j # Neo4j MCP 상세# 빌드cd frontend && npm run build # Frontend 빌드cd backend && mvn clean package # Backend 빌드# 테스트
curl http://localhost:8080/api/goals # 목표 목록
curl "http://localhost:8080/api/graph/radial/{id}?depth=2"# 그래프