Files
Aislo/docs/wiki/pages/B05_Profile/B05_structures.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.5 KiB

type, status, page_id, related_pages, last_updated, source
type status page_id related_pages last_updated source
page-feature stable B05_Profile
B05_Profile/B05_frontend
B05_Profile/B05_backend
B05_Profile/B05_api
B05_Profile/B05_db
B05_Profile/B05_Profile_plan_2026-08-19
B06_Section/B06_culvert_set
B06_Section/B06_revetment_link_controls
storage_paths
workflow_state
2026-08-29
docs/raw/plans/2026-08-16_plan_B05_구조물_수동추가.md
docs/raw/verification/2026-08-16_verify_B05_구조물_수동추가.md
docs/raw/verification/2026-08-16_verify_B05_구조물_수동추가_교차검증.md
docs/raw/plans/2026-08-17_plan_B05_structure_options_profile_marks.md
docs/raw/plans/2026-08-17_plan_B05_box_ui_recommendations.md
docs/raw/verification/2026-08-17_verify_B05_box_ui_recommendations_external.md
docs/raw/plans/2026-08-20_plan_B06_배수관_횡단도_세트.md
docs/raw/verification/2026-08-20_verify_B06_배수관_횡단도_세트_자체검증근거.md
docs/raw/plans/2026-08-29_plan_B05_B06_기슭막이_연동_경사_조정.md
docs/raw/verification/2026-08-29_verify_B05_B06_기슭막이_연동_경사_조정.md

B05 구조물 정본·통합 편집

B05는 배수관과 일반 구조물의 저장 정본을 분리하되 하나의 「구조물 배치」 폼에서 편집한다. B05 선택지는 A·C·D·E·기타이고, B·F·G 정의는 B06 재사용을 위해 비활성 상태로 보존한다.

정본과 타입 레지스트리

항목 위치 역할
타입 레지스트리 B05_Profile/B05_Profile_Structure_Types.json 타입 ID·그룹·배치형태·옵션·표시색·약호·drawing_views 정의
일반 구조물 정본 B05_Profile/route/structures.json revision을 포함한 전체 목록 원자 저장
배관 정본 B04 공용 pipe_points.json managed_by: pipe_points인 배관을 계속 관리; 일반 구조물 정본에는 저장하지 않음

레지스트리는 생태연못을 삭제하고 B·F·G 10종을 enabled: false로 보존한다. D3 바닥막이는 점형 구조물로 부활했다. 독립 기슭막이는 일반 구조물에서 빠져 pipe_points.jsonfacility=revetment로 관리하며 B06_Section/B06_revetment_link_controls의 공용 배관 계산 경로를 쓴다.

배수관·시설 옵션

항목 위치 역할
pipe_points.json.options B04 공용 배수 정본 관종·관경과 유입/유출 구조 옵션 왕복 보존
createRevetmentFields() B05_Profile/B05_Profile_UI_Structures_Fields.ts 배수관 부속과 독립 기슭막이가 공유하는 입력 조각
createFacilityOptionsForm() B05_Profile/B05_Profile_UI_Drainage_Facility.ts 배수관·BOX암거·세월교의 부속 소그룹과 관 정본 연결
fordSection() B05_Profile/_Facility_Fields.ts 월류 폭·설계유량으로 필요 수심·단면·유속 계산

배수관은 기준 측점 하나만 쓰는 점형이다. 유입구는 기슭막이·집수정 중 하나를 고르고 유출구는 기슭막이를 쓴다. 배관·기슭막이의 보호공 선택 옵션은 삭제했고 B06은 횡단 형상에 맞춰 보호공을 계산한다. 독립 바닥 보호는 D3 바닥막이로 입력한다. BOX암거는 2.0×2.0 또는 3.0×3.0 프리셋과 사용자 지정을 제공하고, 날개벽은 유입·유출별 기본값(있음·1m·2m·45°)을 사용한다.

백엔드 파일

항목 위치 역할
StructureType·StructureInstance B05_Profile/B05_Profile_Structures_Schema.py 배치형태별 위치 필드와 옵션 스키마
load_structures()·save_structures() B05_Profile/B05_Profile_Structures_Repository.py 원자 저장, 판번호 충돌, 타입·옵션·노선 범위 검증
레거시 변환 B05_Profile/B05_Profile_Structures_Migration.py 배관 제외, 기성막이→기슭막이, 대피로→대피소, 멱등 변환
구조물 라우터 B05_Profile/B05_Profile_Structures_Router.py 타입 조회, 구조물 GET/PUT, 후속 단계 STALE 요청

프론트엔드 파일과 동작

항목 위치 역할
API 클라이언트 B05_Profile/B05_Profile_Api_Structures.ts 레지스트리 캐시, 목록 조회·저장, 409 충돌 구분
구조물 패널 B05_Profile/B05_Profile_UI_Structures_Panel.ts 그룹→타입→측점→옵션의 단일 폼, 추가·수정·삭제
종단 마크 B05_Profile/B05_Profile_UI_Structures_Marks.ts 2행 알약 레인, 벌룬, 선택 구간 띠, A군 세로선 연계
페이지 배선 B05_Profile/B05_Profile_UI_Page.ts 관·일반 구조물 저장 분기, 새로고침, 전역 선택 동기화
우클릭 메뉴 B05_Profile/B05_Profile_UI_Profile_Panel.ts 배관 관리 타입과 필수 옵션 타입을 제외한 빠른 추가
blocksPipeLowering() B05_Profile/B05_Profile_UI_Profile_Render.ts 관경+토피를 확보하지 못하는 배수관 측점 계획고 하향 차단

종단 그래프 아래에는 높이 50px의 2행 알약 레인을 둔다. 겹치지 않는 알약은 32px로 가운데 배치하고 겹치는 항목만 24px 두 줄로 나눈다. A군은 알약과 측점 세로선·계획고 틸팅 버튼을 함께 유지하며 선택 상태를 동기화한다.

유역 추천·개략 단면

항목 위치 역할
size_pipe() common_util/common_util_drainage_detail.py 유효직경·필요 단면·추천 시설·추천 관경 산출
_apply_recommendations() B04_PreProcess/B04_PreProcess_Router_Basins.py 자동 배치 관에 추천 관경·시설을 주입하고 사용자 변경값 보호
ford_width_m B05_Profile/B05_Profile_Structure_Types.json 물넘이·세월교의 사용자 입력 월류 폭

유효직경 1,500mm 이하는 배관 규격을 스냅하고, 초과~2,000mm 이하는 BOX암거 후보, 2,000mm 초과는 세월교·물넘이 검토로 추천한다. 추천은 유량만 근거로 하며 계곡 횡단경사·하천 차수는 현장 확인으로 남긴다. 물넘이·세월교 폼은 월류 폭을 받으면 필요 수심·필요 단면·유속을 표시한다.

API

메서드·경로 역할
GET /api/projects/structure-types 타입 레지스트리 반환
GET /api/projects/{project_id}/route/structures 일반 구조물 정본과 revision 조회
PUT /api/projects/{project_id}/route/structures 전체 목록 저장, 충돌·검증 결과와 STALE 처리 상태 반환

B06 경계와 남은 범위

위치·범위·제원 변경은 B06 이후 재작업 대상이다. 무효화가 필요했지만 실패하면 저장 성공과 별도로 B06 재실행 경고를 표시한다.

배수관 횡단도 세트는 B06_Section/B06_culvert_set에 완료 반영했다. 나머지 구조물별 횡단도·상세도 표현과 B·F·G 활성화는 docs/raw/PLAN.md의 구조물 적용 범위 표를 입력으로 확정한다. 부속 자동 제안, 지형·하천 차수 기반 추천, BOX암거·물넘이·세월교 상세 산식, 유효직경 계수 재확정은 후속이다.

검증

2026-08-20 완료 기록: 구조물 범위 입력·설계속도·바닥막이 부활·독립 기슭막이·배수관 계획고 하향 제한과 B06 세트를 포함해 최종 pytest 148 passed·7 skipped, TypeScript·Ruff·Prettier와 실화면 확인이 기록됐다. 근거는 raw/verification/2026-08-20_verify_B06_배수관_횡단도_세트_자체검증근거.md에 보존했으며 위키 관리자는 2차 교차검증을 재실행하지 않았다.