From 039b5a3f3bf25e966d863df5597d343e75a0cc4d Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 19 Oct 2026 06:48:17 +0900 Subject: [PATCH] =?UTF-8?q?chore(=EC=A1=B0=EC=82=AC):=20=EC=9A=94=EA=B5=AC?= =?UTF-8?q?=20272=20=EB=B6=84=EC=84=9D=20=E2=80=94=20=EC=A7=80=EC=A0=95=20?= =?UTF-8?q?=C2=B7=20=EC=82=B0=EC=B6=9C=20=EA=B0=92=EC=9D=B4=20=EC=A0=80?= =?UTF-8?q?=EC=A0=88=EB=A1=9C=20=EB=B0=94=EB=80=8C=EB=8A=94=20=EA=B8=B8=20?= =?UTF-8?q?=EB=8B=A4=EC=84=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK --- .../조사/2026-10-19_465_요구272_값안변함.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 docs/raw/조사/2026-10-19_465_요구272_값안변함.md diff --git a/docs/raw/조사/2026-10-19_465_요구272_값안변함.md b/docs/raw/조사/2026-10-19_465_요구272_값안변함.md new file mode 100644 index 000000000..9308715f9 --- /dev/null +++ b/docs/raw/조사/2026-10-19_465_요구272_값안변함.md @@ -0,0 +1,118 @@ +# 요구 272 — 지정 · 산출 값이 저절로 변함(스냅 제외) + +분석 = 클로드 에이전트(Opus 5.5 · 읽기만) · ORCA 화면 재현(메인 5173 · 검증_랩탑메인 · 저장 · 확정 · 초기화 안 누름 · 세션 비움 · 프로젝트 id 되돌림 · 탭 닫음) · 스크립트 `scratchpad\req272\`(dump.js · mh.js · diff.js · geo.js · dst.js). + +## 1. 결론 + +- 참값 = 서버 정본 상세(GET detail 설계)로 셈한 누가토량 **−17,570.70 ㎥**(서버 Node 묶음 `B06_Section_Server_Calc_Node.ts` 와 같은 `computeMassHaul`) · [저장]은 서버가 정본 측점 · 표본으로 다시 셈. +- 값이 저절로 바뀌는 길 다섯 확인(재현 넷 · 코드 경로 하나). 공통 뿌리 = **파생값이 「입력」이 아니라 「기억 캐시 상태 · 그린 때 · 들어온 길」에 따라 달라짐**. + 1. 상세 가게(메모리)가 페이지를 떠나도 · 초안을 버려도 그대로 — 초안 때 측점 목록이 남음 → 누가토량 −17,534.4(정본 −17,570.7) · 새로고침해야 맞음. ③ 의 뿌리(브레인 −17,385.4 는 같은 갈래의 다른 중간 상태 · 추정). + 2. 관 · 구조물만 옮겨도 곡선 측점 13곳의 지반 표본을 브라우저 값으로 갈아 씀(좌측 축 허용 1e-4 < 실제 차 3.3e-4) → 되돌려도 −17,570.6. + 3. 소단 사본(세션 `berm`)을 횡단 보기만 씀 — B05 만 연 다시 셈은 소단 없이 셈 · B06 를 열면 다시 셈(코드 경로 · 이 프로젝트에 소단 없음). + 4. 사진첩이 빈 칸 「{}」 쓰기를 걸음으로 봄 — 되돌린 뒤 ↶ 다시 켜짐 · ↷ 사라짐(④). + 5. 버린 노선 초안 차례는 가게 측점을 안 냄 — 세션 `design-stations` 가 초안 측점 그대로 남음(⑤ · 「잠시」가 아니라 계속). +- ① = 종단 판 접힘(본문 0 크기) 동안 그리기 함수가 통째 건너뜀 — 알약 · 누가토량 총괄값 · 낡음 예약이 그리기에 묶임. +- ④ 뒤쪽(간격만 바꿔도 한 칸) = 스냅 맞춤이 노선을 실제로 옮김 → 스냅 몫 · 제외. 덤 = 배지 표기 「−17,570㎥」(소수 0 생략). + +## 2. 재현 표(검증_랩탑메인 · 노선 370 · 관 351 m 하나) + +| # | 조작 | 화면 값 | 참값 | 판정 | +|---|---|---|---|---| +| R0 | 새 탭 B05 · B06 왕복 3번 | −17,570.7 | −17,570.70 | 같음(평상시 재현 안 됨) | +| R1 | B06 폼 관 17+11 → 17+0 → 18+0 → 18+1 · 떠남 [폐기] · B05 다시 | **−17,534.4** · 상세 측점 340 · 360 · **361(일반 · 관 없음)** · 관 351 | −17,570.7 · 351 관 측점 | 틀림 · B06 왕복 그대로 · 새로고침 = −17,570.7 | +| R2 | 관 351 → 340 → 360 → 361 → ↶ 세 번(351) | **−17,570.6** · 곡선 측점 13곳 표본 · 면적 바뀜(80 m 절토 11.1673 → 11.1655 등) | −17,570.7 | 틀림 · B06 왕복 · 노선 ↓ ↶ 뒤도 그대로 | +| R3 | 종단 판 접음 → 교점 ↓(1080.3 m · 관 358) | 배지 −17,570.7 그대로 | 묶음 상세 −16,519.5 | 접힘 동안 갱신 없음 · 펼침 즉시 −16,519.5 | +| R4 | 교점 ↓ → ↶ → B06 → B05 | ↶ 켜짐 · ↷ 꺼짐 · 세션 초안 칸 6 개 「{}」 새로 생김(basinadjust · crossw · extraspan · extrawall · inletstruct · revetx) | ↶ 꺼짐 · ↷ 켜짐 | 틀림 · 생긴 걸음 ↶ = 그 6 칸 지움 · 두 번째 왕복 = 걸음 안 생김 | +| R5 | 교점 ↓(1100.2 m · 관 372 · 브레인과 같은 조작) → ↶ | 세션 design-stations 58 측점(372 · 1100 · 1100.21) | 상세 57 측점(351 · 1080.16) | 20 s 뒤 · B06 왕복 뒤도 그대로 | +| R6 | 간격 10 m → 측점 No. | 「MC 10 m 배수」 맞춤 · 배지 −17,570㎥ · 한 걸음 | — | 스냅 몫(제외) · 표기 흠만 | +| R7 | 열 때 브라우저 다시 셈 vs GET 정본 | 3 측점 면적 1e-4 차(8.1712 ↔ 8.1713) · −17,570.7065 ↔ −17,570.7025 | — | 표시 같음 · 낮음 | + +- 화면 조작 뒤 서버 쪽 = 저장 안 함 · `pipe_points.json` 그대로(351 · 10-17 22:35) · 새로 생긴 것 = 파생 저장본(`B05_Profile/route_recommend/*` 5 · `_derived/haul/*` 2 · 지워도 다시 셈). + +## 3. 원인(순위 · file:line) + +1. **상세 가게 메모리 = 탭 수명** — `B06_Section_Section_Store.ts:67` 모듈 `cache` · 갈아끼움은 메모리만(`:249`) · 다시 열면 메모리 그대로 돌려줌(`:124`). 페이지 떠남(`design_page.ts:283-290` = `forgetPageData` 만) · [폐기](`design_leave.ts:85` = 세션 초안만 지움)이 메모리를 안 비움. 새 페이지 묶음 첫 차례 = 조용한 차례(`design_pipeline_page.ts:551`)라 측점을 안 내 → 옛 측점 상세가 「저장 정본」으로 남음. 같은 메모리를 B07(`B07_DesignDetail_UI_Cad_Structures.ts:36`) · 관 길이(`design_page.ts:123`) · 평면 횡단 판(`B05_Profile_UI_RouteEdit_Cross_Card.ts:73`)도 읽음. 이 상태 [저장] = 361 측점 행을 새 행으로 실을 위험(`crossPatchesFromCache` savedAt · ROW_CARRY_KEYS · 추정). +2. **갈아끼움이 정본 표본을 덮음** — `B06_Section/logic/B06_Section_Station_Swap.ts:151-158` samePlace 좌측 축 허용 1e-4 · `:213` 아니면 브라우저 표본. 브라우저 측점 틀(`B05_Profile_UI_RouteEdit_Frame.ts:61` · 저장 노선 선 = `/route/plan` planned)과 서버 틀(`B05_Profile_Engine_Sections_Core.py:479-487` · 저장 경로 폴리라인)은 식은 같고 입력 선이 다름 → 중심 0.2–0.8 mm · R 12 곡선 좌측 축 최대 3.33e-4. 관만 옮긴 차례에도 13 측점이 「다른 자리」로 판정 · 되돌림은 측점 목록만 되돌리고 표본은 브라우저 값. +3. **소단 사본 쓰는 자리가 횡단 보기 하나** — `design_view_cross.ts:145` → `B06_Section_UI_Page_Design_Sync.ts:146-154` 만 `writeBermSpans`. 다시 셈(`B06_Section_Cross_Refresh.ts:337-353`)은 세션 사본만 읽고 저장분 `design.berm` 으로 안 물러섬 — 파이썬 짝은 구조물 정본 → 못 읽으면 `design.berm`(`B06_Section_Engine_Structures_Wall.py:124` · `B06_Section_Router_Design.py:304`). B05 만 연 탭 = 소단 없는 면적 · B06 열면 사본 씀 → 강제 다시 셈 → 값 바뀜 · [저장] = 서버가 소단 넣어 다시 셈 → 또 바뀜. +4. **빈 칸 쓰기 = 걸음** — `B06_Section_UI_Page_Link_Session.ts:97-105` persist 가 빈 맵도 「{}」 · 갈아끼움 이동(`:54-66` moveSessionMaps · 노선 초안 되돌림의 moves)이 살아 있는 맵 6 개를 모두 persist. 사진첩 `B05_Profile_UI_Profile_History.ts:49-55` 은 「{}」를 값으로 찍음 → 다음 `record()`(`:218-237`)가 새 걸음 · `stack.splice` 로 ↷ 버림. 떠남 확인(`design_leave.ts` filled)은 「{}」 = 빈 칸으로 봄 — 두 규칙이 갈림. 그때 `record()` 부른 자리 = (추정) 배수유역도 `onPipesDrafted`(`B05_Profile_UI_Profile_SideTool.ts:15`) 또는 놓은 뒤 settle. +5. **버린 초안 차례 = 가게 안 씀** — `design_pipeline_page.ts:389-402` 조용한 차례는 publish 건너뜀 · 그 목록을 `stationsShown` 으로 적어(`:399`) 뒤 같은 목록 차례도 안 냄 → 가게 stations · profile(세션 design-stations · design-profile)이 초안 값으로 굳음. 지금 읽는 쪽 = 바뀔 때 갈아끼움 구독 둘뿐(`design_view_profile_sections.ts:175` · `B06_Section_UI_Page_Station_Swap.ts:35`) → 잠복. +6. **파생값이 그리기에 묶임** — `B05_Profile_UI_Profile_Render.ts:135 · 146` 본문 0 크기면 통째 return → 알약 · 표 · 누가토량 총괄값(`B05_Profile_UI_Profile_MassHaul.ts:320` reportSummary 는 draw 안) · 배분 선반입 · 낡음 예약(`:263` onStaleDesigns)이 안 돎(①). +7. 낮음 — 배지 `common_util_mass_haul_badge.ts:26` maximumFractionDigits 만 · 단면 모양 기본값 TS `"left_cut"`(`B06_Section_Cross_Refresh.ts:399`) ↔ 파이썬 `default_section_modes`(`B06_Section_Router_Design.py:540`)(design.section_mode 없는 측점만 · 추정) · R7 반올림 1e-4. + +## 4. 정함 제안 + +- 원칙 한 줄: **파생값 = 입력(저장 정본 + 세션 초안)만의 함수** — 들어온 길 · 보기 차례 · 접힘 · 메모리 캐시 · 새로고침 여부로 갈리지 않음 · 초안을 버리는 길은 메모리도 정본으로 · 브라우저는 서버 정본 측점의 기하 · 표본을 덮지 않음 · 숨은 동안도 셈(그리기만 미룸) · 사진첩 걸음 = 사용자 조작으로 값이 실제로 바뀐 때만. +- (A) 상세 가게 메모리 = 페이지 수명 — Section_Store 에 `forgetSectionMemory(projectId)`(메모리 cache · pending 만 비움 · 세션 정본 · canon 그대로) · 페이지 dispose · [폐기]에서 부름 → 다시 열기 = 새로고침 길(세션 정본 + withDraftWalls). +- (A2) 버린 초안 차례도 가게 stations · profile = 지금 상세가 쥔 측점 · 저장 기준 계획선(갈아끼움 구독은 같은 목록이면 안 갈아끼움 · 349-0o 「측점이 달라도 초안 전 상세」 그대로). +- (B1) 갈아끼움 — 노선 초안이 없는 차례(관 · 구조물 · 추가 측점만)는 같은 열쇠 · 누가거리 0.01 m 안 앞 횡단의 기하 · 표본을 그대로 · 좌측 축 허용은 1e-3(측점 축 0.06° · 20 m 끝 2 cm)로. 노선 초안 차례는 지금 규칙. +- (B2) 소단 원천 = 페이지 한 벌 — 시설 줄(`design_facility_lane`)이 구조물이 바뀔 때 소단 사본을 쓰고(같으면 안 씀) 다시 셈 부탁 · 다시 셈은 사본 없으면 저장분 `design.berm`(파이썬 짝 규칙) · 횡단 보기 syncBermSpans 는 쓰기 뺌(`useStructureIds` 만). +- (C1) 사진첩 — 「{}」·「[]」·「null」·「""」 = 칸 없음(떠남 확인 filled 와 한 규칙) · persist 도 빈 맵이면 null. +- (C2) 접힘 · 0 크기 — 그리기 앞에서 파생값(총괄값 · 배분 선반입 · 낡음 예약 · 알약 자료)만 먼저 셈 · 그리기만 건너뜀 · 펼침 = 같은 값. +- (C3) 배지 소수 한 자리 고정(minimumFractionDigits 1). +- 제외 = 측점 스냅(snapCurveStations · 간격 맞춤). 미결 = 단면 모양 기본값 짝(7번 · 사용자 협의 없이 손대지 않음 · 기록만). + +## 5. 나눔(겹침 없음) + +| 절 | 파일(줄) | 몫 | +|---|---|---| +| 466-A 상세 가게 · 묶음 출력 | `B06_Section/B06_Section_Section_Store.ts`(518) · `A00_Common/design/design_page.ts`(294) · `A00_Common/design/design_leave.ts`(123) · `A00_Common/design/design_pipeline_page.ts`(**700** — 가게 구독 `:383-403` 을 새 `design_pipeline_page_publish.ts` 로 먼저 뗌) | (A) · (A2) | +| 466-B 측점 기하 · 소단 원천 | `B06_Section/logic/B06_Section_Station_Swap.ts`(278) · `A00_Common/design/design_facility_lane.ts`(219) · `B06_Section/B06_Section_UI_Page_Design_Sync.ts`(181) · `B06_Section/B06_Section_Cross_Refresh.ts`(526) | (B1) · (B2) | +| 466-C 사진첩 · 접힘 파생 · 배지 | `B05_Profile/B05_Profile_UI_Profile_History.ts`(263) · `B06_Section/B06_Section_UI_Page_Link_Session.ts`(231) · `B05_Profile/B05_Profile_UI_Profile_Render.ts`(479) · `B05_Profile/B05_Profile_UI_Profile_MassHaul.ts`(479) · `common_util/common_util_mass_haul_badge.ts`(183) | (C1) · (C2) · (C3) | + +- 셋 동시 착수 가능 · 466-B 시설 줄의 다시 셈 부탁 = `design_pipeline_page` 를 늦게 불러옴(import 고침 없음 · Section_Store `recrossSaved` 와 같은 꼴) → 466-A 파일과 안 겹침. +- 서버 Node 묶음(server-calc · corridor 등) 입력에 고칠 파일 없음 — 묶음 다시 지음 불필요(466-B 가 `common_util_cross_berm` 을 고치게 되면 필요). + +### 영향 범위 + +**(A) forgetSectionMemory** +- 같은 메모리 읽는 쪽: `loadSectionDetail` — `design_view_profile_sections.ts:113` · `design_view_cross.ts:225 · 632` · `B05_Profile_UI_RouteEdit_Apply.ts:172` · `B07_DesignDetail_UI_Cad_Structures.ts:36` · `B06_Section_UI_Page_Common.ts:51`(force) · `B06_Section_UI_Missing_Stations.ts:97`(force) / `peekSectionDetail` — `design_page.ts:123` · `B05_Profile_UI_RouteEdit_Cross_Card.ts:73` / 갈아끼움 · 붙듦 · 되돌림 — `design_shared.ts` holdDraft · `swapSectionStations`(구독 둘) · `restoreSectionDetail` · `recrossSaved`. +- 깨질 수 있는 것: 떠난 뒤 늦게 끝나는 초안 버림 되돌림 = 「no-cache」(이미 처리 길) · 다시 열 때 세션 상세 풂(1.3 MB) + `checkSessionCanon` GET 한 번(ETag) · 세션 용량 넘은 프로젝트 = 서버 GET(새로고침과 같음) · B05 → B07 → B05 오감 비용 · 초안 남긴 채 떠남 = withDraftStations 가 초안 자리를 다시 얹는지(새로고침 길과 같은지) 꼭 확인. +- 기존 시험: `test_416_page_cache`(M1 = 페이지 안 · 무관) · `test_451_session_canon` · `test_346_2_station_swap` · `test_440_cross_draft_pick` · `test_458_swap_attach` · `test_346_4_design_leave`. + +**(A2) 버린 차례 가게 출력** +- 같은 원천: 가게 `stations` 구독 — `design_view_profile_sections.ts:175` · `B06_Section_UI_Page_Station_Swap.ts:35`(→ swapSectionStations · 같은 목록 = null) · `profile` 읽는 쪽 없음 · `footprint` 는 이미 냄. +- 깨질 수 있는 것: saved-diff(측점이 달라도 초안 전 상세) 때 묶음 측점을 내면 갈아끼움 → 반드시 상세 측점 목록을 냄 · `stationsShown` 메아리 막음(349-0q). +- 기존 시험: `test_349_0q_undo_echo` · `test_349_0k_undo_saved` · `test_349_0o_redo_same` · `test_349_0l_undo_draw` · `test_356_4_undo_grade` · `helper_344_4_design_pipeline`. + +**(B1) 갈아끼움 정본 표본 유지** +- 부르는 쪽: `swapCrossSections` ← `swapSectionStations`(가게 stations 구독 둘 · holdDraft 「no-saved」) · 시험 헬퍼 `helper_346_2_*` · `helper_415_swap` · `helper_428_pipe_move*` · `helper_433_swap` · `helper_440_draft_card_ids` · `helper_458_swap_attach`. +- 같은 원천: `moved`(「노선 밖 고침」 셈 · 0.01 m 기준 · 그대로) · center_z · uphill_side · 측점 번호(vacated). +- 깨질 수 있는 것: 노선을 1 cm 안 옮긴 차례(축만 바뀜)가 옛 표본을 씀 — 노선 초안 차례는 지금 규칙 유지로 막음 · 새 관 측점(prior 없음)은 브라우저 표본 그대로(저장 뒤 서버 값 · 그 측점만 mm 차 남음 · 기록). +- 기존 시험: `test_346_2_station_swap` · `test_428_pipe_move_mirror` · `test_458_swap_attach` · `test_433_11_plus_station_masshaul` · `test_440_cross_draft_pick`. + +**(B2) 소단 원천 한 벌** +- 쓰는 쪽: `writeBermSpans` = `B06_Section_UI_Page_Design_Sync.ts:152` 하나 → 시설 줄로 옮김 · 읽는 쪽: `B06_Section_Cross_Refresh.ts:242`(서버 폴백 payload) · `:337`(브라우저 다시 셈) · 초안 노선 `design_shared.ts:248` bermAt(구조물에서 바로 · 그대로) · 서버 짝 `load_berm_spans`. +- 시설 줄 입력: `lane.set` — `B05_Profile_UI_Page_Structures.ts:100 · 129 · 205` · `B06_Section_UI_Page_Structures_Panel.ts:211` · `lane.follow` — `design_shared.ts:242` · `setStored` — `B05_Profile_UI_Page_Structures.ts:128 · 198` · `B06_Section_UI_Page_Structures_Panel.ts:405`. +- 깨질 수 있는 것: 열 때 시설 줄이 구조물을 받기 전 cross 차례 = 저장분 design.berm 폴백으로 같은 값(폴백 없으면 값이 한 번 출렁임) · 노선 따라감(follow)으로 소단 구간 누가거리가 바뀌면 사본도 바뀜 → 다시 셈 한 번(의도) · 같은 사본이면 안 씀(다시 셈 고리 막음). +- 기존 시험: `test_271_facility_lane` · `test_213_2_ghost_edit_drop` · `test_399_plan_structure_marks` · `test_design_profile_single` · 소단 거울 시험(있으면 · 194-1 · 3-9). + +**(C1) 사진첩 빈 칸** +- 같은 원천: `takeSnapshot` ← record · apply · rebaseActive · seedActive · `restoreSnapshot`(없는 칸 지움 → 「{}」 칸도 지움 = 빈 칸 · 읽는 쪽 load 는 없음 = 빈 맵) · persist 쓰는 맵 6 개(`B06_Section_UI_Page_Station_Controls.ts:131 · 174 · 319 · 330 · 347 · 488`) · moveSessionMaps. +- 깨질 수 있는 것: 「0 = 되돌림」·「null = 되돌림」 값은 맵 안 값이라 무관 · 키 칸(`persistKeyed`)은 그대로. +- 기존 시험: `test_346_4_profile_history` · `test_346_4_one_undo` · `test_364_1_view_no_step` · `test_349_0q_undo_echo` · `test_356_4_undo_grade` · `test_346_4_design_leave`. + +**(C2) 접힘 파생** +- 같은 원천: `renderProfile` ← design_profile draw(모든 다시 그림) · 팝아웃(`design_profile_popout.ts` · 본문이 다른 창) · `massHaul.draw`(접힘 총괄값 · 배분 선반입 `haulPrefetch.schedule`) · `onStaleDesigns` → crossPreview.scheduleIfStale. +- 깨질 수 있는 것: 접힌 동안 끌기 · 리사이즈마다 총괄값 셈(횡단 기준만 · 6 ms 안팎) · 배분 요청이 접힘 중에도 나감(지금도 의도 — 「편집이 멈추면 조용히 받아 둠」) · 349-0s 그리기 몫 기록. +- 기존 시험: `test_309_mass_haul_badge` · `test_289_1_mass_badge_size` · `test_349_0s_draw_work` · `test_342_1_haul_plan_key` · `test_346_2_pipeline_cross_page`. + +**(C3) 배지 표기** +- 쓰는 쪽: 종단 상단줄 배지(B05 · B06 한 벌) · 시험이 글을 단언하면 같이 고침(`test_309_mass_haul_badge` · `helper_454_final_cumulative`). + +## 6. 시험(새로 · `resources/tester/`) + +- `test_272_detail_memory.py`(466-A) — 관 옮김 갈아끼움 → [폐기] → dispose → 다시 load = 세션 정본 측점(351 관 측점 · 361 없음) · 누가토량 = 정본 · B07 load 같은 측점 · 초안 남긴 채 떠남 = 새로고침과 같은 측점. +- `test_272_drop_store_stations.py`(466-A) — 노선 초안 → 버림 → 가게 stations = 상세 측점 · saved-diff = 상세 측점 · 메아리 갈아끼움 0. +- `test_272_swap_keeps_canon.py`(466-B) — R 12 곡선 측점 축 3.3e-4 차 · 관만 옮김 → 정본 표본 그대로 · 되돌림 = 정본과 바이트 같음 · 노선 초안 차례 = 새 표본. +- `test_272_berm_source.py`(466-B) — B05 만 연 다시 셈 = 저장 design.berm 면적 · 소단 구조물 고침 → 사본 씀 · 다시 셈 한 번 · TS `bermSpansFromStructures` ↔ 파이썬 `load_berm_spans` 결과 같음. +- `test_272_history_empty_cells.py`(466-C) — 「{}」·「[]」 쓰기 = 걸음 아님 · 되돌린 뒤 빈 칸 생겨도 ↷ 남음 · 사용자 조작 = 한 걸음 그대로. +- `test_272_hidden_summary.py`(466-C) — 본문 0 크기 → 총괄값 · 낡음 예약 · 배분 선반입 여전히 · 펼침 = 같은 값 · 배지 「−17,570.0㎥」. + +## 7. 화면 확인 목록(창마다 자기 검증 프로젝트 · 저장 쓰는 확인은 DB 7 표 · storage 해시 떠 둠) + +- 기준값 — 새 탭 B05 · B06 · 새로고침 · 팝아웃 · 판 접힘/펼침 각각 누가토량 · 측점 수 · 알약 자리 = 같음. +- 466-A — B06 폼 관 17+11 → 18+0 → 18+1 → 떠남 [폐기] → B05 = 정본 값 · 351 관 측점 · B07 CAD 구조물 측점 같음 / 같은 조작 → 떠남 [취소] · 되돌아옴 = 초안 그대로 / 초안 남긴 채 B07 → B05 = 초안 측점 / 노선 초안(교점 ↓ 1100.2 m) → ↶ → 세션 design-stations = 57 측점 / ↷ = 58 · 다시 ↶ = 57 / 프로젝트 바꿈 → 되돌아옴 = 정본. +- 466-B — 관 351 → 361 → ↶ = −17,570.7 · 곡선 측점(80 · 140 · 240 · 260 · 860 · 1000) 면적 GET 과 같음 / 교점 ↓ 차례 = 새 표본(카드 지반선 따라옴) / 소단 있는 프로젝트: 새 탭 B05 만 열기 = 누가토량 = B06 연 뒤 = [저장] 뒤 · 소단 구간 옮김 = 한 번만 바뀜 · 소단 지움 = 소단 없는 면적. +- 466-C — 교점 ↓ → ↶ → B06(첫 마운트 · 두 번째) → B05 = ↶ 꺼짐 · ↷ 켜짐 / 카드 단추 · 조정창 · 반폭 ◀▶ = 한 걸음씩 / 판 접음 → 교점 ↓ → 펼침 전 상단줄(팝아웃 창에서) 값 = 묶음 상세 값 · 알약 새 자리 / 판 접음 → ↶ → 펼침 = 정본 / 배지 「−17,570.0㎥」 · 「−17,570.7㎥」 자릿수 같음. +- 예외 — 빈 관 목록 · 같은 자리 관 둘 · 관을 일반측점 위(360)에 · 끝 측점 옆 · 계산 중 보기 전환 · 저장 중 전환 · 되돌리기 끝까지 · 다시하기 끝까지 · 새로고침 직후 B06 바로 열기 · 밝음 · 어두움. +- 제외 확인 — 측점 스냅 켬 · 간격 바꿈 = 노선이 옮겨지면 걸음 · 값 바뀜(의도 · 판정 밖).