Files
Aislo/docs/raw/plans/2026-08-08_plan_R1_R2_features.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

4.1 KiB

완료 작업 계획서 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 규격: 프로젝트/사용자 관리 컨테이너와 같은 형태로 통일.

구현 체크리스트:

  • Phase 1 — 저장·DB 기반 (config 상수 3종, 010_temp_upload.sql 작성·실 DB 적용, 청크 저장 경로 구성)
  • Phase 2 — 백엔드 API (B03_FileInput_Router_Temp.py 신설, 700줄 제한 준수, 묶음 생성·목록·삭제·attach API 등)
  • Phase 3 — 정리 작업 (common_util_temp_cleanup.py + main.py 주기 루프 등록)
  • 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 (설계도서 셸)

구현 체크리스트:

  • Phase 0 — 조사 완료
  • Phase 1 — 기존 프로젝트 데이터 삭제
  • Phase 2 — B04_PreProcess 개명
  • Phase 3 — B05_Profile·B06_Section 동시 개명
  • Phase 4 — 도면 코드 B08_DesignDetail 이동 (/b08-cad 정적 서빙, CAD 레이어 b08-*, openwebcad 재빌드)
  • Phase 5 — B07_Quantity 셸 신설·B09 정리·순서 반영 (STAGE_KEYS 7종 재정의, 수량 확정 경량 API)
  • Phase 6 — 자동 체인 상태·B05/B06 버튼 개편 (stage 2·3 IN_PROGRESS 유지, B05 컨테이너 병합, 액션 행 개편)
  • Phase 7 — 최종 검증·마감 (ruff/prettier, 빌드 통과, 서빙 스모크 테스트 성공)