- load_culvert_sets · culvert_sets_from · attach_culvert_sets · attach_culvert_specs + 얹기 상수 셋 옮김(700 → 576) - 부르는 쪽(Engine_Attach · Engine_Tilt · Router_Design_Ranges) · 시험 import 만 새 자리로 - test_b06_pipe_length 소스 읽기 = 새 파일 · 위키 B06_backend 자리 고침 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.4 KiB
7.4 KiB
type, status, page_id, related_pages, last_updated, source
| type | status | page_id | related_pages | last_updated | source | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| page-backend | stable | B06_Section |
|
2026-08-26 |
|
B06_Section — Backend
2026-08-22 책임 분리 리팩터링 뒤 B06_Section_Router.py는 현재 678줄로 700줄 제한을 만족한다. Python 구문 검사와 라우터 import 검사 통과 기록이 있으며 Git 작업은 하지 않았다.
요청·응답 모델
| 항목 | 위치 | 역할 |
|---|---|---|
SectionConfirmResponse |
B06_Section_Schema.py |
확정 route와 confirmed 상태 응답 |
SectionSummaryResponse |
B06_Section_Schema.py |
종단·횡단 결과 요약 응답 |
SectionDetailResponse |
B06_Section_Schema.py |
종단 결과 및 다수 횡단면 일괄 데이터 형식 정의 |
SectionRegenerateRequest |
B06_Section_Schema.py |
횡단 반폭 재생성 요청 검증 (cross_half_width_m에 gt=0 유효성 검증 적용) |
CrossDesignRequest / CrossDesignResponse |
B06_Section_Schema.py |
측점별 지반유형/단면유형/측구위치 계산 요청 및 절토 토사/암반 분리 면적(cut_soil_area_m2, cut_rock_area_m2, cut_rock_kind) 응답 스키마 |
EarthworkConversion / EarthworkConversionFactor |
B06_Section_Schema.py |
토량환산계수(L, C) 전송을 위한 Pydantic 스키마 |
계산 엔진
| 항목 | 위치 | 역할 |
|---|---|---|
compute_cross_design() |
B06_Section_Engine_Design.py |
[2단계 경사 & N-2-4 연동] 측점별 표준단면 절/성토 단면적 및 기하선 연산 엔진 (리핑암/발파암 2단계 절토 경사, 단면유형 자동 판정, ditch_enabled 토글) |
_split_cut_areas() |
[[B06_Section/backend/B06_Section_Engine_Areas]] |
[신설/2026-08-02] 700줄 충족을 위해 분리된 암 경계선 기준 절토면적 토사/암반 정밀 적분 연산 |
design_elevation_from_longitudinal() |
B06_Section_Engine_Design.py |
종단 계획선 계획고 선형보간 계산 헬퍼 |
attach_culvert_sets() |
B06_Section_Engine_Culvert_Sets.py |
구조물 세트를 상세 횡단 dict에 결합; BOX암거·세월교는 소유 측점만 사용 |
_SPAN_LINKED_TYPES |
B06_Section_Engine_Culvert_Sets.py |
인접 측점 연동 타입 집합; 현재 비어 있으며 기슭막이는 별도 프론트 경로 사용 |
| 종횡단 생성 엔진 | B05_Profile_Engine_Sections.py 등 |
기존 B06 종횡단 생성 엔진 파일 3종은 B05 노선 설계 최적화 시점에 실시간 통합 계산하도록 B05로 이관되었습니다. |
라우터·workflow (조회, 확정, 타 프로젝트 불러오기 및 재생성)
| 항목 | 위치(상대 경로) | 역할 |
|---|---|---|
get_sections() |
B06_Section_Router.py |
route 종횡단 요약 조회 (B05에서 계산된 데이터가 없을 시 오류 반환. data.options에 이력이 있을 시 DB 반폭 값 1순위로 조회 적용) |
get_road_widths() |
B06_Section_Router.py |
임도 등급별 법정 최소 도로폭 정보 조회 엔드포인트 |
cross_design_one() |
B06_Section_Router.py |
단건 측점 지반/단면 지정 즉시 계산 및 data.design 병합 저장 |
list_recent_company_projects() |
B06_Section_Router.py |
동일 회사 최근 5개 프로젝트 목록 반환 |
get_project_standard_cross_section() |
B06_Section_Router.py |
지정 프로젝트 표준단면 설정 로드 |
regenerate_sections() |
B06_Section_Router.py |
횡단 반폭 재생성: 재생성 옵션을 받아 run_section_generation 엔진 비동기 실행 |
confirm_sections() / save_sections() |
[[B06_Section/backend/B06_Section_Router_Confirm]] |
[신설/2026-08-02] 700줄 충족을 위해 분리된 임시 저장 및 확정(유토곡선 병합 저장 및 stage 3 COMPLETE 전이) 라우터 |
detail_sections() |
B06_Section_Router.py |
종단 결과 및 다수 횡단면 데이터 일괄 조회 API |
start_stage() / complete_stage() / fail_stage() |
B06_Section_Router.py |
WF3 상태 전이 → workflow_state |
데이터 영구 저장 및 환경설정
| 항목 | 위치 | 역할 |
|---|---|---|
update_cross_section_design() |
B06_Section_Repository.py |
cross_sections.data 내 design JSON 키 멱등성 업데이트 (행 부재 시 구조물/비정규 측점 INSERT 멱등 처리) |
merge_longitudinal_section_data() |
B06_Section_Repository.py |
[신설/2026-08-02] 유토곡선 결과(mass_haul) 데이터를 longitudinal_sections.data에 병합 저장하는 멱등성 Raw SQL 헬퍼 |
get_recent_company_projects() |
B06_Section_Repository.py |
Raw SQL 기반 동일 회사 최근 5개 프로젝트 조회 |
get_cross_sections_missing_design_chainages() |
B06_Section_Repository.py |
확정 시 미지정 측점 목록 추출 헬퍼 |
delete_sections_for_route() |
B06_Section_Repository.py:27 |
동일 route 기존 결과 삭제 후 재생성 |
get_latest_section_options() |
B06_Section_Repository.py:50 |
가장 최근 longitudinal_sections의 data.options 스냅샷 로드 및 역직렬화 헬퍼 |
EARTHWORK_CONVERSION_FACTORS |
config/config_system.py:439 |
[신설/2026-08-02] 지반유형 3종에 대한 체적 변화 계수 기본값 (토사 L1.25/C0.90, 리핑암 L1.35/C1.15, 발파암 L1.60/C1.30) |
EARTHWORK_HAUL_EQUIPMENT_LIMITS_M |
config/config_system.py:462 |
[신설/2026-08-02] 토공 운반장비 선정 제한거리 (종무대 20m, 도쟈 50m, 덤프 초과) |
SECTION_DESIGN_TEMPLATES |
config/config_system.py |
표준단면 프리셋 (토사: 절토 1:1.2, 측구 1000x400 / 암반: 절토 1:0.6, 측구 790x400) 및 고정 성토경사(1:1.2) |
| 잔재 파일 방지 | B05_Profile_Engine_Sections.py:145 |
횡단 세션 재계산 후 저장 전 prune_stale_cross_files() 잔재 자동 삭제 |