# 완료 작업 계획서 Archive (2026-08-08) — R1, R2 기능 ## 1. R2. 프로젝트 생성 전 임시 보관함 (Temp Upload) (2026-08-08, 구현 완료 / 검증 완료) **배경**: 라이다 원본은 수십 GB라 업로드에 오래 걸린다. 지금은 프로젝트를 먼저 만들어야만 올릴 수 있어, 프로젝트 정보가 확정되기 전에는 업로드를 시작할 수 없다. 사용자 계정에 묶인 임시 보관함을 만들어 미리 올려 두고, 나중에 프로젝트를 만들면 그 자료를 끌어와 쓰도록 한다. **선행 완료 (2026-08-08)**: 알림 메일 통합 — 업로드 완료 메일과 지표면 분석 완료 메일 두 통을 초기 설계(B04~B06)까지 마친 시점의 통합 메일 한 통(`send_initial_analysis_complete_email`)으로 합침. 기존 `send_file_upload_complete_email`은 삭제하지 않고 이 임시 보관함 안내용으로 남겨 둠. **확정 사항 (2026-08-08 사용자 협의)**: 1. **업로드 화면 위치**: B01 대시보드. 프로젝트 등록(B02)과 비슷한 폼 UI로 구성. 2. **청크 업로드·이어받기 재활용**: 기존 `upload_sessions`/`upload_chunks` 로직을 그대로 쓴다. 새로 만들지 않는다. 3. **진행 표시**: 업로드 모달이 아니라 **보관함 리스트 행에 진행률**을 표시한다. 4. **연결 지점**: B03 파일 입력 페이지의 **파일 업로드 컨테이너 내부** 버튼. 누르면 내 임시 보관함 중 **완료된 항목만** 목록으로 보여주고, 선택 → [확인] → 슬롯에 지정 표시. 5. **이동 시점**: B03의 [업로드] 버튼을 눌렀을 때 임시 보관소 → 해당 프로젝트 영구저장소로 이동하고, 이어서 기존 자동 연산 체인(B04→B05→B06)을 탄다. 6. **보관 기간**: 파일 업로드 **완료 시점 기준 1개월**. 주기 작업으로 자동 삭제. 기간·주기는 `config/config_system.py` 상수로 제어(변동 가능). 7. **저장 위치**: `storage/tmp/` 하위. 8. **컨테이너 UI 규격**: 프로젝트/사용자 관리 컨테이너와 같은 형태로 통일. **구현 체크리스트**: - [X] Phase 1 — 저장·DB 기반 (config 상수 3종, `010_temp_upload.sql` 작성·실 DB 적용, 청크 저장 경로 구성) - [X] Phase 2 — 백엔드 API (`B03_FileInput_Router_Temp.py` 신설, 700줄 제한 준수, 묶음 생성·목록·삭제·attach API 등) - [X] Phase 3 — 정리 작업 (`common_util_temp_cleanup.py` + main.py 주기 루프 등록) - [X] Phase 4 — 프론트엔드 (B01 대시보드 임시 보관함 컨테이너, B03 불러오기 버튼/선택 모달 연동) --- ## 2. R1. 폴더 구조 리팩토링 — 워크플로우 재편 (B04~B09) (2026-08-08, 구현 완료 / 검증 완료) **배경**: 페이지 폴더명이 실제 기능과 어긋나 있고(B05는 종단, B06은 횡단 중심으로 재편됨), 수량 산출과 상세설계(도면)의 워크플로우 순서를 맞바꿔야 한다. 페이지 번호(BXX)만으로 정리하고 wf 번호는 전면 제거한다. **이름 매핑표**: - B04_wf1_Surface → `B04_PreProcess` (지표면 분석) - B05_wf2_Route → `B05_Profile` (경로·종단) - B06_wf3_ProfileCross → `B06_Section` (횡단·유토곡선) - B07_wf4_DesignDetail → `B07_Quantity` (**신설 셸**, 구 수량 백업 zip 보관) - B08_wf5_Quantity → `B08_DesignDetail` (**현 B07 도면(CAD)+openwebcad 이동**) - B09_wf6_Estimation → `B09_Estimation` (설계도서 셸) **구현 체크리스트**: - [X] Phase 0 — 조사 완료 - [X] Phase 1 — 기존 프로젝트 데이터 삭제 - [X] Phase 2 — B04_PreProcess 개명 - [X] Phase 3 — B05_Profile·B06_Section 동시 개명 - [X] Phase 4 — 도면 코드 B08_DesignDetail 이동 (`/b08-cad` 정적 서빙, CAD 레이어 `b08-*`, openwebcad 재빌드) - [X] Phase 5 — B07_Quantity 셸 신설·B09 정리·순서 반영 (`STAGE_KEYS` 7종 재정의, 수량 확정 경량 API) - [X] Phase 6 — 자동 체인 상태·B05/B06 버튼 개편 (stage 2·3 IN_PROGRESS 유지, B05 컨테이너 병합, 액션 행 개편) - [X] Phase 7 — 최종 검증·마감 (ruff/prettier, 빌드 통과, 서빙 스모크 테스트 성공)