--- type: page-db status: stable page_id: B05_Profile related_pages: ["[[B05_Profile/B05_backend]]", "[[B05_Profile/B05_api]]", "[[architecture/project_map]]", "[[architecture/workflow_data_flow]]"] last_updated: 2026-08-16 source: "docs/raw/verification/2026-07-23_verify_B05_종단_계획선_편집_체계_개편.md" --- # B05_Profile — DB 사용 관계 테이블 정의는 [[db_schema/route_profile]]에서 1차 관리한다. | 항목 | 위치 | 역할 | |---|---|---| | `routes` | `Repository.py:27` | surface model·제어점·옵션·GeoJSON 경로 저장 | | `route_points` | `Repository.py:75` | chainage·고도·경사별 렌더링 포인트 저장 | | `route_statistics` | `Repository.py:109` | 총연장·경사·절성토량·비용 통계 저장 | | `longitudinal_sections` | `B06_Section_Repository.py:34` | 노선 계산 완료 시 종단 설계 정보 저장. **최종 확정된 profile_alignment 기하 모델이 data 필드 하위에 병합 저장됨** | | `cross_sections` | `B06_Section_Repository.py:67` | 노선 계산 완료 시 횡단 단면 정보 저장 | ## Repository 함수 | 항목 | 세분화 위키 명세 | 역할 | |---|---|---| | `create_route()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | 계산 결과 route 레코드 생성 | | `insert_route_points()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | 샘플 포인트 일괄 저장 | | `create_route_statistics()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | 경로 통계 저장 | | `get_latest_route()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | 프로젝트 최신 경로 조회 | | `confirm_route()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | 경로 상태 CONFIRMED 전환 | | `get_surface_crs_epsg()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | surface_models.crs_epsg 또는 input_files의 EPSG를 조회하여 폴백 반환 | | `update_longitudinal_grade_summary()` | `[[B05_Profile/backend/B05_Profile_Repository]]` | longitudinal_sections.data 내 grade_summary 및 profile_alignment 부분 갱신 | ## 저장 경로 | 항목 | 역할 | |---|---| | `routes.route_data_path` | 프로젝트 루트 기준 `B05_Profile/route/` 내 GeoJSON 상대경로 | | `route_points` | DB에 렌더링용 샘플 좌표 저장 | | `B05_Profile/route/structures.json` | DB 테이블이 아닌 일반 구조물 파일 정본. 목록 전체와 revision을 원자 저장하며 배관은 제외한다. | 상세 경로 규칙: [[storage_paths]].