Files
Aislo/docs/wiki/pages/B03_FileInput/B03_frontend.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

50 lines
3.0 KiB
Markdown

---
type: page-frontend
status: stable
page_id: B03_FileInput
related_pages: ["[[B03_FileInput/B03_backend]]", "[[B03_FileInput/B03_api]]", "[[B03_FileInput/B03_db]]", "[[las_free_sheet_surface]]", "[[architecture/project_map]]", "[[architecture/workflow_data_flow]]"]
last_updated: 2026-08-30
source: ["docs/raw/verification/2026-07-31_verify_B03_planned_route_csv.md", "docs/raw/verification/2026-08-29_verify_B03_reupload_reanalysis_cache.md"]
---
# B03_FileInput — Frontend
`las_free` 토글은 LAS 카드와 필수검증을 비활성화하고 계획노선·도엽등고선만으로 WF1을 실행한다. 상세 계약은 [[las_free_sheet_surface]]를 따른다.
## 페이지·업로드 흐름
| 항목 | 위치 | 역할 |
|---|---|---|
| `renderB03FileInput()` | `B03_FileInput_UI_Page.ts:52` | 일반업무 레이아웃(`createGeneralLayout`) 적용 및 계획노선 CSV 선택 필수 입력 영역 조립 |
| 청크 세션 생성 | `B03_FileInput_UI_Page.ts` | 대용량 파일을 청크 업로드로 시작 |
| 청크 병합 완료 | `B03_FileInput_UI_Page.ts` | 서버 병합 결과를 상태에 저장 |
| 필수 파일 검증 | `B03_FileInput_UI_Page.ts` | 계획노선 CSV 누락/오류 시 B04 이동 버튼 차단 |
| WF1 진행률 폴링 | `B03_FileInput_UI_Page.ts` | 분석 상태와 진행률 갱신 |
| 업로드 완료 캐시 정리 | `B03_FileInput_UI_Page.ts:71` | route 최신값·section detail·preload 표식을 제거해 B05가 재분석 결과를 조회 |
| B04 이동 | `B03_FileInput_UI_Page.ts` | WF1 및 필수 계획노선 검증 완료 시 `ROUTES.B04_WF1_SURFACE`로 이동 |
## UI 지원 유틸리티 (분할 완료)
| 항목 | 위치 | 역할 |
|---|---|---|
| 카드 템플릿 및 포맷터 | `B03_FileInput_UI_Support.ts` | UI 생성 템플릿 및 파일 크기/ETA 포맷터 등 분리하여 단일 파일 700줄 제한 준수 |
## API 클라이언트
| 항목 | 위치 | 역할 |
|---|---|---|
| `uploadProjectFiles()` | `B03_FileInput_Api_Fetch.ts:60` | 계획노선 CSV 및 지형 다중 파일 업로드 |
| `createUploadSession()` | `B03_FileInput_Api_Fetch.ts:82` | 청크 세션 생성 |
| `uploadFileChunk()` | `B03_FileInput_Api_Fetch.ts:100` | 단일 청크 전송 |
| `finalizeUploadSession()` | `B03_FileInput_Api_Fetch.ts:119` | 청크 병합 요청 |
| `fetchUploadStatus()` | `B03_FileInput_Api_Fetch.ts:133` | 청크 업로드 상태 조회 |
| `checkWF1AnalysisStatus()` | `B03_FileInput_Api_Fetch.ts:154` | WF1 분석 상태 조회 |
## 브라우저 상태·오프라인 보조
| 항목 | 위치 | 역할 |
|---|---|---|
| `loadB03ProjectState()` | `B03_FileInput_State.ts:23` | 프로젝트별 저장 상태 복원 |
| `saveB03UploadedFile()` | `B03_FileInput_State.ts:34` | 업로드 파일 결과 저장 |
| `updateB03AnalysisState()` | `B03_FileInput_State.ts:53` | 분석 상태·진행률 저장 |
| `restoreB03ProjectState()` | `B03_FileInput_State.ts:71` | 재진입 시 상태와 완료 콜백 복원 |
공통 UI는 [[ui_templates]], 단계 상태는 [[workflow_state]]를 참조한다.