Files
Aislo/docs/wiki/pages/B05_Profile/B05_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

4.5 KiB

type, status, page_id, related_pages, last_updated, source
type status page_id related_pages last_updated source
page-backend stable B05_Profile
B05_Profile/B05_frontend
B05_Profile/B05_api
B05_Profile/B05_db
B05_Profile/B05_dependencies
B05_Profile/B05_corridor_surface
architecture/project_map
architecture/workflow_data_flow
2026-08-23
docs/raw/verification/2026-08-08_verify_server_and_e2e_fixes.md
docs/raw/verification/2026-07-18_verify_b04_confirm_b05_rebuild.md
docs/raw/verification/2026-07-19_verify_종횡단_이슈수정_3건.md
docs/raw/verification/2026-07-20_verify_B05_longitudinal_grade_line.md
docs/raw/verification/2026-07-24_verify_B05_B06_표준횡단.md
docs/raw/verification/2026-08-23_verify_B05_3D_예상형상_코리도_서피스_교차검증.md

B05_Profile — Backend

B05 경로 설계 백엔드는 FastAPI 라우터, confirm 헬퍼 모듈, aiomysql Repository, Pydantic Schema 및 최적 탐색/시공계획고/단면 생성/배수유역 및 관 매설 연동 엔진 모듈들로 세분화되어 구성됩니다.

일반 구조물 레지스트리·파일 정본·검증·마이그레이션·후속 STALE 연계는 B05_Profile/B05_structures를 기준으로 한다.

📂 소스코드 1:1 세분화 위키 파일 목록

소스 파일명 위키 명세 문서 핵심 역할
B05_Profile_Router.py [[B05_Profile/backend/B05_Profile_Router]] FastAPI 엔드포인트 서빙 및 최적경로/선형편집 영속화
B05_Profile_Router_Confirm.py [[B05_Profile/backend/B05_Profile_Router_Confirm]] 경로 확정(confirm) 시 비정규 측점 및 종단 병합 오케스트레이션 헬퍼
B05_Profile_Repository.py [[B05_Profile/backend/B05_Profile_Repository]] routes, route_points, route_statistics Raw SQL CRUD
B05_Profile_Schema.py [[B05_Profile/backend/B05_Profile_Schema]] Pydantic V2 요청/응답 및 % 경사 정규화 검증 스키마
B05_Profile_Engine_Solver.py [[B05_Profile/backend/B05_Profile_Engine_Solver]] DTM 비용면 캐싱, 경유점 order null 정렬 예외 보정(item.get("order") or 0) 및 최적 경로 Solver
B05_Profile_Engine_Grade.py [[B05_Profile/backend/B05_Profile_Engine_Grade]] 법정 기준 시공계획고, 종단곡선 15m(default_curve_length_m) 일원화 및 최대가용 L 클램프 엔진
B05_Profile_Engine_Sections.py [[B05_Profile/backend/B05_Profile_Engine_Sections]] 종단(longitudinal.json) 및 횡단(cross_*.json) 단면 파일 생성 엔진
B05_Profile_Structures_Schema.py [[B05_Profile/B05_structures]] 구조물 타입·인스턴스와 배치형태별 위치 검증
B05_Profile_Structures_Repository.py [[B05_Profile/B05_structures]] structures.json 원자 저장, 판번호·레지스트리 검증
B05_Profile_Structures_Migration.py [[B05_Profile/B05_structures]] 구 비정규 구조물의 멱등 변환 모듈
B05_Profile_Structures_Router.py [[B05_Profile/B05_structures]] 구조물 타입 조회와 목록 GET/PUT, STALE 요청
B05_Profile_Router_Corridor.py [[B05_Profile/B05_corridor_surface]] 코리도 JSON 조회·원자 저장과 용량 제한

📋 핵심 백엔드 아키텍처 개요

  • 일반 구조물 SSOT(2026-08-16): 배관은 B04 공용 pipe_points.json에 유지하고 B~G 구조물은 B05_Profile/route/structures.json에 revision과 함께 저장한다. 미등록 타입·잘못된 배치·옵션·범위는 서버에서 거절한다.
  • 자동 설계 체인 배수유역·관 재생성 연동: _prepare_drainage_pipes_and_reprofile() 신설을 통해 B05 확정 직후 자동 설계 체인(run_auto_design_chain) 및 이월 체인(run_redesign_chain)에서 배수유역·관 지점을 반영한 종횡단 재추출을 자동 수행.
  • B04/B05 배수 데이터 일원화: B05 사본 저장소와 복제 연산 로직을 전면 제거하고 B04 공용 API(B04_PreProcess_Router_Basins.py 경유)를 직접 매핑 호출.
  • 경로 및 모델 확정 시점 통합: B04 "모델 확정", B05 "경로 확정" 시점에 공용 API PUT /drainage/pipe-points를 호출해 데이터 커밋 저장.
  • 비정규 측점 및 종단 정본 정합: 관 마커 이동 시 종단 뷰어 및 구조물 폼과 동기화되어 confirm() 처리 시 longitudinal.jsoncross_*.json에 안전 합류.
  • 모듈 분리 규격 준수: 단일 소스 700줄 제약 만족 (주요 알고리즘은 common_util_drainage_detail.py 등 공통 유틸화).