Files
Aislo/docs/wiki/pages/B06_Section/B06_backend.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +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_mgt=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.py 구조물 세트를 상세 횡단 dict에 결합; BOX암거·세월교는 소유 측점만 사용
_SPAN_LINKED_TYPES B06_Section_Engine_Culvert.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.datadesign 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_sectionsdata.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() 잔재 자동 삭제