Files
Aislo/docs/wiki/concepts/dependencies.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

42 lines
3.7 KiB
Markdown

---
type: concept
status: stable
related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_PreProcess/B04_backend]]", "[[B05_Profile/B05_backend]]", "[[B06_Section/B06_backend]]", "[[B07_Quantity/B07_backend]]", "[[B08_DesignDetail/B08_backend]]", "[[architecture/shared_resources]]"]
last_updated: 2026-07-20
source: ["docs/raw/verification/2026-07-19_verify_b07_independent_cad.md", "docs/raw/verification/2026-07-20_verify_b08_quantity_template.md", "docs/raw/plans/2026-07-18_plan_dependency_upgrade.md"]
---
# 외부 라이브러리 의존성
[[architecture/shared_resources]]는 이 문서를 전체 의존성 정본으로 참조한다. Backend 의존성은 B01·B03~B08에, Frontend 의존성은 [[a00_app_shell_framework]]과 [[ui_templates]]에 연결된다.
## 백엔드 (Python 3.12.7)
| 라이브러리 | 용도 | 사용 페이지 |
|---|---|---|
| FastAPI / Pydantic | API 프레임워크 / 요청·응답 검증 | 전체; [[B01_Dashboard/B01_backend|B01_Dashboard]] 라우터·요청 모델 |
| Trimesh | 3D 메시 처리 | [[B04_PreProcess/B04_backend|B04_PreProcess]] (trimesh==4.12.2 모델 생성) |
| Whitebox | 지형 분석(D8 흐름누적 등) | [[B04_PreProcess/B04_backend|B04_PreProcess]], [[B05_Profile/B05_backend|B05_Profile]] (whitebox==2.3.6 skeleton 복구) |
| Geopandas | 공간 데이터프레임 | [[B04_PreProcess/B04_backend|B04_PreProcess]], [[B05_Profile/B05_backend|B05_Profile]] (geopandas==1.1.4) |
| Pyogrio | GeoPandas 파일 I/O 가속 | [[B05_Profile/B05_backend|B05_Profile]] (pyogrio==0.13.0 신규 도입) |
| Shapely | 기하 연산 (JSON 파싱 후) | [[B05_Profile/B05_backend|B05_Profile]], [[B06_Section/B06_backend|B06_Section]] (shapely==2.1.2) |
| NumPy | 격자·통계·비용면 및 LAS 통계 계산 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B05_Profile/B05_backend|B05_Profile]] (numpy==2.5.0) |
| SciPy | 수치 보간·계산 보조, Delaunay 삼각망 생성 | [[B04_PreProcess/B04_backend|B04_PreProcess]] (scipy==1.18.0 삼각망 생성), [[B05_Profile/B05_backend|B05_Profile]] |
| Rasterio | 래스터(DEM/TIF) 입출력·메타데이터 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B04_PreProcess/B04_backend|B04_PreProcess]] (rasterio==1.5.0) |
| Laspy | LAS/LAZ 포인트클라우드 파싱 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B04_PreProcess/B04_backend|B04_PreProcess]] (laspy==2.7.0) |
| Pyproj | PRJ/TIF 좌표계 해석 | [[B03_FileInput/B03_backend|B03_FileInput]] |
| Openpyxl | 과거 엑셀 원가 수량 템플릿 계획에 사용 | 현행 B07 구현에서는 사용 미확인 |
| aiomysql | 비동기 MariaDB 드라이버 (Raw SQL) | 전체 |
| psutil | CPU·메모리 사용률 계측 | [[B01_Dashboard/B01_backend|B01_Dashboard]] 리소스 현황 |
## 프론트엔드 (TypeScript/Node.js)
| 항목 | 용도 | 사용처 |
|---|---|---|
| **three.js** (WebGL) | 3D 뷰어(WebGLRenderer, OrbitControls, Points/Mesh) | [[B04_PreProcess/B04_backend|B04_PreProcess]], [[B05_Profile/B05_backend|B05_Profile]] 구현 확인. B06은 미구현 (SVG 사용) |
| **openwebcad** (Canvas) | 내장 독립 2D CAD 에디터 및 뷰어 | [[B08_DesignDetail/B08_frontend|B08_DesignDetail]] (MIT 라이선스, iframe 임베딩) |
| Vite | 빌드 도구 | 전 프론트 |
> ⚠️ B04, B05는 three.js 기반 3D 지형/노선 뷰어가 구현되어 있으며, B06은 종횡단 조회 전용(SVG 렌더링)으로 Three.js를 사용하지 않습니다. B07은 내장된 독립 2D CAD(`openwebcad`)를 iframe으로 임베딩하여 활용합니다.
## 선정 원칙 (agent.md 3절)
프로젝트에 맞춰 호환 라이브러리 선정, 불필요한 함수 작성 최소화. `asyncmy` 대신 `aiomysql` 채택 이유: Cython 빌드가 Windows 환경에서 불필요.