260715_0
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
type: concept
|
||||
status: stable
|
||||
related_pages: ["[[B02_ProjRegister/B02_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]", "[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]", "[[B07_wf4_DesignDetail/B07_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[B09_wf6_Estimation/B09_frontend]]"]
|
||||
last_updated: 2026-07-12
|
||||
source: raw/guidelines/structure.md, raw/guidelines/db_schema.md, raw/guidelines/backend.md, raw/guidelines/agent.md
|
||||
---
|
||||
|
||||
# 저장 경로 규칙 (Workflow-based Folder Structure)
|
||||
|
||||
## 경로 패턴
|
||||
```
|
||||
storage/{company_slug}/{user_slug}/{project_id}/
|
||||
├── B03_FileInput/input/{file_type}/ WF0 원본 입력
|
||||
├── B04_wf1_Surface/processed/, models/ WF1 변환·모델
|
||||
├── B05_wf2_Route/route/ WF2 경로
|
||||
├── B06_wf3_ProfileCross/longitudinal/, cross_sections/ WF3 종횡단
|
||||
├── B07_wf4_DesignDetail/structures/ WF4 구조물
|
||||
├── B08_wf5_Quantity/quantities/ WF5 수량
|
||||
└── B09_wf6_Estimation/v1/, v2/, ... WF6 산출물 (버전은 여기서만)
|
||||
```
|
||||
|
||||
## 원칙 (backend.md 3절)
|
||||
1. **하드코딩 금지** — 경로는 `config/config_system.py`에서 import.
|
||||
2. **물리 파일은 DB 저장 금지** — 대용량 파일은 파일시스템, DB에는 경로만.
|
||||
3. **단계별 루트 강제** — 각 B0x 폴더명은 실제 워크플로우 페이지명과 동일해야 함. `raw/`, `processed/`, `computed/`를 프로젝트 루트 공용 폴더로 만들지 않음.
|
||||
4. **경로 생성 책임 분리** — 페이지별 백엔드는 자기 단계 폴더만 생성·수정. 다른 단계 산출물을 직접 삭제·덮어쓰지 않고 stale로 전파 → [[workflow_state]].
|
||||
5. **상대 경로만 DB 저장** — 프로젝트 루트 기준 상대경로. 사용자 입력 경로 직접 결합 금지(경로 이탈 방지), 절대경로 저장 금지.
|
||||
|
||||
## DB 컬럼 ↔ 실제 경로 매핑
|
||||
상세 표 → [[db_schema/overview]] "파일 경로 추적 컬럼"
|
||||
|
||||
## 파일명 규칙 (structure.md 1절)
|
||||
- 페이지 폴더: 로그인 전 `A0x_`, 로그인 후 `B0x_`, 워크플로우는 `wf[번호]` 접두사
|
||||
- 파일명: `폴더명(페이지명)_기능_기타사양.확장자`
|
||||
- 공통 유틸: `common_util/common_util_기능.확장자`
|
||||
Reference in New Issue
Block a user