v0.1.47
v0.1.47 — radial 제거 + "AI 추천" Smart Pack 레이아웃 신규
요청
- "2D/3D 레이아웃 설정에서 방사형 정렬 제거하고, 최적이라 생각하는 레이아웃을 AI 추천 버튼으로 구현. 직접 서버 띄워 확인"
변경 파일
src/store/viewStore.ts—LayoutOrientation에서'radial'제거,'ai-recommended'추가.loadPersisted()마이그레이션 (radial → ai-recommended).src/utils/layoutAlgorithm.ts:compute2DTreeLayout()의 radial 분기 제거 → horizontal 폴백.- 신규
compute2DSmartLayout()— Smart Pack 알고리즘 구현 (175줄). placeExternals()의 radial 분기 제거.LayoutOptions.orientation타입에서 radial 제거, ai-recommended 추가.- 3D
computeLayout()의 flatMode 검사에 ai-recommended 추가. src/components/Layout/ViewOptionsPanel.tsx— orientation 목록 변경: 2D = [horizontal/vertical/city], 3D = [horizontal/vertical/tree]. 그 아래에 **AI 추천 버튼** 단독 행 (gradient + sparkle 아이콘).src/i18n/locales/{ko,en}.json—orientationRadial제거.orientationAiRecommended+ Tooltip 추가.
Smart Pack 알고리즘
- 1. 각 폴더의 자식을
subFolders[](자식 있는 폴더) vsleafs[](파일/빈 폴더) 로 분리. - 2. **subFolders**: leafCount desc 정렬 → 큰 서브트리부터 위에 (importance-first).
- 3. **leafs**: language/role 정렬 후 그리드 패킹:
- ≤8 개: 1열 (기존)
- 9~16: 2열
- 17~36: 3열
- 37~64: 4열
- 65+: 5열
- 4. 행 단위 spacing
SMART_ROW_H = 60, depth stepSMART_DEPTH = 340, leaf 그리드 한 열SMART_LEAF_W = 280. - 5. leaf 그리드는 subFolders 끝난 row 아래 0.6 row 갭 후 시작 → row 충돌 없음.
압축 효과
- 평탄한 폴더 (예:
public/images/100 파일): 100 rows → ceil(100/5)=20 rows → **5× 압축**. - 일반 프로젝트: ~10-30% 압축.
- 큰 프로젝트도 한 화면에서 구조 파악 가능.
검증
- dev server (
npm run dev, http://localhost:5173) 띄워 HMR 으로 알고리즘 확인.npx tsc --noEmitexit=0.npm run dist:win성공 — out/renderer/index-C8Mp-mjk.js 3,073.87kB.
📦 GitHub 릴리스 노트: v0.1.47