--- type: page-backend status: stable page_id: B06_wf3_ProfileCross related_pages: ["[[B06_wf3_ProfileCross/B06_frontend]]", "[[B06_wf3_ProfileCross/B06_api]]", "[[B06_wf3_ProfileCross/B06_db]]", "[[B06_wf3_ProfileCross/B06_dependencies]]"] last_updated: 2026-07-12 source: 상위 프로젝트 B06_wf3_ProfileCross 실 코드 직접 확인 (2026-07-12) --- # B06_wf3_ProfileCross — Backend ## 요청·응답 모델 | 항목 | 위치 | 역할 | |---|---|---| | `SectionGenerateRequest` | `B06_wf3_ProfileCross_Schema.py:8` | route·지표면·측점·횡단 옵션 검증 | | `SectionGenerateResponse` | `B06_wf3_ProfileCross_Schema.py:26` | 종단 ID·횡단 개수·총연장·파일경로 응답 | | `SectionConfirmResponse` | `B06_wf3_ProfileCross_Schema.py:38` | 확정 route와 confirmed 상태 응답 | | `SectionSummaryResponse` | `B06_wf3_ProfileCross_Schema.py:47` | 종단·횡단 결과 요약 응답 | ## 생성 엔진 | 항목 | 위치 | 역할 | |---|---|---| | `run_section_generation()` | `B06_wf3_ProfileCross_Engine.py:50` | B05 경로 로드·표고 sampler·종횡단 생성 오케스트레이션 | | `build_surface_sampler()` | `B06_wf3_ProfileCross_Engine_Sampler.py:126` | DTM·보간 방식 표고 sampler 선택 | | `DtmGridSampler` | `B06_wf3_ProfileCross_Engine_Sampler.py:26` | DTM 격자 기반 표고 조회 | | `InterpolatedSurfaceSampler` | `B06_wf3_ProfileCross_Engine_Sampler.py:109` | 표면 보간 기반 표고 조회 | | `generate_sections()` | `B06_wf3_ProfileCross_Engine_Section.py:116` | 측점·종단·횡단 샘플 생성 | | `_chainages()` | `B06_wf3_ProfileCross_Engine_Section.py:77` | 측점 간격과 종점 포함 여부로 chainage 생성 | | `_interpolate_xy()` / `_tangent_at()` | `B06_wf3_ProfileCross_Engine_Section.py:86,95` | 경로 좌표 보간·접선 방향 계산 | ## 라우터·workflow | 항목 | 위치 | 역할 | |---|---|---| | `generate_sections()` | `B06_wf3_ProfileCross_Router.py:49` | 확정 경로 검증·생성·DB 저장·stage 3 완료 | | `get_sections()` | `B06_wf3_ProfileCross_Router.py:152` | route 종횡단 요약 조회 | | `confirm_sections()` | `B06_wf3_ProfileCross_Router.py:170` | 결과 확정·stage 3 완료 | | `start_stage()` / `complete_stage()` / `fail_stage()` | `B06_wf3_ProfileCross_Router.py:68,111,127,132,137,143,187` | WF3 상태 전이 → [[../../concepts/workflow_state]] | ## 재실행 | 항목 | 위치 | 역할 | |---|---|---| | `delete_sections_for_route()` | `B06_wf3_ProfileCross_Repository.py:27` | 동일 route 기존 결과 삭제 후 재생성 | | `_validate_stage_path()` | `B06_wf3_ProfileCross_Repository.py:18` | WF3 저장경로 이탈 방지 |