- `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>
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 | 2026-08-29 |
|
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.json의 facility=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차 교차검증을 재실행하지 않았다.