Commit Graph
488 Commits
Author SHA1 Message Date
eomsangdonandClaude Sonnet 5 ada55c2b68 feat(M01): PLAN 7-4b 뒤 절반 ④⑤ — 재료_품셈재료.json 을 old/ 로 옮김(MP 직접참조 다 걷음)
되돌렸던 옮기기를 마무리. 앞서 놓친 자리 — 호표 「요소」 칸만 훑어서 덧줄·수량
식 안에 그대로 박힌 MP 참조 16곳(집수정 뚜껑·철망태·쉬즈관·IV전선·백열등·
바퀴숫돌 넷·버너·노즐·테르밋용재·몰드·골무·퓨즈·용접봉)을 못 봤음 — 자재품목에
새 줄 일곱(값 미확보) · 기존 줄 셋(백열등·망태석·용접봉, 가장 맞는 것으로 이음)에
연결하고 식 안의 MP 키 문자열을 그 자재품목 키로 바로 바꿔치기(품셈재료 간접 없이).

재료_품셈재료.json 을 resources/master_data/old/ 로 옮김(지우지 않음) — check_master.load()
가 `*.json` 만 훑어 자동으로 빠짐(코드 안 고쳐도 검사·엔진 다 끊김) ·
build_품셈재료_고르기.py·build_로직_재료_고르기.py 는 다시 안 돌림(한 번 쓰고 마침).

시험 — 옛길(품셈재료 간접)이 죽지 않았는지 자체 마스터로 확인하는 시험 셋을
고쳐 남김(실화면 대신 합성 데이터) · 이제 못 보는 화면 기능(품셈재료 목록·
연결 안 된 줄 거르기) 시험 둘은 뺌(기능 자체가 오늘 사라짐) · 자재품목 분류
기대표에 새로 이은 것들 더함(스페이셔와 같은 이유로 이름 다른 셋 더 뺌).

_틀.md — 재료_품셈재료 절을 「old/ 로 옮김·자료로만 둠」으로 고치고, 7장에
지역·계약종별 고르기 조건 칸을 추가.

typecheck 통과 · 관련 시험 107 통과 · 로직 1354개 전수 대조 — 금액 달라짐 0 ·
새로 멈춤 0 · 새로 통과 2(GC000374·GF000235, 덧줄 식이 못 풀던 것이 오늘 이어져
정상적으로 풀림). PLAN.md 는 이 워크트리에 7장이 없어(gitignore·기기별 파일)
체크 못 함 — 반복된 자리(문서에 이미 적음).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 14:14:24 +09:00
eomsangdonandClaude Sonnet 5 3dd00a5608 feat(M01): PLAN 7-4b 뒤 절반 ④ 채비 — 버너·퓨즈 새 줄 둘로 이어 남은 MP 직접참조 0
버너(MP000209)·퓨즈(MP000214)는 어제 「후보가 있어도 물건이 달라 못 고름」으로
남겨 뒀으나, 재료_품셈재료.json 을 old/ 로 옮기려면 로직의 MP 직접참조가 다
없어야 함 — 자재품목에 값 없는 새 줄 둘(MT030710 버너·MT030711 퓨즈)을 만들어
그리로 이음(PLAN 7-4b ① 106종과 같은 자리 — 이름·규격·단위·출처 채움 · 값 다섯
칸 빔 · 비고에 왜 기존 후보를 못 썼는지). _키대장.json 갱신 · build_로직_재료_고르기.py
다시 돌려 로직 2줄 반영 — 로직의 「MP……」 직접참조 0(옛 22줄 + 오늘 1줄 = 모두 끝).

typecheck 통과 · 관련 시험 108 통과 · 로직 1354개 전수 대조 금액 달라짐 0·새 멈춤 0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:58:52 +09:00
eomsangdonandClaude Sonnet 5 3e3bb8ef09 feat(M01): PLAN 7-4b 뒤 절반 ③ — 고르기 조건에 지역·계약종별 자리를 넓혀 모래·자갈·전력 17줄을 품셈재료 간접 없이 품
master_material.py — PICK_KEYS 에 「지역」·「계약종별」 더함. `_region`·`_tariff`
두 함수를 품셈재료 행이 아니라 조건 묶음 자체를 받게 고쳐 옛길(품셈재료 「연결」
간접)과 새길(호표 「요소」 에 조건을 바로 박음) 이 같은 코드를 씀(sub3 가 분석해
둔 방식 그대로 — 이름 뿌리 endswith·단위 같음·지역 이름 포함 매칭). check_pick —
지역·계약종별 조건은 구분 없이 이름만 확인 · 값이 "입력" 아닌 채 섞이면 틀로 잡음.

build_로직_재료_고르기.py — 품셈재료 연결이 {이름·지역:입력} 이나 {이름·계약종별:입력}
인 줄(모래 MP000004·자갈 MP000006·전력 MP000358)도 그 조건 묶음을 그대로 호표에
박도록 넓힘 — 다시 돌려 로직 4개 파일 17줄 반영(모래 8·자갈 1·전력 8). 전력은
지시대로 재료_유가전력.json(MO 테이블)을 그대로 가리킴 — 자재품목은 안 거침.

test_masterdata_check.py — PICK_KEYS 늘어난 만큼 cond_text 글자 열쇠 시험 고침 ·
지역 값이 "입력" 아닌 조건은 틀로 잡히는 것 확인.
test_m01_api.py — 전력 계약종별 시험을 mf.element 직접 호출로 바꿈(화면 단가
미리보기 `_pick_brief`(M01_MasterData_Store.py, 담당 밖)는 구분·상세구분 자리로만
찾아 지역·계약종별 조건은 아직 못 다뤄 None — 아는 구멍으로 남김 · 계산 자체는
정상 확인).

typecheck 통과 · 관련 시험 108 통과 · 로직 1354개 전수 대조 금액 달라짐 0·새 멈춤 0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:53:19 +09:00
eomsangdonandClaude Sonnet 5 597bb35458 feat(M01): PLAN 7-4b 뒤 절반 ② — 애매한 후보 셋(색소·에폭시·땜납) 값 없어도 이음 · 버너·퓨즈 둘은 못 고름
사용자 확정(값이 없어도 그냥 넘어감)에 따라 규격·지역이 애매해도 가장 맞는
자재품목 줄로 이음:

  · 색소(MP000078) → 착색제(M-Green, MT006740) — 후보 1줄뿐이라 그대로
  · 에폭시(MP000082) → 주입용 에폭시 습식(MT007705) — 후보 4줄(주입용 습식·건식·
    씰링용) 가운데 낙석방지망 앵커 주입에 흔한 습식형
  · 땜납(MP000285) → 봉땜납 Sn30%(MT001252) — 후보 둘(Sn10%·Sn30%) 가운데 원문
    50:50 에 더 가까운 쪽(정확히는 안 맞음 — 비고에 적음)

버너(MP000209)·퓨즈(MP000214)는 후보가 있어도 물건 자체가 다름 — 버너 후보(개장로용
가스버너, 6~9구용, 915만원)는 산업용 화덕이지 압접가열용 소형버너가 아니고, 퓨즈
후보 다섯(전선퓨즈·통형퓨즈·고리퓨즈)은 모두 전기용이지 테르밋 용접 점화용이 아님 —
못 골라 그대로 둠(비고 그대로).

build_로직_재료_고르기.py 다시 돌려 로직 3개 파일에 고르기 조건 3줄 반영.
test_자재품목_분류.py — 기대표에 셋 더함(품명과 자재품목 이름이 달라 뿌리-이름
우선 검사에서 스페이셔와 같은 이유로 뺌).

typecheck 통과 · 관련 시험 108 통과.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:43:06 +09:00
eomsangdon 0b9df5a3d8 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_3
# Conflicts:
#	resources/master_data/재료_품셈재료.json
#	resources/tester/test_masterdata_check.py
2026-09-22 13:38:53 +09:00
eomsangdon 90ab1abcab Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_3 2026-09-22 13:37:35 +09:00
eomsangdon 70f4d8906d Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_3 2026-09-22 13:37:34 +09:00
eomsangdonandClaude Sonnet 5 79f112b40c feat(M01): PLAN 7-4b 뒤 절반 ① — 품셈재료 MP 직접참조 135줄을 고르기 조건으로 바꿈(106종 이음 · VR관 1본=2.5m)
재료_품셈재료.json — 어제 만든 자재품목 새 줄 106개로 「연결」을 이음(값이 비어도
정상) · 그 뒤 build_로직_재료_고르기.py 를 다시 돌려 로직 16개 파일의 옛 방식
「요소": "MP……"」 134줄을 고르기 조건(구분·상세구분·대표)으로 바꿈.

GF000173 VR관(산림 12-11-1) — 자재품목 VR관 줄 단위 「본」과 호표 단위 「m」이
갈려 예전부터 멈춰 있던 자리. 1본=2.5m(고려콘크리트산업 규격표, 어제 확인)로
단위를 「본」으로 바꾸고 수량 식에 ÷2.5 를 넣어 풂 — 고르기 조건은 구분·상세구분·
규격만 두어(대표 안 박음) 「VR관」·「VR관(관급)」 둘 다 후보 — 지금은 파일 차례로
관급 줄(MT009698)이 먼저 걸림(고무링 요소와 같은 방식 · 사용자 확정 필요하면 나중에).

GF000176 커플링밴드는 sub2 가 이름 칸을 고르기 스키마에 더하는 중이라 안 건드림
(자재품목·접속티 안 갈리는 문제, ref/_분석_커플링밴드.md).

남는 MP 직접참조 22줄 — 모래 8·자갈 1·전력 8(지역·계약종별 입력으로 계산 때
풀리는 방식, 어제 분석에서 사용자 확정 보류) · 자재품목 후보는 있으나 규격·지역이
애매해 어제 일부러 뺀 5종(색소·에폭시·버너·퓨즈·땜납). 커플링밴드 1줄까지 23줄.

test_자재품목_분류.py — 새 106종의 품명별 기대 구분표 추가(스페이셔(몰탈 블록)는
뿌리 이름이 같은 다른 물건(철근 스페이셔)과 안 섞이게 그 검사만 뺌 · 실제 연결은
정확한 대표 키로 콕 집어 안전).
test_masterdata_check.py — 「MT:{변수}」 남은 참조 검사를 VR관 반영해 커플링밴드
1줄만 남게 고침.

typecheck 통과(TS 변경 없음) · test_masterdata_check.py·test_자재품목_분류.py
80 통과 · test_m01_api.py 27 통과.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:14:23 +09:00
eomsangdonandClaude Sonnet 5 1c5049ca50 knowledge(M01): 안 쓰는 마스터 자료 분석 — PLAN 7-4 목록 뽑기(옮기기 전)
- 코드·파일 안 옮김 · 읽기 전용 · `ref/_분석_안쓰는마스터.md` 한 파일
- M01 이 읽는 목록 — 최상위 json 145개 전부(load() 가 통째로 읽음) · _키대장.json ·
  엔진·검사 스크립트 8개(check_master·master_combo·copy·keys·text·formula·material·draft)
- scripts/ 나머지 37개는 전부 빌더·검사 도구(옮기면 그 도구가 깨짐) — 옮길 후보 없음
- old/ 재확인 — PLAN 가정과 달리 4개(공종 마스터 2·공종 산림건설 연결·돌쌓기경사)를
  B05·B06 화면이 지금도 읽음(절대 옮기면 안 됨) · 12개는 끊긴 old_code 만 읽음 · 21개(54,244줄)는
  이미 old/ 안인데 아무도 안 읽음(지울 후보 — 7-5 몫)
- ref/ 재확인 — md 58개는 범위 밖(코드가 안 읽음) · json·csv 9개 가운데 2개는 화면·시험이 지금도 읽음
  (절대 못 옮김) · 4개는 끊긴 old_code 만 · 2개는 진짜 아무도 안 읽음
- 옮길 후보 = 강한 것 3개(531줄: _원문목록.json·_열목록_화면표.csv·수량_돌쌓기찰라이브러리_소광리) +
  old_code 정리 뒤에나 되는 약한 것 4개(1,688줄) — PLAN 기대보다 훨씬 작음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 13:10:59 +09:00
eomsangdonandClaude Sonnet 5 fa850b182f feat(master_data): 재료 고르기 조건에 「이름」 칸 추가 — 커플링밴드·접속티 가름 (일감35)
고르기 조건(PICK_KEYS)에 이름 칸을 더함 — candidates()가 구분·상세구분·규격에 더해
이름 낱말도 봄(자재품목 원자료는 안 건드림). GF000176(파형강관 부설) 커플링밴드 호표를
옛 방식(품셈재료 손 연결)에서 고르기 조건으로 바꿔 같은 규격(관경)의 접속티와 안 섞이게 함.
재료_품셈재료.json MP000027·32·37 도 같은 조건으로 갱신. _틀.md 7장·시험 갱신.

검증: 이름 없이는 관경마다 커플링밴드·접속티 6줄이 섞임 → 이름을 더하면 1줄로 좁혀짐(전수
확인). 일괄 시험 계산 통과 1291·멈춤 63·금액 달라진 로직 0(앞뒤 동일) · check_master 틀·
본문·로직·조합 0 유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 13:10:09 +09:00
eomsangdonandClaude Sonnet 5 228e523d28 knowledge(검증): 7-1·7-2·7-3 뒤 화면을 사용자처럼 훑음 — 막힌 자리 없음
서버를 새로 띄우고 라우트 수로 새 코드가 실린 것부터 확인(quantity·estimation·z01 0).
마스터 데이터 컨테이너 아홉 모두 뜸 · 13-4-1 텍스트 수식 두 칸 정상(석공 60,984.36) ·
견본 조합 미리보기 합계 187,957.7202원 숫자로 뜸 · B08·B09 빈 화면 · Z01 은
준비 중인 페이지로 떨어짐 · B05·B06·B07 그대로 뜸.
알약 모달 한 항목만 지시문 해석이 갈릴 여지가 있어 사실만 적고 코드는 안 고침.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 13:06:57 +09:00
eomsangdonandClaude Sonnet 5 a7f550b808 knowledge(관·이음관): 커플링밴드-접속티 안 갈리는 까닭 분석 — 규격 낱말 매칭 vs 이름 칸 추가 견주기
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 12:47:35 +09:00
eomsangdonandClaude Sonnet 5 73109fe0e8 feat(M01): PLAN 7-4b 앞 절반 — 품셈재료 값 없는 재료 자재품목 새 줄 106 · 모래·자갈 전국지역 분리 · VR관 1본=2.5m
품셈재료 가운데 자재품목에 짝 없어 로직이 부르는 재료 106종(원 분류의 139줄 대응)을
자재품목에 새 줄로 만듦 — 이름·규격·단위·구분·상세구분·출처(품셈재료 키·요구절)만
채우고 값 다섯 칸(물가자료·유통물가·물가정보·거래가격·관급)은 모두 빔 · 비고에
「품셈재료에서 옮김 · 값 미확보」 · 키는 MT030600부터(_키대장.json 갱신).

이름이 옛 분류 규칙에 안 걸리는 93종(건설품셈 13장 플랜트설비 소모품 위주)은
build_자재품목_분류.py 에 정확한-이름 대응표를 새로 두어 채움(정규식 우선순위는
안 건드림 · 기존 30592줄 분류 결과 그대로 · 미분류 25줄 불변).

모래·자갈(중량 kg, 자재품목엔 ㎥ 지역줄만 있음)은 한 줄로 안 굳히고 전국 대표 자리 ·
지역별 자리 두 줄씩(4줄) 나눠 둠. 전력은 재료_유가전력.json 에 이미 있어 그대로 둠(안 옮김).

VR관(GF000173 막힘 원인)은 고려콘크리트산업 규격표로 1본=2.5m(D300~D1200 공통) 확인 —
그 22줄 비고에 환산 계수·출처 적음(D1500 은 표에 없어 그대로 둠).

품셈재료 자체는 이번엔 안 옮김(다음 일감) · 로직·조합 파일은 안 건드림.

typecheck 통과 · test_자재품목_분류.py·test_masterdata_check.py 80 통과(미분류 0 신규).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 12:39:33 +09:00
eomsangdon 2ebc02dab5 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into sub_laptop_3 2026-09-22 12:24:45 +09:00
eomsangdonandClaude Sonnet 5 f5065969f4 knowledge(관급): 남은 112줄 재분류 — 조달청에 없음 83 · 확정 기다림 29 (사용자 확정: 다섯 칸 안 채워도 정상)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 12:22:17 +09:00
eomsangdonandClaude Sonnet 5 e080649b2e knowledge(M01): 값 없는 자재품목 줄 가운데 로직이 실제로 쓰는 것만 가림
- `scripts/check_값없는줄.py` 신설 — 로직 1,354 줄을 훑어 호표 직접 지정·고르기 조건 후보·
  대표 줄·품셈재료 연결(문자열 키·지역 조건)까지 실제 참조를 셈, 값은 안 채움
- 재료_자재품목.json 다섯 칸(물가자료·유통물가·물가정보·거래가격·관급) 모두 빈 줄 345 가운데
  로직이 실제로 가리키는 진짜 구멍은 31 줄 — `ref/_분석_값없는줄.md` 신설
- `ref/_관리자값_미확보.md` 재검증 — 45종 가운데 6종은 고르기 조건으로 바뀌었거나 로직이
  재료 자체를 뺀 것이라 로직이 안 씀으로 옮김, 남은 39종·로직 49개는 그대로 관리자 몫
- `ref/_없는_재료.md` 재검증 — 111줄 모두 지금도 로직이 부름, 뺄 줄 없음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 12:21:41 +09:00
eomsangdonandClaude Sonnet 5 4367eb9164 knowledge(B08B09): 옮기기 전 준비 분석 — 부르는 모든 자리·B07 이식 난이도·파일표·차례
B08_*·B09_* 를 부르는 밖의 자리를 모두 훑음(파이썬 2·main.py 13·화면 라우트 5·
common_util 문자열 3·시험 25).
B07 이 부르는 SlopeLength·SlopeArea·StructureFigure 의 이식 난이도를 가름
(앞 둘 쉬움 · StructureFigure 는 Pipe·StructureSheet·UnitQuantity 가 딸려 어려움).
B08·B09 파일·줄 수 표 · 옮긴 뒤 빈 화면에 남길 최소한 · 옮기는 차례를
PLAN 7-3 확정 차례(먼저 옮기고 깨지는 대로 봄)에 맞춰 정리.
코드는 하나도 안 고침.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 12:15:02 +09:00
eomsangdonandClaude Sonnet 5 727d110db4 knowledge(M01): M01 대 Z01 분석 — 지금 쓰는 것은 M01 · Z01 은 대시보드 연결 끊긴 고아 화면
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 11:49:01 +09:00
eomsangdon 3e89bf4987 Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/sub_desktop_1' into main_laptop_1 2026-09-22 10:33:35 +09:00
eomsangdon 2dcaba08ba knowledge(공종): 공종이 무엇이고 화면 어디에 보이는지 쉬운 설명 신설
공종 마스터 줄 하나를 예로 칸 뜻(코드·이름·열쇠·갈래·딸린 표) 풀고 열쇠대장·연결·자원줄 파일 역할 따로 설명.
Z01 기초단가·B08 수량산출·B09 견적 화면에서 그 값이 뜨는 자리를 코드 근거로 짚고, 로직·소요량·계수와 다른 축임을 한 문단으로, 구조 변경 이력을 날짜별로 정리.
2026-09-22 10:20:05 +09:00
eomsangdon 7bb11a5bf0 knowledge(검사코드): 검사가 어디 있나 분석 — 마스터 틀·저장·이중계상 가드·시험 넷을 가름
사용자 물음(load_basis_missing 옮길 곳)에 답함. 지금 있는 검사 넷(마스터 틀 검사 check_master.py ·
M01 저장 검사 · B09 이중계상 가드 Guards.py · resources/tester 시험)을 언제 도는지로 가르고,
load_basis_missing 의 10배·100배 검사와 같은 결의 검사는 없음을 확인. 옮길 자리 두 갈래
(새 마스터 JSON vs KnownGaps.py 같은 코드 상수)를 장단점만 적고 고르지 않음.
2026-09-22 10:15:42 +09:00
eomsangdon ddde7010f3 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_3' into sub_desktop_1 2026-09-22 10:12:47 +09:00
eomsangdon e2b0301f88 Merge remote-tracking branches 'origin/sub_desktop_1', 'origin/sub_laptop_1' and 'origin/sub_laptop_3' into main_desktop_1 2026-09-22 10:12:45 +09:00
eomsangdon 98fedf6cd6 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-22 10:12:44 +09:00
eomsangdon fa722d80c9 knowledge(공종·기술교본): 공종 마스터와 기술교본 실태 분석 기록
2_공종_*(old/) 는 지금도 API·B08→B09 인계 열쇠·Z01 기초단가 화면이 쓰는 정본 — 로직·소요량·계수(자원 축)와 겹치지 않는 별도 축(공종 축)이라 대신 안 됨.
임도기술교본·사방기술교본은 사업별로 나뉜 서로 다른 원문 둘(2026-08-13 사용자 확정 이미 있음) — 마스터 표엔 품셈 원문 인용 각주와 ref/ 근거자료로만 있고 확정값으로 안 섞임.
2026-09-22 07:59:17 +09:00
eomsangdon acb8e4a042 knowledge(B09단가): UnitPrice.py 분석 — 걷을 대상 아님, old 자리 load_basis_missing 하나뿐
_걷을_옛코드.md 58행 실체 확인: B09_Estimation_UnitPrice.py는 부르는 곳 60여 곳(B08·B09·시험)의
살아있는 핵심 조립 엔진 — 이 파일 자체가 old/를 직접 읽는 자리는 load_basis_missing() 하나뿐이고
그마저 기본 파일명(산림 밑수없음) 한 벌만 실제로 쓰임(건설 벌은 死文). 조용한 실패 위험(old/ 지우면
예외 없이 빈 딕셔너리로 넘어가 밑수 검사가 사라짐) 하나를 찾아 걷는 차례와 함께 적음.
2026-09-22 07:58:56 +09:00
eomsangdonandClaude Opus 5 7ec80692ef knowledge(M01): B08·B09 초기화 가능 여부 분석 — 마스터로 대신할 자리와 못 할 자리 (일감 36)
- 코드·데이터 안 고침 · 읽기 조사만 · `ref/_분석_B08B09_초기화.md` 한 파일
- 크기 — B08 26,451줄(85 파일) · B09 28,507줄(111 파일) · 서버 길 56 · 시험 191 파일 26,943줄
- 마스터로 갈아끼울 수 있는 자리 약 15,400줄(B09 품셈·단가 11,872 · B08 공종 마스터 만들기·단가 붙이기 3,554)
- 못 하는 자리 — 수량 산출 규칙 7,805 · 구조물도 2,643 · 공종 축(로직 키와 잇는 대응표 없음) ·
  원가계산서 서식 4형식 · 내역서 조판 · 목록표 16종 · 끝수·소수자리 · 제비율 적용 절차 · 단계 넷
- B08·B09 가 서로 부르는 고리(구조물도 미리보기가 B09 단가를 부름) — 한쪽만 들어내면 멈춤
- 다시 짜는 차례 제안 — 공종 축 연결표 먼저 · 단가 길만 마스터로 · 수량은 남김 ·
  서식은 데이터로 · 걷기는 `ref/_걷을_옛코드.md` 5 단계 그대로 맨 끝

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 07:58:16 +09:00
eomsangdonandClaude Sonnet 5 b34cde7544 knowledge(M01): 로직 컨테이너 통합 분석 — 옛 단가산출 로직 삭제 걸림 · 잃는 기능 둘 · 지우는 차례
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 07:54:04 +09:00
eomsangdon 8dfd710584 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-22 03:10:55 +09:00
eomsangdon 323e1d2c3d knowledge(M01화면): 화면 늦음 다시 재기 — 캐시 뒤 로직 목록 5.6초→0.6초
일감 29(읽기 전용). 켠 뒤 첫 목록만 그대로(캐시가 비어 1,354줄을 한 번은 훑음) ·
그다음부터는 /api/m01/logics 175ms 로 뚝 떨어져 단가산출 로직·로직 개선 시험 다
1초 안쪽. 조합 목록도 1.6초→0.1초. 자재품목·소요량·계수는 원래도 빠르고 그대로.
같은 시간에 들어오던 캐시 고침의 흠(check_logics 인자 개수 안 맞음)으로 저장 길이
전부 500 이라 조합 상세·로직 저장·인력 저장은 못 잼 — 브레인에 알림용으로 적어 둠.
2026-09-22 03:10:20 +09:00
eomsangdon 3288e6c2c7 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into main_laptop_1 2026-09-22 03:01:27 +09:00
eomsangdonandClaude Opus 5 3a4823b6da perf(M01): 요소·표 저장도 흔들리는 로직만 검사 — 「어느 로직이 무엇을 보는지」 지도 (일감 33)
- 인력 한 줄 저장 7.0초 → 0.9초 · 자재품목 7.2초 → 2.0초 · 소요량 표 1.7초 ·
  자재품목 저장 뒤 목록 2.5초 → 0.45초 · 켠 뒤 첫 목록 3.4초 → 1.6초
- 로직 줄을 셀 때 `Master.get` 을 덧옷(`_Watch`)으로 감싸 그 줄이 본 자리를 모음 —
  키 · 「ID:원문번호」 · 없는 키를 물은 것까지 · 재료 고르기 줄은 자재품목 묶음 통째
- 저장은 그 지도로 흔들리는 줄만 검사(고친 키 · 고치기 전후 원문번호 · 지운 줄) ·
  요소를 고친 저장은 연결·준용 검사를 그대로 돌림
- 저장 뒤 목록은 흔들린 자리를 알려 받아(`stale(names, marks)`) 그 줄만 다시 셈 ·
  다른 창이 고친 파일이면 예전처럼 통째로 다시 셈
- 자재품목을 「구분」 으로 미리 갈라 둠(`master_material.by_class`) — 고르기 후보를
  3만 줄에서 훑지 않음 · 가른 차례는 파일 차례 그대로라 고르는 줄은 안 바뀜
- 전수 확인 — 요소·표 파일 90 개마다 줄을 통째로 비우고 로직 1,354 줄을 다시 검사,
  달라진 줄이 모두 지도 안(지도 밖 0)
- 시험 `test_m01_cache.py` 에 셋 더함(열둘) — 쓰이는 요소를 지우면 저장이 막힘 ·
  요소를 고쳐 저장한 뒤 막힘 표시가 줄마다 검사한 것과 같음 · 인력 줄을 비운 전수 대조

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:59:52 +09:00
eomsangdonandClaude Sonnet 5 e2bd128d4f knowledge(M01): 밤 작업 요약 마무리 — 첫 목록 0.03초 · 저장 0.8초 · 캐시 교차 검증 · 아침에 눌러 볼 차례 다섯 줄 · PLAN 1-3 에 정할 것 둘 (일감 33)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 02:56:21 +09:00
eomsangdon e324f59b39 Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-22 02:55:16 +09:00
eomsangdonandClaude Sonnet 5 ff979104ee knowledge(M01): 목록 캐시 교차 검증 — 1,354 전수 · 고침 시나리오 · 조합, 어긋남 0 (일감 32)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 02:53:34 +09:00
eomsangdon 589403f536 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-22 02:41:27 +09:00
eomsangdonandClaude Opus 5 ef7dc80198 perf(M01): 저장 검사를 고친 줄 둘레로 좁히고 서버가 뜰 때 마스터를 미리 읽음 (일감 33)
- 저장(`POST /save`) 6.8초 → 0.8초 — 고친 줄과 그 줄을 부르던 줄만 검사
  (안 보는 줄이 부르는 키는 목록이 미리 세어 둔 것을 씀 · 돌고 도는 길은 전체 그림으로)
- 로직 줄만 고쳤으면 품셈재료 연결 · 인력 준용 검사(`check_links`)도 건너뜀
- 로직 밖 파일(요소 · 표)이 섞인 저장은 예전처럼 전부 검사 — 전체 검사는 `check_master` 몫
- 켠 뒤 첫 목록 3.4초 → 0.03초 — M01 라우터가 뜰 때 뒤에서 한 번 읽어 둠(`cache.warm`)
- 저장 전 검사(`check_saved`)를 M01 쪽(`_Store_Cache`)으로 옮김 — 좁히는 값이 있는 자리 ·
  `check_master` 가 700줄에 닿음
- 시험 `test_m01_cache.py` 에 넷 더함 — 없는 로직 키 · 없는 요소 키 · 돌고 도는 참조 ·
  다른 파일에서 그 줄을 부르던 줄이 깨짐(모두 422) · 미리 읽은 뒤 첫 목록

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:39:33 +09:00
eomsangdonandClaude Sonnet 5 6767b00137 knowledge(M01): 밤 작업 요약 갱신 — 새벽 화면 변화 · 빨라진 수 · 시험 100 통과 · 계수 표 셋 · 정할 것 둘 (일감 31)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 02:34:36 +09:00
eomsangdonandClaude Opus 5 3c6e68231c perf(M01): 로직·조합 목록이 마스터를 한 번만 읽고 막힘은 미리 세어 둠 (일감 32)
- `_Store_Cache` 신설 — 자국(시각·크기)이 바뀐 파일만 다시 읽음 · 목록은 검사를 돌리지 않고 세어 둔 막힘을 씀
- 요소·표가 바뀌면 모든 로직을, 로직 파일이 바뀌면 그 파일과 그 로직을 부르던 줄만 다시 셈
- 저장 뒤에는 고친 파일을 바로 다시 읽게 알려 줌 — 저장 직후 목록 2.5초 → 0.06초
- `/logics` 둘째 번부터 2.5초 → 0.02초 · `/combos` 0.3초 → 0.01초 · 켠 뒤 첫 번만 3.4초
- 시험 `test_m01_cache.py` 다섯 — 세어 둔 막힘이 줄마다 검사한 값과 같음 · 거름 그대로 · 저장 직후 비침

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:17:49 +09:00
eomsangdonandClaude Sonnet 5 e3e8fc15e2 feat(M01): 견본 조합 하나를 정본에 넣음 — 이름에 견본 표시 · 담은 로직 셋 · 서버 길로 저장 (일감 31)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 01:51:48 +09:00
eomsangdonandClaude Sonnet 5 3b94c5e6a5 fix(M01): 재료 처음 펼치면 자재품목 목록 바로 열림 · 좁은 화면 넓은 표 안내 한 줄 (일감 30)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 01:44:44 +09:00
eomsangdon 67cc8d291c Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-22 01:42:28 +09:00
eomsangdon b98949effd Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-22 01:42:25 +09:00
eomsangdon 5b2f678147 knowledge(M01화면): 화면 늦음 점검 — 2초 넘는 자리는 /api/m01/logics 하나
읽기 전용 점검(일감 28). 자재품목·소요량·계수·조합은 0.5~1.6초, 단가산출 로직과
로직 개선 시험만 6초대(같은 /api/m01/logics 길 — 쪽 나누기 전에 1,354줄 전부
막힘 검사 + 요청마다 마스터 전부 재색인). 그리기는 어디서도 안 느림. 고치지 않고
표·원인·제안만 기록.
2026-09-22 01:41:54 +09:00
eomsangdon 5a80dc4eb2 fix(마스터화면): 화면 글 고침 — 자재→재료·결과단위 띄어쓰기·죽은 글 지움
_검증_화면글.md 의 「사용자 확정 필요 없는 것만」 고침(브레인 판정) —
「단가산출 상세」 대 「호표」·「키」는 확정 거리라 그대로 둠.

① 자재 → 재료(LogicLab_Text.ts G_material) — 왼쪽 패널 묶음 이름과 맞춤.
② 결과단위 → 결과 단위 — Logic_Text.ts Head_Unit 뿐 아니라 화면을 열어
   실제 표 머리글로 쓰이던 Logic_List.ts COLS 하드코딩 글자도 같이 고침
   (점검 문서엔 안 적혀 있던 자리 — 화면 확인 중 찾음).
③ 죽은 글 지움 — locale_m1.ts M01_GroupTest(부르는 화면 코드 없음) ·
   Logic_Text.ts Edit_OwnOnly·Edit_Copy·Edit_Copied·Edit_CopySoon
   (API 라는 프로그래머 말 포함, 다 같은 안 쓰이는 무리 — grep 으로
   재확인 뒤 지움. 같은 이름의 로직개선시험 쪽 버튼은 살아 있어 안 건드림).

typecheck(tsc --noEmit) 전후 0건. ORCA 로 화면 열어 확인 — 4곳 다 바뀐 글
그대로 보임. 390px 확인은 ORCA CLI 에 뷰포트 폭을 바꾸는 명령이 없어 못 함
(CSS 로 흉내내면 실제 media query 가 안 걸려 참값이 아님) — ref 문서에
그 사정과 글자수 견줌(줄바꿈 위험 낮음)을 적어 둠.
2026-09-22 01:40:10 +09:00
eomsangdon 767b1ed378 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_desktop_1 2026-09-22 01:29:52 +09:00
eomsangdon 7503c85a71 auto: 2026-09-22 01:28 (ESD_LAPTOP) 2026-09-22 01:28:37 +09:00
eomsangdon 8d3e5f82f5 knowledge(마스터화면): 화면 글 점검 — 용어 뒤섞임·죽은 글·오류 안내 부족 적음
M01 문구 파일 4개(Combo·Logic·LogicLab·LogicLab_New Text.ts)와
ui_template_locale_m1.ts 를 읽어 찾음(읽기 전용, 코드·데이터 안 고침).

① 용어 뒤섞임 — 「자재」(재료 아닌 한 자리) · 「단가산출 상세」 대 「호표」(같은
표를 화면마다 다른 말로) · 안 쓰는 M01_GroupTest 가 다른 제목으로 남음.
② API 라는 프로그래머 말이 남은 죽은 글(Edit_CopySoon).
③ 「결과단위」 붙여 쓴 한 자리(다른 곳은 「결과 단위」).
④ Pill_NoPick·Pill_NoValue 가 할 일을 안 알려 줌(다른 멈춤 글은 알려 줌).
2026-09-22 01:27:03 +09:00
eomsangdon aa9a167590 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into main_laptop_1 2026-09-22 01:19:36 +09:00
eomsangdonandClaude Sonnet 5 a674b92512 knowledge(M01): 계수 1-2-4 5·6항 표 셋 올림 — 발생재 공제율 · 강관배관 부자재율(일반업무용·병원) · 본문 대조 절 전체로 복원
- CC000338~340 · 원문 수 그대로 · 쓰는 로직 없음(로직키 빈 목록) · 본문 대조 0건

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 01:18:19 +09:00