Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1

This commit is contained in:
2026-11-04 12:32:01 +09:00
3 changed files with 370 additions and 0 deletions
@@ -0,0 +1,345 @@
# 분석 621-D — 단가산출 = 노무 · 경비 · 자재 「세부항목 계산 단위」로 잇기 (요구 622-1 · 다시 조사 · 읽기만)
조사 = 코드 따라감 + 여덟 파일(`resources/tester/helper_m02_hopyo_golden.py` FILES)을 지금 읽기 그대로 부른 뒤 줄마다 다시 풂 · 우리 기초 1,461 을 엔진으로 한 번씩 돌림. 일회 스크립트 · 결과 = 이 폴더(`ours621d.py` → `ours621d.json` · `comp621d.py` → `comp621d.json` · `link621d.py` → `link621d.json` · `rbase621d.py` · `verdict621d.py` · `agg621d.py`) · 앞 조사 자료 재사용 = `../B/out621.json`(지금 판정 · 골든) · `../B/cache` 우리 지문(판 a1d8ce489bf64cbf = 지금 마스터 판과 같음). 코드 · storage · git · DB 안 고침.
경로 줄임 — `M02/` = `M02_MasterTemplete/` · `MF` = `resources/master_data/scripts/master_formula.py` · `MB` = `resources/master_data/scripts/master_bundle.py` · 파일 이름 `M02_Hopyo_` 머리 뺌(예 `Stmate.py`).
## 0. 요약 열두 줄
1. 사용자 틀 맞음 — 우리 기초 줄 5,901 · 경쟁사 단가산출 줄 836 · 일위대가 줄 1,350 이 모두 같은 여섯 방법(노무 · 기계 · 자재 · 율 · 하위 · 값)으로 갈림 · 다른 것은 매개값(품 · 시간 · 수량 · 율)을 얻는 길뿐(우리 = 표 · 옵션 · Q 식 / 경쟁사 = 숫자).
2. 우리 쪽 — 줄 = 로직 JSON `호표` · `덧줄` 한 줄 · 엔진 `run` 이 줄마다 수량 · 단가 · 금액 · 묶음을 이미 냄(1,411 로직 · 5,580 줄에서 수량 × 단가 = 금액) · 서로 다른 계산 단위 ≈ 680 · 줄 하나만 셈하는 함수는 없으나 「입력 + 중간」만 있으면 줄마다 따로 셈 됨.
3. 경쟁사 쪽 — 계산 방법 되찾기 됨: STmate = 행마다 자원 코드 · 식 글(G) · 매개값(H) · 단가(I~L) · 금액(C~F) · 합 갈 곳(N · C = 셈 밖) · 율 줄 표지(`&PA01M:M& * 5`) / EST = 글 꼴(「이름 : 단가 × 식 = 금액」 · 「기준 × N % = 금액」).
4. 실측(일위대가가 부르는 블록 206) — 줄 836 = 노무 368 · 기계 183 · 자재 129 · 율 152 · 하위 3 · 값 1 · 줄마다 단가 × 매개값 = 금액(0.5 %) 811(97 %) · 줄 합 = 블록 금액 201/206 · 일위대가 줄 1,350 중 1,344 재현 → 세 대상을 한 분석기로 다룸.
5. 줄 → 우리 계산 단위 잇기 = 노무 95 % · 기계 90 %(괄호 낱말 규칙) · 율 93 %(기준 꼴 있음) · 하위 100 % · 자재 33 %(유일 · 별도만 · 후보만 64 %) → 전체 701/836(84 %).
6. 블록 판정 = 줄 판정 모음 — 줄이 다 이어지는 블록 125/206(61 %) · 지금 갈래별 기초 41/80 · SK 19/37 · 고름 대기 65/89(율 줄 없는 것 59).
7. 부르는 일위대가 줄 735 기준 자동 = 지금 417(57 %) → 지금 자동 + 줄 다 이어짐 673(92 %) · 율 줄을 못 담으면 650(88 %) · 남는 24 블록(62 줄)은 블록 통째 고름 대신 못 이은 줄만 고름.
8. 기초 통째 찾기는 「근거 꼬리표 · 바탕」 몫으로 남김 — 줄 출처를 겹쳐 기초 하나로 모이는 블록 43(골든 정답 31) · 노무 줄 86 % 가 어느 기초 품과 같아도 기초를 못 가름 · 옵션 · 덧줄 · 개정 따라감 · 자재 검색어는 바탕 기초가 가장 잘 담음.
9. 율 줄 기준 실측(152) = 인력 줄 합 82 · 자재 줄 합 35 · 절 소계 16 · 노무비 전체 11 · 기계 2 · 그밖 6 — 일위대가 SC 비율 줄(기준 = 비목 합)로는 인력 줄 합 중 24(기계 노무 섞임)이 틀림 → 기준에 「묶음(인력 · 재료 · 장비)」을 더하면 86 % · 줄 목록까지 96 %.
10. 담는 꼴 — SK 더한줄(인력 · 재료 · 로직 · 참조 · 고정 + 이음)로 노무 · 자재 · 기계(기계경비 로직 줄 · 778-2 026f6c667) · 하위 · 값 담김 · 율 = `M02/M02_Sangeun_Doc.py:171-172` 이 막음 · 일위대가 SC 고정 줄(단가 · 이음 · 비율)이 이미 같은 단위 꼴 → SK 를 SC 와 한 꼴로 맞추는 것이 가장 적은 길.
11. 권함 = (가′) 「줄 단위 분석 · 바탕은 있으면 씀」 — ② 정규화가 단위줄 · ④ 줄마다 잇기 · ⑤ 기초 찾기 = 꼬리표 · 줄 판정 · ⑥ 바탕 있으면 바탕 SK · 없으면 단위 SK + 근거 꼬리표 · 778-3 · 778-4 를 이것으로 갈음.
12. 사용자 정할 것 = 옮기는 기준 갈래 · 율 줄을 SK 에 담을지(L · 65 대 59 블록) · 고름 대기 단위 SK 자동 여부 · 일감 = 단위줄 정규화(M · 776-2 항목 꼴 넓힘) · 줄 잇기 한 벌(M · 778-1 뒤) · 단위 SK(M) · 율 줄(L · 고를 때) · 화면 줄 고름(M).
---
## 그림으로 (사용자용 한 단락)
단가산출 한 장은 줄 몇 개의 합임. 북부청 임도 단산 46 「레미콘타설(장비사용)」(㎥당 67,538 원)을 펼치면 — **자재 1 줄**(레미콘 = 별도계상 · 0 원) · **노무 2 줄**(콘크리트공 273,540 원 × 3인 ÷ 55㎥ × 2 = 29,840.7 원 · 보통인부 172,068 원 × 1인 ÷ 55㎥ × 2 = 6,257 원) · **율 1 줄**(공구손료 = 노무 36,097.7 원 × 2 % = 721.9 원) · **기계 1 줄**(굴착기(타이어) 시간당 105,932 원 × 0.29 시간 = 30,720.2 원). 다섯 줄 합 = 67,539.8 원 ≈ 엑셀 67,538 원. 줄마다 「무엇(직종 · 장비 · 자재) × 얼마나(품 · 시간 · 수량 · 율) × 단가」 계산식 하나이고, 우리 프로그램도 같은 식을 가짐(콘크리트공 → 우리 인력 · 굴착기(타이어) → 우리 기계 · 공구손료 → 우리 율 줄). 그래서 줄마다 「우리 식에 이어짐 · 엑셀 금액 다시 셈 맞음」을 판정하고, 다 이어지면 그 줄을 모아 우리 단가산출 한 장을 짬. 이 블록은 우리 기초 GC000198(레미콘 타설 · 소량)과 줄이 모두 맞아 「기초 그대로」로 끝남 · 기초가 없는 블록도 줄만 이어지면 같은 방식으로 짬.
---
## 1. 우리 쪽 분해 — M01 단가산출 기초 1,461
### 1-1. 줄이 어디에 어떤 꼴로
| 무엇 | 자리 | 꼴 |
| --- | --- | --- |
| 기초 한 개 | `resources/master_data/로직_<원문>_<NN>장_*.json` 줄 하나(57 파일 · 1,461 · 돈 아님 21) | `{키, 이름, 결과단위, 입력, 중간, 호표, 덧줄, 끝수}`(`resources/master_data/_틀.md:148` · `:193-206`) |
| 세부항목 줄 | `호표[]` | `{종류 인력·재료·로직, 요소(LB 키 · 자재 고르기 조건 · 로직(GC…, 기계=…)), 이름, 단위, 수량(식), 비목}` |
| 율 · 덧 줄 | `덧줄[]` | `{이름, 식(「노무비 * 3 / 100」 · 「(형틀목공 * LB000007 + …) * 1 / 100」 · `줄.'이름'`), 비목}`(`_틀.md:194` · `:254`) |
| 매개값 출처 | `입력` · `중간` | 고르기 · 표 찾기 · 작업량 Q 식 · 하위 로직 부름 |
| 셈 | `MF:564-662` `run` | 입력 → 중간 → 줄마다 수량 × 단가(`:581-635`) → 덧줄(`:636-659`) → 끝수 → 줄마다 `묶음`(`:660` → `MB:53-60`) |
| 묶음 가름 | `MB:44-51` `bundle` | 비목 → 인력 · 재료 · 경비 · 비목 없는 로직 줄 = 기계경비(결과단위 원/시간)면 경비 + `장비` · 아니면 하위 |
### 1-2. 줄 방법 가름 (5,901 줄 · `ours621d.json`)
| 방법(묶음) | 계산식 | 줄 | 매개값 꼴 |
| --- | --- | --- | --- |
| 노무(인력) | 직종 LB × 품 × 노임 | 3,452 | 옵션 따라 1,619 · 작업량(1/Q) 972 · 표 739 · 상수 122 |
| 기계(경비 · 장비) | 시간 × 시간당 기계경비(손료 + 연료 + 운전사 = 기계경비 로직 GC000267 · 268 …) | 1,044 | 작업량 611 · 옵션 351 · 표 82 |
| 자재(재료) | 수량(× 할증 · 손료율) × 단가(검색어 → 자재품목) | 729 | 옵션 313 · 상수 199 · 표 161 · 작업량 49 · 기타 7 |
| 하위 | 하위 로직 계 × 수량 | 31 | 옵션 30 · 상수 1 |
| 율(덧줄) | 기준 × % | 591 | 기준 = 직종노무(특정 직종 품 × 노임) 407 · 노무비 86 · 재료비 47 · 주재료비 25 · 경비 14 · 특정 줄 7 · 비목 둘 넘게 5 |
| 덧 금액 | 기계 손료 = EQ 가격 × 계수(기계경비 로직 속) 39 · 그밖 15 | 54 | — |
- 매개값 꼴 합 = 옵션 따라 2,313 · 작업량 1,632 · 표 982 · 상수 322 — 「상수 품」은 6 %뿐 · 나머지는 표 · 옵션 · Q 식으로 셈(「만약」 옵션 갈림이 든 줄 1,368).
- 기준단위 배 ≠ 1(10㎡당 등) 로직 83.
- 한 로직 줄 수 중앙 3 · 평균 4.1 · 최대 48 · 묶음 조합 = 경비 + 인력 590 · 인력만 478 · 셋 다 205 · 인력 + 재료 101 · 그밖 66.
### 1-3. 서로 다른 계산 단위 (묶음 + 항목 + 방법)
| 묶음 · 방법 | 서로 다른 항목 |
| --- | --- |
| 노무 · 노임 | 107(LB 키) |
| 기계 · 기계경비 | 163(기계경비 로직 + 기계 코드 · 옵션 기계) |
| 자재 · 자재값 | 334(검색어) |
| 율 | 50(이름 + 기준) · 덧 금액 19 |
| 하위 | 7(산림 12장 타설 · 거푸집 · 철근 등) |
→ 방법 자체는 여섯 · 항목까지 ≈ 680 단위. 경쟁사 206 블록이 쓰는 항목 = 직종 16 · 장비 70 · 자재 79 · 율 이름 68(같은 꼴).
### 1-4. 줄 하나만 따로 셈하나
- 엔진 한 번(시험입력 + 자동값) = 돈 로직 1,440 중 1,411 돎 · 줄 5,782 중 5,580 에서 수량 × 단가 = 금액 · 빈 줄 202(요소 값 없음 「관리자가 채울 값」 163 · 자재표에 없는 품목 30 · 고르기 후보 없음 3 · 지역 값 없음 2 · 그밖 4) · 못 돎 29(자동값 없는 입력 요구 — 「주재료비」 받는 잡재료 로직 GC000315~320 등) · 13 초.
- 줄은 서로 기대지 않음 — `호표` 줄 수량은 `입력 + 중간`(env)만 봄(`MF:581-587`) · 단가 = 요소 값(`master_pick.priced`) · 로직 묶음(`master_pick.bundled`) · `덧줄`만 앞 줄 합(비목 · `줄.'이름'` `MF:636`)을 봄.
- 「줄 하나만」 함수는 없음 — 지금은 `run` 이 줄 전부를 셈하고 줄마다 값을 줌(충분히 빠름). 따로 필요하면 `_inputs` + 중간 + `evaluate(parse(수량))` + `priced` 로 ≈ 20 줄.
- 우리 SK 는 이미 줄 정체를 가짐 — cid = `kind:키#n`(labor · material · machine · logic · pct)(`M02/M02_Sangeun_Doc.py:21-23`) · 덮개도 줄마다(`:25-26`) → 「계산 단위 출처 = 바탕 기초 키 + cid」 그대로.
---
## 2. 경쟁사 쪽 분해 — 여덟 파일
### 2-1. 계산 방법을 엑셀에서 되찾나
| 형식 | 줄 꼴 | 방법 되찾기 | 근거 |
| --- | --- | --- | --- |
| STmate 단가산출근거 | 행마다 M 열 자원 코드(L · X · M · S · PR · RR) · G 열 식(`'노 무 비 :'&X00001L& / Q`) · H 매개값 · I~L 단가 · C~F 금액 · N 열 합 갈 곳(T = 셈 · C = 「소계(제외금액)」 셈 밖) | **구조로 들어 있음** — 율 줄 = `&PA01M:M& * 5`(기준 = 1절 재료 · 결과 = 재료비) · `&PA02L:S& * 3`(2절 노무 → 경비) | `M02/M02_Hopyo_Stmate.py:45-47` · `:104-200`(지금 읽기는 자원 줄만 · PR · N 열 안 읽음) |
| EST 단가산출 | B 열 글 + 머리 줄 금액(줄 금액 칸 없음 · 소계 줄만) | **글 꼴로 됨** — 「직종 : 단가 × 품 [÷ 시공량] [× 율] = 금액」 · 기계 「노무비 · 재료비 · 경비 : 단가 ÷ Q [× 율] = 금액」 셋 · 「이름 단가 × 수량 [× 손료율] = 금액」 · 율 「라벨(노무비의 N%)」 + 「기준 × N% = 금액」 | `M02/M02_Hopyo_ReadEst.py:206-270` `items`(L · X · M 만 · 율 · 하위 · 줄 금액 안 냄 · 블록 금액 · 항목은 776-2 3a1ce9ca4 부터 HP 에 남음 `M02/M02_Hopyo_Excel.py:366`) · 풀이 `M02/M02_Hopyo_Words.py:193-226` |
| 일위대가 줄(두 형식) | 줄 = 이름 · 규격 · 수량 · 단위 · 단가 · 금액(노 · 재 · 경) · 갈래 | 갈래 = 방법(노임 · 기계 · 자재 · 별도계상 · % · 단가산출 · 호표) · % 줄 규격 칸 = 기준(「노무비의」 · 「재료비의」 · 「주재료비의」) | `M02/M02_Hopyo_Excel.py:145-164` · `Stmate.py:202-212` |
### 2-2. 실측 — 줄 단위 · 재현 · 덮음 (`comp621d.json`)
| 무엇 | 불리는 블록 206 | 모든 블록 459 |
| --- | --- | --- |
| 블록(EST꼴 · STmate) | 107 · 99 | 223 · 236 |
| 단위 줄(셈 밖 2 뺌) | 836 = 노무 368 · 기계 183 · 자재 129(별도 20) · 율 152 · 하위 3 · 값 1 | 1,575(셈 밖 포함) |
| 단가 × 매개값 = 금액(0.5 % · 1 원) | 노무 361/368 · 기계 173/183 · 자재 122/129 · 율 151/152 · 하위 · 값 4/4 → **811/836(97 %)** | 1,499/1,575(95 %) |
| 줄 합 = 블록 머리 금액 | **201/206**(EST꼴 102/107 · STmate 99/99) | 351/459(STmate 안 불리는 블록 67 = 옛 머리 금액) |
| EST꼴 노무 꼴 | × 품 121 · ÷ 시공량 98 · × 율 4 | |
| EST꼴 기계 꼴 | ÷ Q 57 · × 시간 34 | |
| EST꼴 자재 꼴 | × 수량 44 · × 손료율 23 · 별도 20 | |
| 노임 단가 = 우리 LB 값 | EST꼴 222/222(2026 판) · STmate 0/144(옛 해 노임) | |
일위대가 줄(호표 245 · 1,350 줄) — 노무 105 · 기계 36 · 자재 354(별도 135) · 율 30 · 하위 825(단산 · 호표 부름) · 재현 1,344/1,350 · 줄 합 = 호표 금액 242/244.
→ 「단가산출 블록 · 일위대가 줄 · 일위대가 안 단가산출(노임 · 기계 품을 바로 적은 호표 59 · 621-B 1-5)」 세 대상 모두 같은 단위 줄로 풀리고 금액이 다시 셈 됨.
### 2-3. 못 재현 · 못 덮음 (불리는 쪽)
| 까닭 | 줄 · 블록 | 예 |
| --- | --- | --- |
| 엑셀 합 줄이 줄 하나를 뺌(사용자 셈 · 뜻한 뺌인지 모름) | 2 블록 | 북부청임도 단산 2 · 33 — 「마. 소계」 노무비가 진동로울러(핸드가이드) 노무 2,636 · 3,418 원을 뺌 |
| STmate 같은 기계 코드 두 행을 한 항목으로 더함 | 4 줄 | 울진대흥 1129 · 2119 「굴삭기 0.7 암석」 단가 두 배 · 매개값 하나(`Stmate.py:162-166`) |
| STmate 기계 할증 · 덤프 암석 꼴 | 6 줄 | 울진소광 1448 「할증 120 %」 · 봉화 3 · 43 · 51 · 52 |
| EST 글 꼴 밖(금액 없는 일당 줄 · 떼 · 신나) | 9 줄 · 3 블록 | 북부청임도 81 · 사방 17 · 거창 41 |
- 안 불리는 STmate 블록 67 은 머리 금액이 옛 노임 그대로(줄 합 ÷ 머리 = 1.13~1.14 · 울진대흥 2264 등) — 불리는 블록은 모두 맞음.
### 2-4. 율 줄 기준 (152 · `rbase621d.py`)
| 기준 | 줄 | 우리 꼴 |
| --- | --- | --- |
| 인력 줄 합(인부소계 · 인력품 · 인건비) | 82(그중 같은 블록에 기계 노무 있음 24) | 덧줄 직종노무 · `묶음 = 인력` |
| 자재 줄 합(주자재비) | 35 | 덧줄 주재료비 |
| 절 소계(앞 같은 묶음 줄들) | 16 | 덧줄 `줄.'이름'` 합 |
| 노무비 전체(기계 노무 포함) | 11 | 덧줄 노무비 |
| 기계 경비 · 기계 합 | 2 | 덧줄 특정 기계경비(드릴경비 등) |
| 자재 + 앞 율 · 못 찾음 | 1 · 5 | — |
| STmate 표지 | PA01 13 · PA01M 16 · PA02L 13 · PA01L 8 · RA · RS 등 6 | 기준 = 「절 + 비목」 그대로 적혀 있음 |
---
## 3. 맞춤 설계 — 줄 → 우리 계산 단위
### 3-1. 줄 하나 잇기
| 경쟁사 줄 | 우리 계산 단위 | 잇는 곳(지금 함수) | 매개값 | 금액 다시 셈 |
| --- | --- | --- | --- | --- |
| 노무 | 직종 LB × 품 × 노임 | LB 이름 · 옛이름(`ReadEst.trade` `:85-88`) | 품(엑셀 값) | 품 × 노임 |
| 기계 | 시간 × 시간당 기계경비(기계경비 로직 + 기계 EQ) | EQ 갈래 + 규격 수 + 괄호 낱말(778-1 · `Fixed.Linker._machine` `M02/M02_Hopyo_Fixed.py:105-116`) | 시간(= 율 ÷ Q) | 시간 × (노 + 재 + 경) |
| 자재 | 수량 × 단가 | MT 같음 › 바탕 이름 · 규격(`Material.sure` `M02/M02_Hopyo_Material.py:206`) · 후보(`:247`) | 수량(할증 · 손료율 포함) | 수량 × 단가 |
| 율 | 기준(묶음 · 비목 · 줄 목록) × % | 율 이름(공구손료 · 잡재료 · 소모 · 부자재 · 제잡비 · 기구손료 …) + 기준 글 | 율 | 기준 합 × 율 |
| 하위 | 다른 블록 · 호표 × 수량 | 블록 · 호표 번(SK · SC 참조) | 수량 | 하위 값 × 수량 |
| 값 | 고정(금액 그대로) | — | — | 그대로 |
### 3-2. 줄 판정
| 판정 | 뜻 | 담는 법 |
| --- | --- | --- |
| 같음 | 같은 단위 · 매개값 0.5 % 안(율 = 같은 율) | 바탕 줄 그대로 |
| 매개값 다름 | 같은 단위 · 다른 품 · 시간 · 수량 · 율 | 덮개(qty · 율) |
| 엑셀만 | 바탕에 없는 줄 · 단위 이어짐 | 더한줄 |
| 우리만 | 바탕 줄 · 엑셀에 없음 | 뺀줄 |
| 우리에 없는 항목 | 요소 못 찾음(자재 후보만 83 · 없음 4 · 기계 여럿 · 갈래만 18 · 노무 여럿 18 「작업반장」 LB 둘 · 없음 1 · 율 이름 없음 10) | 그 줄만 사용자 고름 |
| 우리에 없는 방법 | 담을 꼴 없음 — 지금 SK 율 줄 152 · STmate 셈 밖 줄 2 | 꼴 더함(5장) |
- 「같음 · 매개값 다름」은 기준 기초가 있을 때만 — 기준 = 지금 맞춤의 바탕 · 1위(옵션 거꾸로 `Option.find` · `SkPatch.compare` `M02/M02_Hopyo_SkPatch.py:395-443` 가 이미 줄마다 셈). 기준 없으면 「엑셀 매개값 그대로」.
### 3-3. 블록 판정 = 줄 판정 모음
| 블록 결과 | 조건 | 만듦 |
| --- | --- | --- |
| 기초 그대로 | 바탕 있음 · 줄 다 같음 | 기초(지금 맞음) |
| 바탕 SK | 바탕 있음 · 줄 다 이어짐 · 다름 · 더함 · 뺌 | SK = 바탕 + 덮개 · 더한줄 · 뺀줄(지금 다른 점) |
| 단위 SK | 바탕 없음(후보뿐) · 줄 다 이어짐 | SK = 바탕 없음 · 단위 줄만 + 근거 꼬리표(1위 기초) |
| 줄 고름 | 못 이은 줄 있음 | 그 줄만 고름 · 나머지 줄은 이어진 채 |
- 블록 통째 「맞는 기초 없음」(고름 대기)이 사라지고 「못 이은 줄 n 개」로 바뀜.
### 3-4. 기초 통째 찾기는 어디에
- 줄 출처 모으기(줄마다 「요소 + 매개값」을 가진 우리 변형 → 겹침) 실측:
| 무엇 | 수 |
| --- | --- |
| 노무 줄(품 있음 365)이 어느 기초 변형 품과 0.5 % 안 같음 | 314(86 %) · 3 % 안 27 · 없음 24 |
| 기계 줄(183) | 0.5 % 안 56 · 3 % 안 44 · 없음 83 |
| 블록 줄 출처가 기초 하나로 모임 | 43/206 |
| 골든 170 — 모인 하나 = 정답 | 31(3 % 문턱 39 · 「그대로」 하나 = 정답 34) · 겹침 빔 109 |
| 골든 170 — 지금 1위 맞음 | 156 |
- 판단 — 품셈 값 그대로인 노무 품은 흔하지만(86 %) 같은 품을 가진 기초가 많아 기초를 못 가름 → 기초 찾기는 결과(「기초 그대로」 판정)로만 쓰기엔 약함 · 지금 지문 찾기(골든 1위 163/177)를 「근거 꼬리표 · 바탕 후보」로 그대로 둠. 이 자리는 621-B (라)를 다시 확인한 것 · 사용자 안의 핵심(줄마다 잇고 줄로 짬)은 기초 찾기에 기대지 않음.
---
## 4. 실측 — 지금 방식과 나란히
### 4-1. 줄 잇기 (불리는 블록 206 · 836 줄 · `link621d.json`)
| 묶음 | 줄 | 이어짐 | 비율 | 못 이은 까닭 |
| --- | --- | --- | --- | --- |
| 노무 | 368 | 349 | 95 % | 여럿 18(작업반장) · 없음 1 |
| 기계 | 183 | 165(유일 58 · 괄호 규칙 107) | 90 % | 여럿 8 · 갈래만 10(부착용집게 · 물탱크 · 펌프차 · 커터 등) |
| 자재 | 129 | 42(유일 22 · 별도 20) | 33 % | 후보만 83 · 없음 4 |
| 율 | 152 | 142 | 93 % | 이름 없음 10(「1. 재료비(3 개월손료)」 등) |
| 하위 · 값 | 4 | 3 | — | 값 줄 1 |
| 합 | 836 | **701** | **84 %** | |
- 621-B 요소 잇기(지금 함수 · 율 · 하위 뺌) 49 % → 괄호 규칙 63 % 와 견주면 이번 = 율 · 하위를 방법으로 셈 + 별도계상 · 괄호 규칙 넣음.
### 4-2. 블록 — 줄 다 이어짐
| 지금 갈래 | 블록 | 줄 다 이어짐 | 그중 율 줄 없음 | 부르는 줄 | 줄 다 이어짐 |
| --- | --- | --- | --- | --- | --- |
| 기초 | 80 | 41 | 12 | 280 | 128 |
| SK | 37 | 19 | 12 | 137 | 77 |
| 고름 대기 | 89 | **65** | **59** | 318 | **256** |
| 합 | 206 | 125(61 %) | 83 | 735 | 461 |
- 줄 다 이어짐 + 재현 + 덮음 = 114 블록.
- 기초 80 중 못 이은 39 은 대부분 자재 후보만(23) — 기초가 자재 검색어를 스스로 가져 상관없음(바탕의 몫).
### 4-3. 부르는 일위대가 줄 735 — 자동으로 끝나는 몫
| 방식 | 블록 | 줄 | 비율 |
| --- | --- | --- | --- |
| 지금(기초 80 · SK 37) | 117 | 417 | 57 % |
| 621-B (가) 섞음(요소 유일 · % 없음 62) | 179 | 661 | 90 % |
| **줄 단위(지금 자동 + 대기 중 줄 다 이어짐 · 율 줄 없음)** | 176 | 650 | 88 % |
| **줄 단위 + 율 줄 담음** | **182** | **673** | **92 %** |
| 줄 단위만(바탕 안 씀 · 줄 다 이어짐) | 125 | 461 | 63 % |
- 남는 대기 24 블록(62 줄)에 든 못 이은 줄(겹침 있음) — 기계 여럿 · 갈래만 13 블록 · 자재 후보만 10 · 율 이름 없음 6 · 노무 여럿(작업반장) 3 · 노무 없음 1 · 값 줄 1 / SK 쪽 18 블록은 지금도 SK + 못옮김(줄 고름).
- 사용자 손 = 지금 「고름 대기 89 블록에서 기초 하나씩 고름(318 줄)」 → 「24 블록의 못 이은 줄만 고름」.
### 4-4. 골든 (블록 잇힌 170)
| 지표 | 수 |
| --- | --- |
| 지금 1위 맞음(이번 셈 · 공식 163/177) | 156 |
| 줄 다 이어짐 · + 재현 | 96 · 92 |
| 지금 갈래 대기 58 중 줄 다 이어짐 | 40 |
| 줄 출처 하나 = 정답 | 31 |
### 4-5. 줄 판정 수 (기준 = 지금 바탕 · 1위 · 옵션 거꾸로)
| 블록 | 같음 | 매개값 다름 | 엑셀만 | 우리만 |
| --- | --- | --- | --- | --- |
| 기초 80(블록 0.5 % 맞음) | 노무 · 기계 · 자재 286 | — | — | — |
| SK 37 + 대기 89(`SkPatch.compare` 줄비교 · `../B/out621.json`) | 45 | 148 | 94(장비 69) | 50 |
| 율 줄 152(기준 기초 덧줄 율 · 지문 캐시) | 68 | 43 | 41(기초에 율 없음) | — |
- 「같은 항목 · 다른 품」이 가장 흔함 — 줄 단위 SK 의 덮개 몫.
---
## 5. 담는 꼴
### 5-1. 단위 줄 → 지금 SK 꼴
| 단위 줄 | 지금 SK 꼴 | 됨 | 근거 |
| --- | --- | --- | --- |
| 노무 | 더한줄 `{종류: 인력, 요소: LB, 수량}` 또는 `{고정: {단가, 이음: {노임: LB}}}` | 됨 | `M02/M02_Sangeun_Doc.py:3-13` · `:411-427` `_add_item` · 고정 셈 `M02/M02_Sangeun_Calc.py:310-322` |
| 자재 | 더한줄 `{종류: 재료, 요소: MT}` · 별도계상 칸 | 됨 | `M02_Sangeun_Doc.py:463-467` |
| 기계 | 더한줄 `{종류: 로직, 로직: GC…, 입력값: {기계}}` | 됨(기계경비 로직 줄) | `SkPatch._add_machine` `M02/M02_Hopyo_SkPatch.py:326` · 못옮김 잇기도 이 꼴(778-2 026f6c667 · `SkPatch.py:52-55` `LINK`) |
| 기계 EQ 직접 | 더한줄 `{종류: 기계, 요소: EQ}` | 셈 못 함 — 778-2 가 이 꼴을 안 만들게 막음 | `master_material.py:258-259` |
| 하위 | 더한줄 `{참조: SK · SC}` | 됨 | `M02_Sangeun_Doc.py:415-417` |
| 값 | 더한줄 `{고정}` | 됨 | 〃 |
| 율 | `{고정: {비율}}` | **안 됨** — 「비율 고정 줄은 단가산출에 못 담음 — 덧줄 율로」 · 덧줄은 바탕에서만(바탕 없는 SK `empty_row` 덧줄 []) | `M02_Sangeun_Doc.py:171-172` · `:486-496` |
| 셈 밖(STmate C) | 뺀줄 또는 안 들임 | 됨(안 들임) | — |
| 근거 꼬리표 | 문서 · 줄 `본뜬` | 됨(꼴 안 바꿈) | `M02_Sangeun_Doc.py:12` |
### 5-2. 일위대가 SC 와 같은 꼴
- SC 고정 줄 = 이미 「단위 줄」 꼴: `{고정: {이름, 규격, 단위, 단가 {노 · 재 · 경}, 이음 {노임 LB · 자재 MT · 기계 EQ}, 출처}, 수량}` · 이은 비목만 단가 책 값(노임 새 판 따라감) · 품 그대로(`M02/M02_Labor_Fixed.py:1-12`).
- SC 비율 줄 = `{고정: {비율 {기준 비목, 비목}}, 수량 = 율}` · 반영 = 다른 줄 반영합[기준] × 율(`M02_Labor_Fixed.py:10` · `:147-161` · 짝 `Labor_Calc.ts` `ratioLines` · B09 `pct` 줄).
- 다른 점 둘 — ① SK 는 비율을 막음 ② SC 비율 기준은 비목 합뿐 → 율 줄 실측(2-4)의 인력 줄 합 82 중 24 는 기계 노무가 섞여 비목 합과 다름 · 절 소계 16 은 비목 합으로 못 셈.
- 판단 — 단위 SK 의 율 줄은 SC 비율 줄 꼴을 그대로 받고 `기준` 에 묶음(인력 · 재료 · 장비 = 엔진 줄 `묶음` 꼬리표 `MB:53-60`)과 줄 목록(cid)을 더하면 152 중 146(96 %) · 묶음만이면 130(86 %) · 지금 비목만이면 106(70 %).
- 엔진 쪽 셈 = 율 더한줄 → 엔진 `덧줄` 로 바꿔 넣음(`patched` 가 이미 `{**row, 호표, 덧줄}` 꼴을 돌려줌 `M02_Sangeun_Doc.py:430-480`) · 식 = `(줄.'a' + 줄.'b') * 율 / 100`(엔진이 이미 받는 꼴 `MF:636` · `_틀.md:254`) → 엔진 고침 없음.
### 5-3. 옵션 · 개정 따라감 · 출처
| 무엇 | 바탕 있는 SK | 단위 SK(바탕 없음) |
| --- | --- | --- |
| 옵션(토질 · 규격) | 바탕 입력값 | 없음(엑셀 매개값 고정) |
| 덧줄(공구손료 등) | 바탕 덧줄 · 율 덮개 | 율 줄(5-2 · 새 꼴) |
| 개정 따라감 | 바탕판 · 짝잃음 알림 | 단가만(이음) |
| 출처 | 바탕 키 + cid | 줄 `본뜬 {로직: 1위 기초, cid?}` · 블록 `본뜬.근거` |
| [기초로 바꾸기] | — | `SkPatch.plan(pick)` 로 바탕 SK 로 갈아탐(`SkPatch.py:444`) |
### 5-4. 바꿀 것 · 번짐
| 바꿀 것 | 파일 | 번짐 |
| --- | --- | --- |
| 단위 줄 정규화(율 · 하위 · 값 · 줄 금액 · 셈 밖 · 기준 표지) | `ReadEst.py` `items` · `Stmate.py` `_blocks` · `Excel.py:366` HP 남길 칸 | 776-1 S1 해시 바뀜(고정 시험 새로 굳힘) · 779-5 줄 칠 행 |
| 줄 잇기 한 벌 | 새 `M02/M02_Hopyo_Units.py` | `Elem` · `Fixed` · `Material` 부름만 |
| 단위 SK | 새 `M02/M02_Hopyo_SkUnit.py`(778-3 `SkElem` 자리) · `Sangeun.py:6-7` 머리 규칙 · `Maker.plan` | B09 · 구조물 조합 = 바탕 없는 SK 이미 지나감(꼴 같음) |
| 율 줄(고를 때) | `M02_Sangeun_Doc.py:164-172` · `M02_Sangeun_Calc.py` · `M02_Labor_Fixed.py` `ratio_row` 기준 묶음(SC 공용) · `M02_MasterTemplete_Labor_Calc.ts` `ratioLines`(짝 · 거울 시험) · SK 화면 `logic/M02_Sangeun_Cover_Model.ts`(646 줄) · `Sangeun_Detail.ts` · 740-1 펼침 `M02_Library_Flat.py`(579 줄) | B09 산근 텍스트 · `pct` 줄 · 구조물 조합 펼침 · B09 대가 `B09_Estimation_Labor_Source.py` |
---
## 6. 권함 · 갈래 · 정할 것 · 단계 · 일감
### 6-1. 권함 — (가′) 「줄 단위 분석 · 바탕은 있으면 씀」
- 단가산출 블록 · 일위대가 줄 · 일위대가 안 단가산출을 한 분석기(단위 줄)로 풂 · 줄마다 잇기 · 재현 · 판정.
- 블록 결과 = 줄 판정 모음(3-3) — 기초 그대로 80 · 바탕 SK 37 · 단위 SK 59(율 줄 담으면 65) · 줄 고름 30(24).
- 지문 · 기초 찾기는 그대로(골든 163/177) — 쓰임 = 바탕 후보 · 근거 꼬리표.
- 621-B 권함 (가) 섞음과 다른 점 — 「요소 SK 는 대기 중 깨끗한 블록만 몰래 채우는 예외」가 아니라 모든 블록을 줄 단위로 보고 바탕 유무만 갈림 · 남는 일은 블록 고름이 아니라 줄 고름 · 율 줄을 방법으로 셈 · 같은 분석기가 일위대가 줄까지.
### 6-2. 갈래
| 갈래 | 무엇 | 자동 줄(735) | 장점 | 단점 |
| --- | --- | --- | --- | --- |
| **(가′) 줄 단위 + 바탕(권함)** | 3-3 넷 | 650(율 줄 담으면 673) | 근거 · 옵션 · 덧줄은 바탕 117 블록에 남음 · 사용자 손 = 줄 고름 · 분석기 하나 | SK 두 꼴(바탕 · 단위) 섞임 · 단위 SK 는 개정 안 따라감 |
| (나) 모두 단위 SK | 바탕 안 씀 · 꼬리표만 | 461 | 꼴 하나 · 순위 틀림 없음 | 기초 80 · SK 37 도 옵션 · 덧줄 · 개정 · 자재 검색어 잃음 · 자재 후보 고름 늘어남(기초 블록 23) |
| (다) 지금대로 | 블록 통째 | 417 | 일 없음 | 고름 대기 318 줄 · 블록 고름 |
### 6-3. 사용자가 정할 것
1. 옮기는 기준 — (가′) · (나) · (다).
2. 율 줄을 단가산출(SK)에 담을지 — 담음(L · SC 비율 꼴 + 기준 묶음 · 대기 65 블록) / 안 담음(율 있는 블록은 대기 · 59 블록).
3. 대기 중 줄 다 이어진 블록 — 단위 SK 자동 + 근거 꼬리표(권함) / 미리 표시만 · 눌러 만듦.
- 정함(브레인 몫 · 바꿀 수 있음): 기계 줄 = 기계경비 로직 줄(778-2 · M01 기계경비 따라감) · 셈 밖 줄 = 안 들임 · 엑셀 합이 줄을 뺀 블록(2-3) = 띠 알림만.
### 6-4. 776 단계를 이 방식으로
| 단계 | 지금 계획 | 바뀜 |
| --- | --- | --- |
| ① 읽기 · 판별 | 그대로 | 없음 |
| ② 정규화 | Book · 블록 항목 L · X · M(776-2) | **단위 줄** — 항목에 율 · 하위 · 값 · 줄 금액 · 셈 밖 · 기준 표지 + 자체 검산(재현 · 덮음) · 일위대가 줄도 같은 단위 |
| ③ 지문 | 형식 모름(776-3) | 단위 줄의 투영(노무 품 · 기계 시간 · 자재 · 율) — 풀이 두 벌이 사라짐 |
| ④ 요소 연결 | 장비 괄호 규칙(778-1) | **줄마다 우리 계산 단위**(LB · EQ + 기계경비 · MT · 율 기준 · 참조 · 고정) |
| ⑤ 구조 맞춤 | 기초 찾기 · 판정 | 기초 찾기 = 바탕 후보 · 꼬리표 · **줄 판정**(같음 · 매개값 다름 · 엑셀만 · 우리만 · 없는 항목 · 없는 방법) → 블록 판정 = 모음 |
| ⑥ 만들기 + 보기 | 기초 · SK · 대기 | 기초 · 바탕 SK · 단위 SK · 줄 고름 · SC 같은 꼴 · 보기 줄 칠(779-5) = 줄 판정 그대로 |
### 6-5. 일감
| # | 일감 | 파일 | 크기 | 앞 조건 · 부딪힘 |
| --- | --- | --- | --- | --- |
| D-1 | 단위 줄 정규화 — EST 율 · 하위 · 값 · 줄 금액 · STmate PR · RR(기준 표지) · N 열 셈 밖 · 같은 코드 기계 두 행 가름 · 일위대가 줄 투영 · 재현 · 덮음 | `ReadEst.py` · `Stmate.py` · `Excel.py`(남길 칸) · `resources/tester/fixtures/m02_hopyo_stages.json` | M | 776-2(끝남 · 3a1ce9ca4) 항목 꼴을 넓힘 · 776-3(Finger 가 항목을 읽음)과 같은 창 · S1 다시 굳힘 |
| D-2 | 줄 잇기 한 벌 — 단위 줄 → 계산 단위 + 상태(이어짐 · 후보 · 못 이음) | 새 `M02_Hopyo_Units.py` | M | 778-1(괄호 규칙 · sub2) 뒤 · D-1 뒤 |
| D-3 | 블록 판정 = 줄 판정 모음 · 단위 SK(+ 근거 꼬리표) · 778-3 갈음 | 새 `M02_Hopyo_SkUnit.py` · `Sangeun.py`(`Maker.plan` · 머리 규칙) · `SkPatch.py`(compare 를 단위 줄 위로 · 510 줄 · 늘리지 않음) | M | D-2 뒤 · 778-2 끝남(026f6c667) · 778-3 지움 |
| D-4 | 율 줄(정할 것 2 를 고를 때) — SK 비율 허용 · 기준 묶음 · 줄 목록 · SC 공용 | `M02_Sangeun_Doc.py` · `M02_Sangeun_Calc.py` · `M02_Labor_Fixed.py` · `M02_MasterTemplete_Labor_Calc.ts`(짝 · 거울 시험) · SK 화면 둘 · `M02_Library_Flat.py` · B09 `pct` | L | D-3 와 병행 가능(파일 안 겹침) · B09 금액 전후 대조 |
| D-5 | 화면 — 마법사 대기 창 = 「못 이은 줄만 고름」 · 근거 꼬리표 · [기초로 바꾸기] · 778-4 갈음 | `M02_MasterTemplete_Hopyo_WizardSk.ts` · `Hopyo_Choose.ts` · 부품 칩 | M | D-3 응답 꼴 뒤 |
| (D-6) | 엑셀 셈 어긋남 띠(재현 · 덮음 실패 줄) | `M02_Hopyo_Marks.py`(63 줄) | S | D-1 뒤 · 779-5 와 함께 |
- 지금 도는 일과 — 776-2(읽기 · 정규화) = 조사 도중 끝남(3a1ce9ca4 · HP 블록 `금액` · `항목`) → D-1 은 그 항목 꼴(`PLAN.md` 776-2 이음 줄)에 율 · 하위 · 값 · 줄 금액 · 셈 밖을 더하는 일 · 776-3(지문 형식 모름 · `Finger` 가 항목을 읽게)과 같은 파일 몫이 겹침 → 한 창에 차례로. 777-1 · 779-1 · 779-2 · 779-3 = 끝남 · 안 부딪힘. 778-1(sub2 · 괄호 규칙) = D-2 앞 조건 · 778-2 = 커밋 들어옴(026f6c667 · PLAN 체크 전). 778-3 · 778-4 = D-3 · D-5 로 갈음(사용자 답 뒤). 779-4 = 안 부딪힘 · 779-5(블록 안 줄 칠) = D-1 의 단위 줄 행 · D-3 의 줄 판정을 그대로 받음. 779 엑셀 창 = 안 부딪힘.
---
## 곁 발견 (보고만)
- 엑셀 자체 셈 흠 — 북부청임도 단산 2 · 33 의 합 줄이 진동로울러(핸드가이드) 노무 2,636 · 3,418 원을 뺌 · 줄 재현이 처음으로 잡음.
- STmate 읽기 — 같은 기계 코드 두 행(브레이커 + 굴삭기 등)을 한 항목으로 더해 단가 두 배(`M02/M02_Hopyo_Stmate.py:162-166` · 울진대흥 1129 · 2119) · PR · RR 율 행과 N 열 「제외금액」을 안 읽음.
- STmate 안 불리는 블록 67 머리 금액 = 옛 노임 · 불리는 블록만 새로 셈된 상태.
- EST 노임 = 우리 LB 값 222/222 · STmate 노임 144 줄은 옛 해 — 「우리 단가로 다시 셈」 차이는 STmate 쪽에만 생김.
- 우리 기초 29 로직이 시험입력 · 자동값으로 못 돎(「주재료비」 같은 밖 입력 · GC000315~320 등) · 빈 줄 202 — 단위 SK 바탕 후보로 고르면 셈 빈 줄.
@@ -21,3 +21,9 @@ M02 의 엑셀 불러오기에서 경쟁사 2개의 프로그램의 출력을
1. (옮기는 기준) 너가 지금 오해를 한게 있는데 우리나 경쟁사의단가산출을 보면 결국 형태가 노무/경비/자재로 구분되어있고 각 그룹의 세부항목은 하나의 별도의 계산 방법이 있다는거지. 그게 모여서 하나의 단가산출이되는거고 이걸 구분해서 사용하면 고객이 넣은 단가산출이든 일위대가든 일위대가의 단가산출이든 쉽게 분석이된단는 생각이야. 다시 조사해봐
2. (고름 대기 62) 옮기는 기준을 먼저 보고 판단
## 요구 623 (11-04 · 사용자 · 요구서_621 7장 물음 셋 답)
1. (옮기는 기준) 모두 줄로만
2. (율 줄) 담음
3. (줄 다 이어진 블록) 선택은 사용자가 확인하고 이동되어야함. 자동은 없음. 추가로 안맞는 부분은 내가 보고 판단하고 싶음. 어딴부분이 안맞는지 아티팩트로 공유
@@ -68,3 +68,22 @@
- 700 줄 근처: `Hopyo_Api.ts` 676 · `Hopyo_Check.ts` 663 · `M02_Labor_Router.py` 624 · `Build.py` 608 · `Hopyo_Sheet.ts` 592 · `spreadsheet_grid.ts` 691 — 늘리지 않음 · 새 줄은 새 파일.
- 자료 지킴: M01 정본 · 마스터 · 공유 storage M02 마스터 · 회사 층 · 남의 층에 쓰지 않음 · 쓰는 시험은 임시 storage · 화면 저장은 자기 개인 층 · 끝내기로 지움(743) · 테스트1(SK-000002) · 강관비계 그대로.
- 견본 = `resources/knowledge/original/실무문서/` 여덟 파일(목록 `resources/tester/helper_m02_hopyo_golden.py` FILES) · 검증 = EST 북부청 임도(4,345 행) · STmate 영월(5,604 행).
## 7. 다시 조사 — 세부항목 계산 단위(요구 622 · `_분석_621-D_세부항목_계산단위.md`)
- 4장 물음(섞음 · 요소 먼저 · 지금대로)은 브레인이 「요소」를 M01 요소 키로만 읽은 것 — 요구 622 로 바로잡음 · 4장 갈음.
- 사용자 생각 맞음: 우리 기초 줄 5,901 · 경쟁사 단가산출 줄 836 · 일위대가 줄 1,350 이 모두 같은 여섯 방법(노무 · 기계 · 자재 · 율 · 하위 · 값) · 다른 것은 품 · 시간 · 수량 · 율을 얻는 길뿐(우리 = 표 · 옵션 · 작업량 식 · 경쟁사 = 숫자).
- 경쟁사 계산 방법을 엑셀에서 되찾음(STmate 칸 · EST 글) · 줄 금액 다시 셈 811/836(97 %) · 줄 합 = 블록 금액 201/206 · 일위대가 줄 1,344/1,350.
- 줄 → 우리 계산 단위 잇기 노무 95 · 기계 90 · 율 93 · 하위 100 · 자재 33 % · 전체 84 % · 줄이 다 이어지는 블록 125/206.
- 부르는 일위대가 줄 735 자동 끝 = 지금 417(57 %) → 줄 단위 650(88 %) · 율 줄 담으면 673(92 %) · 남는 일 = 블록 고름이 아니라 못 이은 줄만 고름.
- 기초 통째 찾기 = 바탕 후보 · 근거 꼬리표로만(바탕 있으면 옵션 · 덧줄 · 개정 따라감 살림).
- 권함 (가′) 「줄 단위 분석 · 바탕 기초는 있으면 씀」 — 단가산출 · 일위대가 · 일위대가 안 단가산출을 한 분석기로.
- 물음(답 기다림): ① 옮기는 기준 (가′) · (나) 모두 단위 SK · (다) 지금대로 ② 율 줄을 SK 에 담을지 ③ 고름 대기 중 줄 다 이어진 블록 = 단위 SK 자동 + 근거 꼬리표 / 표시만.
- 일감 = D-1 단위 줄 정규화(M · 776-3 과 한 창) · D-2 줄 잇기 한 벌(M) · D-3 블록 판정 = 줄 판정 모음 · 단위 SK(M · 778-3 갈음) · D-4 율 줄(L · ② 담음일 때) · D-5 화면 줄 고름(M · 778-4 갈음) · D-6 엑셀 셈 어긋남 띠(S · 779-5 와 함께).
- 곁 흠: STmate 같은 기계 코드 두 행을 한 항목으로 더해 단가 두 배(`M02_Hopyo_Stmate.py:162-166`) · PR · RR 율 행 · N 열 제외금액 안 읽음 · 북부청 임도 단산 2 · 33 엑셀 합이 진동로울러 노무를 뺌(엑셀 자체 흠) → D-1 · D-6.
## 8. 사용자 확정(요구 623) · 걸음
- 사용자 확정: 옮기는 기준 = **모두 줄로만**(바탕 기초 안 씀 · 기초는 근거 꼬리표로만) · **율 줄을 SK 에 담음** · **자동 없음** — 모든 줄 · 블록은 화면에 제안만, 사용자가 확인한 뒤 옮김 · 안 맞는 부분은 사용자가 보고 판단(아티팩트 https://claude.ai/artifact/CF33RgYLsZpHQQ2MJdnwQ7 · 판단 여덟 가지 답 기다림).
- 정함(브레인): 기계 줄 = 기계경비 로직 줄(778-2) · 셈 밖 줄 안 들임 · 금액만 있는 줄 = 고정 금액 줄 · 엑셀 셈 어긋남 = 띠로 보이고 사용자 판단 · 기계 할증 · 암석 보정 풀이 더함 · STmate 같은 기계 코드 두 행 따로.
- 걸음: D-1 단위 줄 정규화 + 776-3 지문 형식 모름(sub1) ∥ D-4 율 줄 SK(sub2) → D-2 줄 잇기 한 벌 → D-3 블록 = 줄 판정 모음 · 단위 SK(바탕 없음 · 근거 꼬리표) · test_729 기대값 새 뜻 → D-5 화면 줄 고름(제안 · 확인 뒤 옮김) → D-6 엑셀 셈 어긋남 띠 + 779-5 블록 안 줄 칠.