Files
Aislo/docs/wiki/concepts/design_page/operations_common.md
T
eomsangdonandClaude Opus 5.5 cfdcf0aed7 fix(472-5 남음): 암선 · 암 경사 · B05 상단측 메모리 맵 걷음 · 노선 저장 뒤 옛 노선 칸 · hold 비움
- 암 경계 · 암 절토 경사 저장소(`B06_Section_UI_Page_Persist`) = 세션 칸이 주인 — 읽을 때마다 측점 열쇠 칸(`readCells`) · 고칠 때 지금 칸을 읽어 그 측점만 바꿔 씀(`putCell`) · 메모리 맵 · load · 갈아끼움 다시 읽기(keyedStores · reloadKeyedStores) 걷음 · ↶ 뒤 다음 조작이 되돌림을 덮던 흠(N5) 고침
- 저장 재료 = `offsets()` · `ratios()`(새 Map) · ↶ ↷ 가 rockb · cutslope 칸을 바꾸면 조정창과 같은 onRestore 로 카드 · 면적 다시
- B05 상단측 메모리 맵(uphillOverrides · load/saveUphillOverrides) 걷음 — 읽는 곳 없이 저장 뒤 비우기만 하던 사본 · 값 주인 = 세션 칸 `uphill` · 상단측 차례 = 기본 조각 그대로
- 노선 바뀐 [저장] 성공 뒤(페이지 다시 세운 뒤) 옛 노선 번호의 노선 범위 초안(`clearRouteDrafts`) · `route-draft-hold` 비움 · 넘김 규칙 그대로 · 같은 번호면 노선 칸 안 지움 · 실패면 그대로
- 시험 test_472_5r_rock_owner 7(옛 코드 빨강 5) · 옛 단언 고침(176_3 · 271 · 443 상단측 조각 · 344_3 저장소 load)
- 위키 암선 · 암 경사 · ↶ ↷ 규칙 · 노선 저장 뒤 정리 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 15:13:30 +09:00

7.2 KiB

type, status, related_pages, last_updated, source
type status related_pages last_updated source
concept stable
design_page/index
design_page/operations_b05
design_page/operations_b06
design_page/session_keys
design_page/rules
2026-10-19
docs/raw/조사/2026-10-19_470_B05B06_데이터흐름.md
docs/raw/조사/2026-10-19_465_요구272_값안변함.md
PLAN.md 466 · 467 · 468

공통 조작 흐름 — 되돌리기 · 보기 · 수명 · 저장

조작 표

조작 처음 놓이는 곳 브라우저 즉시 셈(모듈) 서버 뒤 셈(API) [저장]·[확정] 때 사본 위치(파일:줄)
↶ ↷ 사진첩 = 세션 draft 칸 글(고름 · 관 id 등 뺌) · 빈 칸 「""」·「{}」·「null」 = 칸 없음 · 「[]」 = 값 칸 되씀 → 종단 · 시설 · 노선 다시 먹임 · 횡단 입력 물러섬 = 저장 정본 — — 사진 n B05_Profile_UI_Profile_History.ts:50 · 57 · 186 · 226-245 · design_pipeline_facilities.ts:62-69 · B05_Profile_UI_RouteEdit_History.ts:174-180
B05 ↔ B06 전환 없음(보기 숨김 · 보임) 보인 보기가 가게 · 세션 다시 읽음 · 입력 대 묶음 맞춤(최대 3 바퀴) · 시설 줄 · 묶음은 숨은 동안도 셈 — — — design_page.ts:209-262 · design_pipeline_page.ts:559-582 · design_view_cross.ts:557-565 · design_view_profile.ts:427
종단 판 접기 pref profile-collapsed 본문 0 크기 = 파생값(낡음 예약 · 유토 총괄값 · 배분 선반입 · 측점 자료)만 셈 · 그리기만 건너뜀 — — — B05_Profile_UI_Profile_Render.ts:131-159 · 211-226 · B05_Profile_UI_Profile_Drag.ts:43-58
팝아웃 없음 — 종단 판 DOM 만 새 창 같은 함수 · 같은 가게 — — — design_profile_popout.ts:87-132
새로고침 세션 남음 · 메모리 전부 잃음 세션 상세로 먼저 섬 → 서버 정본과 비교(checkSessionCanon) → 다르면 갈아씀 · 노선 초안 있으면 hold · 관 · 구조물 · 추가 측점 초안 있으면 측점 냄 · 없으면 조용히 열고 가게 측점 = 상세 측점 상세 GET(정본 확인) — — B06_Section_Section_Store.ts:117-135 · design_pipeline_page.ts:528-545 · design_pipeline_page_publish.ts opened · shown
떠남 [취소] 없음 — 페이지 그대로 — — — — design_leave.ts:95-123
떠남 [폐기] 세션 고침 칸 지움(모든 노선 · NOT_EDITS · B08 · B09 칸 뺌) → 떠남 = dispose dispose = 묶음 · 시설 줄 · 페이지 자료(forgetPageData) · 상세 메모리(forgetSectionMemory) 버림 · 다시 열면 새로고침 길 — — — design_leave.ts:27-42 · 85-87 · design_page.ts:286-295 · B06_Section_Section_Store.ts:424-428
[저장] — 앞 단계 prepare = 전 측점 강제 다시 셈(서버가 면적 버림) · 화면 잠금 조각 한 본문 POST /design/save(서버가 아래 차례 · 전부 아니면 없음 · 노선 바뀜도) · 서버 정본 다시 셈 끝 = invalidateSectionDetail · 두 보기가 새 상세 한 객체 받음 · 노선 바뀜 = 페이지 다시 세움 — design_shared.ts:395-448 · design_save.ts:183-237
[확정] — [저장]과 같음 [저장] + 빈 측점 기본 설계 · 단계 완료 · 측구 쪽을 B05 종단 파일로 되씀 끝 = invalidateSectionDetail → B07 로 넘어감 · 노선이 바뀐 [확정] = [저장]으로 · 다시 [확정] 알림 — design_shared.ts:426-432 · design_save.ts:224-228 · B06_Section_Router_Confirm.py:368-496
[초기화] — 상세 비움 · 새로고침(메모리 전부 버림) /route/reset DB 노선 행 지우고 초기값으로 · 파일 트리 복원 · 세션 초안 전부 지움(B08 · B09 뺌) — design_reset.ts:30-62 · B05_Profile_Router_Lifecycle.py:234-390 · common_util_initial_snapshot.py:38-54 · 266-327

[저장] 차례(서버 B06_Section_Router_DesignSave.py:99-195 · 칸 = design_save_api.ts SAVE_PART_KEYS)

  • [저장] · [확정] = 한 본문 한 요청(472-6) — 브라우저가 차례마다 조각(본문 · 저장 뒤 정리)을 모아 POST /design/save(design_save.ts:183-237) · 서버가 아래 차례로 안쪽 창구 함수를 부름 · 하나라도 실패 = DB 행 · storage 되돌림(common_util_save_guard.py) · 차례 이름째 알림 · 다 저장한 뒤에만 조각 정리 · 같은 프로젝트 저장 겹침 = 뒤 요청 기다림.
  • 노선 바뀐 저장 = 같은 본문에 route(노선 초안) · carry(옛 노선 세션 횡단 고침 원본 routeCarryInputs B06_Section_Station_Keys.ts:314) · 기본 조각만(화면 몫 건너뜀) · 늘 [저장](노선이 바뀐 [확정] = 노선만 저장 · 다시 [확정] 알림) · 되돌림 범위 + 배수 폴더 · 지표면 확정 · 다 저장하고 페이지를 다시 세운 뒤 옛 노선 번호 칸(노선 범위 초안 clearRouteDrafts) · route-draft-hold 비움(472-5).
차례 브라우저 조각 서버 노선 바뀐 [저장] 위치(파일:줄)
route pendingRouteSave → 본문 route replan_route(/route/replan 체인 · 관 · 구조물 · 추가 측점 좌표 따라감 · 종횡단 · 계획고 이월) 맨 앞 · 새 노선 id · 관 · 구조물 초안 다시 얹기 = Node facility.rebase(rebasePipeDraft · rebaseStructureDraft) · 구조물 판번호 = 저장 뒤 판 B06_Section_Router_DesignSave.py:128-145 · B06_Section_Router_DesignSave_Route.py
settings pageSettingsPart save_page_settings 그대로 design_save.ts:137
pipes pipesPart + 화면 몫(배수판 다시 받음 · PUT 없음) put_pipe_points(confirm = 배수유역 다시 셈) 기본 조각만 · 다시 얹은 목록 design_save.ts:139
structures structuresPart write_structures 기본 조각만 · 다시 얹은 목록 design_save.ts:141
plusStations plusStationsPart put_plus_stations 기본 조각만 design_save.ts:143
alignment alignmentPart save_profile_alignment 노선 초안 칸(0) ?? 옛 노선 칸 → 서버가 새 노선 번호로 · 저장 뒤 두 칸 비움 design_save.ts:115-126
culvertOptions culvertOptionsPart(culvertopt · 노선 열쇠) 저장 관 위에 얹어 pipe_points.json 다시 씀 옛 노선 열쇠(누가거리)로 읽음 B06_Section_Api_Culvert_Options.ts:102-106
uphill routePartsBody confirm_latest_route(상단측 · 비정규 측점 횡단) 안 보냄 · 서버도 안 받음 · 저장 뒤 세션 비우고 수 알림(요구 274) design_save.ts:149-155
cross ctx.crossPart(confirm) = 횡단 patch save_sections · confirm_sections · 재계산 맨 앞 종단 경고 다시 씀 옛 노선 세션 칸 → 새 측점 patch = Node stations.carry(routeCarryPatches B06_Section_Route_Carry_Patch.ts:368 · 넘김 규칙 logic/B06_Section_Route_Carry.ts) · 고침이 없어도 한 번 · 표준 횡단면 · 풍선 = routeCarryPart B06_Section_Router_DesignSave.py:172-195 · B05_Profile_UI_RouteEdit_Apply.ts:157
  • 저장 중 = saving 표시 · 묶음 맞춤은 저장 뒤로 미룸(design_pipeline_page.ts saving 분기).