Files
Aislo/docs/wiki/pages/B06_Section/B06_backend.md
T
eomsangdonandClaude Opus 5.5 e1f8ba7bff refactor(472 덧 관 자리): 관 세트 읽기 · 얹기를 B06_Section_Engine_Culvert_Sets.py 로 나눔 — 동작 같음 · 700줄 여유
- 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>
2026-10-19 12:11:06 +09:00

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
B06_Section/B06_frontend
B06_Section/B06_api
B06_Section/B06_db
B06_Section/B06_dependencies
B06_Section/B06_culvert_set
architecture/project_map
architecture/workflow_data_flow
2026-08-26
docs/raw/verification/2026-07-19_verify_B05_B06_UI_Station_Improvement.md
docs/raw/verification/2026-07-19_verify_B05_B06_improvements.md
docs/raw/verification/2026-07-19_verify_half_width_persistence.md
docs/raw/verification/2026-07-19_verify_responsive_layout_drag.md
docs/raw/verification/2026-07-19_verify_B05_B06_차트_레이아웃_후속보정.md
docs/raw/verification/2026-07-20_verify_B07_상세설계개선.md
docs/raw/verification/2026-07-21_verify_B06_ground_section_type_B07_linkage.md
docs/raw/verification/2026-07-21_verify_B06_default_design_B07_gating.md
docs/raw/verification/2026-07-22_verify_B06_B07.md
docs/raw/verification/2026-07-25_verify_b05_b06_modifications.md
docs/raw/verification/2026-08-02_verify_mass_haul_and_drainage_fixes.md
docs/raw/verification/2026-08-02_verify_mass_haul_distribution_and_refinements.md
docs/raw/verification/2026-07-18_verify_B06_DrawingRendering.md
docs/raw/verification/2026-07-18_verify_B06_ProfileCross.md
docs/raw/verification/2026-07-19_verify_종횡단_이슈수정_3건.md
docs/raw/verification/2026-07-24_verify_B05_B06_표준횡단.md
docs/raw/plans/2026-08-20_plan_B06_배수관_횡단도_세트.md
docs/raw/verification/2026-08-20_verify_B06_배수관_횡단도_세트_자체검증근거.md
docs/raw/plans/2026-08-26_plan_B05_B06_구조물_인접측점_3D투영커브.md
docs/raw/verification/2026-08-26_verify_B05_B06_구조물_인접측점_3D투영커브_교차검증.md

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() 잔재 자동 삭제