diff --git a/docs/raw/verification/2026-09-09f_계획서_공통기반과_참고_이관.md b/docs/raw/verification/2026-09-09f_계획서_공통기반과_참고_이관.md new file mode 100644 index 00000000..0efa4546 --- /dev/null +++ b/docs/raw/verification/2026-09-09f_계획서_공통기반과_참고_이관.md @@ -0,0 +1,144 @@ +# 계획서에서 옮긴 것 — 2026-09-09 (f) 공통기반 · 참고 · 검증 프로젝트 + +사용자 판단으로 계획서에서 뺀 것. **원문 그대로**임. + +- **공통기반 0-5·0-7** — 행동지침 5장(계산 자리·데이터 3층)과 겹침 +- **8-33** — 창별 검증 프로젝트 표는 `OWNERS.md` 자원 점유로 옮겼고 나머지는 여기 +- **참고 절 셋** — 데이터 세트 정의는 지침과 중복, 나머지 둘은 옛 자료 + +## 참고 절 통째 — 데이터 세트 정의 · 구조물 구현 기준 · 계곡 통과 시설 선정 + +## 참고 + +> **여기에는 코드 작업 중 필요한 기준표·확정사항만 둔다**(운영 원칙). +> 일하는 법·검증 함정은 위키 몫 — 계획서에 두지 않는다. + +### 데이터 세트 정의 (2026-09-06 사용자 확정 — 이 표가 기준) + +혼동을 없애기 위해 **세 벌**로만 나눈다. 이 밖의 자리는 만들지 않는다. + +| 세트 | 어디 | 언제 쓰나 | 누가 쓰나 | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- | ---------------------------------------------------------------- | +| **① 초기값** | `initial_snapshot/` (파일 + DB 행 덤프) | 파일 업로드 직후 자동설계 체인이**한 번** 찍음 | 그 뒤로는**어떤 경로도 쓰지 않음**. [초기화]가 읽어 되돌림 | +| **② 작업본** | DB`routes`·`longitudinal_sections`·`cross_sections` + 정본 파일(`route/`·`longitudinal/`·`cross_sections/`·`drainage/`) | 사용자가 [저장]·[확정]을 누를 때만 | 서버. 화면은**읽기만** | +| **③ 캐시** | 브라우저 세션(sessionStorage) — 등록표`A00_Common/b_page_state.ts` | 사용자가 화면을 만지는 내내 | 브라우저. [저장]·[확정]에서 ②로 넘어감 | + +**흐름 (사용자 확정 4줄)** + +1. 파일 업로드 직후 B04~B06 초기값을 **서버가 계산해 ②에 저장**하고, 그것을 그대로 ①로 떠 둠. +2. 사용자가 B05·B06 에 들어오면 ②를 **한 번 읽어** 화면에 올리고, 그 뒤 모든 계산은 ③(브라우저)에서 함. 조작 중에는 ②를 건드리지 않음. +3. [저장]·[확정]에서만 ③ → ②. ①에는 절대 쓰지 않음(그래야 [초기화]가 성립). +4. 오래 걸리는 계산만 서버를 거침(3D 코리도·구조물 면적·유토곡선 — Node 진입점). + +**지키는 장치** + +- ① 보호: `common_util_initial_snapshot.py` 가 체인 끝에서 한 번만 찍고, 저장 경로 어디도 `initial_snapshot/` 을 열지 않음. +- ③ 정의: 등록표(`b_page_state.ts`)가 세션 키의 **유일한 정의처**. 새 조작값은 여기 줄을 세우지 않으면 [초기화]가 못 지움. +- ② 쓰기 창구: B05 [임시저장](`B05_Profile_UI_Page_Actions.tempSaveAction`)·B06 [저장]/[확정](`B06_Section_UI_Page_Persist`) 둘뿐. +- 읽기는 읽기만: 상세 조회(`get_section_detail`)에서 계획을 다시 계산하던 두 자리(포장 구간·세월교 노면 하강)를 **저장 시점으로 옮김**(2026-09-06). 남은 하나(`attach_default_designs`)는 저장분이 있으면 아무 일도 안 하는 폴백. + +### 구조물 구현 기준 + +- 상세 타입·옵션 정본: `B05_Profile/B05_Profile_Structure_Types.json`. +- 배수관 정본: `pipe_points.json`; 일반 구조물 정본: `structures.json`. +- B05·B06은 같은 프론트 캐시와 백엔드 데이터를 사용한다. +- 점형=측점 1개, 구간형=시점~종점, 부지형=위치+면적. +- 자동=프로그램 산출, 후보=제안 후 사용자 확정, 수동=직접 추가. +- A8 집수정은 A1 배수관 유입부 옵션이며 단독 구조물이 아니다. +- 교량(A5)과 생태연못(F2)은 임도에서 사용하지 않는다. +- B·F·G군은 B05 선택지에서 제외하고 필요한 항목만 B06에서 사용한다. +- 기술 근거·수치는 `resources/knowledge/technical_info/01_임도/`를 우선한다. + +### 계곡 통과 시설 선정 + +| 조건 | 시설 | +| ---------------------------------------------- | ------------------------------------------------ | +| 소계류, 횡단경사 30% 이하, 종단 3~5% 조정 가능 | 물넘이 또는 세월교 우선 검토 | +| 계곡 횡단경사 30% 초과 | 배수관 Ø800 이상; 800→1000→1200→1500 순 검토 | +| 수리계산 Ø1,500 초과, 협곡, 횡단경사 40% 이하 | BOX암거 검토 | +| 배수관 2련 이상 필요 | 물넘이 재검토 | +| 하천 또는 3차수 이상 계곡 | 세월교 검토 | + +설계유량은 `Qd = 2.0 × Q`와 Manning 통수능으로 판단한다. 관경은 유량으로, 집수정·기슭막이 등 부속은 지형과 배치 위치로 정한다. + + +## 8-33 검증용 프로젝트 — 앞 판 복제 기록과 대조 기준선 (표는 OWNERS.md 로 옮김) + +### 8-33. 검증용 프로젝트는 창마다 하나 — 「단면이 있다」만으로는 모자람 (2026-09-08 사용자 지시) + +**창마다 자기 검증 프로젝트를 씀.** 나눔표의 정본은 `OWNERS.md` 임. + +#### ⭐ 확정된 방식 (2026-09-09 사용자 확정 — 사용자가 직접 만들어 배정) + +**복제하지 않음. 사용자가 LAS 로 네 개를 직접 만들어 창마다 배정했음** +(2026-09-09 사용자 지시 「LAS파일로 만들것 복제하지마」 · 「프로젝트는 내가 생성해줌」). + +| 창 | 프로젝트 이름 | ID | 상태 | +| -------------------- | ------------------------ | ---------------------------------------- | ----------------- | +| 데스크탑 메인 (B08) | `테스크탑_메인` ⚠오타 | `79da822d-921a-40f8-bb93-d8ffd90eeedf` | `WF3_ANALYZING` | +| 데스크탑 보조 (B09) | `데스크탑_보조` | `26275834-9e8b-4e58-93de-22754edb3c6c` | `WF3_ANALYZING` | +| 랩탑 메인 (B05·B06) | `랩탑_메인` | `fa76c162-71c7-46e5-a95d-fb3930665a45` | `WF3_ANALYZING` | +| 랩탑 보조 (B07) | `랩탑_보조` | `936be972-11bc-46c2-8bf3-b15d8de7df0d` | `WF3_ANALYZING` | + +- **이름에 `검증_` 접두어 없음** — 사용자가 만든 이름 그대로 씀. +- ⚠ **구조물이 하나도 안 들어 있음**(랩탑 보조 실측 — `structures.json` 없음, 관 지점 11개만). + ⇒ **표준도 「제원 조합별 장 수」는 구조물을 심어야 볼 수 있음.** 심는 내용은 결정 1에 걸림. +- **B07 도면 31 건이 뜸** — 표지 · 계획평면도 4 · 종단 3 · 표준횡단 · 횡단 18 · 토적도 · 유역도 · + **표준도(빈 장 한 줄, 예상대로)** · 용지도. + +**앞 판 — 복제로 갔던 자리 (2026-09-09 접음)** +`2f940d8a`(`구조물검증-LAS`)를 복제해 쓰려 했고 데스크탑 메인이 `9cee9b7a` 로 한 번 떴음 +(`db_management/tools_clone_project.py` 가 그때 만든 도구, 지금은 안 씀). +**사용자가 원본과 복제본을 지웠고** 그 파일을 실경로로 읽던 시험이 두 PC 에서 깨졌음 +(위키에 기록). 그때 잡아 둔 **대조 기준선**은 아래에 남김 — 값의 자릿수를 가늠하는 +데는 여전히 쓸모가 있으나 **지금 네 프로젝트의 값은 아님.** + +**대조 기준선 (심기 전 값 — 계수를 바꾼 뒤 이 표와 견줄 것)** + +``` +측점 24 · 연장 350.108m +흙깎기 토사 7.748㎥ · 암 0.264 · 측구터파기 2.173/0.062 · 보정량계 9.304 +성토 4,498.74㎥ · 성토면다짐 2,645.21㎡ · 초류종자살포 2,681.53㎡ +지장목제거 2,681.53㎡ · 층따기 2,645.21㎡(막아 둔 줄) +구조물 4기 · 자재 6줄 · 운반표 haul_available true +관 지점 5 — 관 Ø1000(84.30) · 관 Ø800(275.71) · 세월교(149.73) · BOX암거(200.92) + · 기슭막이(48.80, 유입부 돌쌓기(메) L=10) ⇒ 배수관 물량 대상은 관 둘 +``` + + + +## 0-7 노선 두 벌 확정 규칙 절 머리 (규칙 여덟은 0-2 로 합침) + +### 0-7. 노선이 바뀌면 세 벌은 어떻게 되나 — 확정 규칙 (2026-09-06 사용자 확정) + + +노선을 **두 벌**로 둔다 — **예상노선**(원본, 자동 체인이 낸 것, 안 바뀜)과 +**계획노선**(수정본, 예상노선을 복사해 시작, 사용자가 고침). + +1. **노선 변경 = 계획노선만.** 예상노선은 어떤 경로로도 안 고침. +2. **전처리 전에 두 벌을 확보** — 체인이 예상노선을 내면 그 자리에서 계획노선으로 복사. + 그 뒤 모든 계산은 계획노선 기준. +3. **화면에는 둘 다 보인다** — 예상노선 **점선**, 계획노선 **실선**. +4. **[초기화] = 예상노선을 계획노선으로 다시 복사.** 재계산이 아니라 복사. +5. **노선이 바뀌면 배수유역부터 전처리를 다시 돈다.** +6. **둘로 갈라 다룬다** — **횡단배수 지점**(`pipe_points.json`)은 노선 자리에 따라 생기고 + 없어지는 것이라 **새로 계산한 값**을 씀. **그 밖의 구조물**(`structures.json`)은 + **옛 측점값(누가거리)을 그대로 이어받음** — 사용자가 고쳐 둔 값이 살아남아야 함. +7. **계산은 모달 [확인]을 눌렀을 때만 시작.** 편집 중에는 아무 계산도 안 나감. +8. **재계산은 초기 체인 로직을 재사용**(`run_redesign_chain`). 노선 편집이 쓰려면 + **사용자가 고친 계획노선을 그대로 받는 입구 하나**만 내면 나머지 단계는 그대로 돎. + +- ⏳ **투영 이월 코드 정리는 검증 대기** — 7-V-2. 허용오차 판정을 넣어 + 실제 프로젝트 전부가 투영 가지를 안 타는 것까지 확인했으나, **지우는 것은 조건 둘이 + 갖춰질 때만**임(WARNING 0 지속 + 관 재배치 경로 신설). 지금 지우면 관 0건 결함으로 되돌아감. + + +## 0-5 계산 자리 원칙 — 행동지침 5장과 겹치는 세 문단 + +### 0-5. B05·B06 계산을 **양쪽에서 다 돌 수 있게** (2026-09-06 사용자 지시) + +사용자 지시: 「B05·B06 은 전체 다 서버에서도 할 수 있고 브라우저에서도 할 수 있게. 어디서 돌릴지는 나중에 고른다.」 그러려면 계산마다 **양쪽 진입점**이 있어야 하고, 그 진입점이 **같은 한 벌**을 불러야 한다(두 벌이면 고르는 순간 값이 갈림). + +**원지반과 계획을 가를 것 (2026-09-06 사용자 정정)** — 「지형에서 뜨는 계산은 브라우저로 못 옮긴다」가 아니라 **다시 계산할 일이 없다**. 원지반은 안 변하므로 처음 한 번 서버가 떠서 영구저장하고, 그 뒤로는 읽기만 한다. 다시 계산해야 하는 것은 **계획**(계획노선·계획고·설계선·면적·수량)이고 그것은 브라우저 몫이며 저장은 [저장]·[확정] 때만이다. 서버가 지형을 다시 뜨는 자리는 **자리가 바뀔 때뿐** — 노선을 옮기거나(0-2) 횡단 반폭을 넓힐 때. + +**규칙** — 새 계산은 **TS 에 두는 것을 기본**으로 함. 그러면 브라우저는 그냥 부르고 서버는 Node 로 부른다(한 벌). 파이썬에 두는 것은 파일·DB·래스터를 만져야 하는 계산뿐. 읽기 경로처럼 **매 요청마다 도는 자리**는 Node 왕복이 비싸므로 파이썬·TS 짝(거울 테스트 필수)을 허용함.