feat(z01): 기계 시공능력 이름표 — 새 kind 열 21칸(영문 15칸 0)

- 코드에 박혀 있던 표를 꺼낸 벌(메인 b6fb3725) — 불도저 속도·삽날 용량(건설품셈 8-2-1) ·
  덤프 운반 낱값·재료별 계수(산림품셈 10-12) 47 줄
- 영문으로 뜨던 15칸에 이름 — 주행 장치·기계 규격·변속 단·전진/후진 속도·삽날 용량 ·
  낱값 키·무엇인가 · 단위중량·체적변화율·버킷계수·적재/운반/적재 작업효율·적재 비고
- ⚠ `loader_efficiency`(E0)는 운반 식의 `truck_efficiency`(Es)와 **다른 기호**임을 이름에 적음 —
  섞으면 작업량이 갈림
- 줄 열쇠 — id 칸이 없고 **표마다 축이 다름**(속도표 넷 · 삽날표 셋 · 낱값 둘 · 재료별 둘).
  서버가 줄마다 `@axis` 로 알려 주는 대로 적음
- 시험 상수에 kind 하나 더함(열넷 → 열다섯)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFCnEYNH4tsS2MbHvzBhZk
This commit is contained in:
2026-09-16 15:50:02 +09:00
co-authored by Claude Opus 5
parent 3c4b915f7e
commit 46fe2bc010
2 changed files with 166 additions and 3 deletions
@@ -2,7 +2,7 @@
"schema_version": "1.0",
"dataset_id": "data_master_labels",
"effective_date": "2026-01-01",
"generated_at": "2026-09-16T13:11:45+09:00",
"generated_at": "2026-09-16T15:44:59+09:00",
"note": "마스터 자료의 **사람이 읽을 이름표**. 값이 아니라 이름만 담는다 — 여기를 고쳐도 계산은 안 바뀐다. Z01 마스터 관리 화면이 표·열 이름을 여기서 읽는다.",
"policy": {
"labels_only": "값·수식·단가를 담지 않는다. 마스터 파일은 손대지 않는다.",
@@ -1197,6 +1197,153 @@
"note": "형식마다 정해진 값. 코드 기본 0.3 이 여기서 왔다."
}
]
},
{
"key": "machine_productivity",
"name_ko": "기계 시공능력",
"summary": "불도저 속도·삽날 용량과 덤프 운반 계수. 코드에 박혀 있던 표를 꺼낸 벌이다.",
"sources": [
"B09_Estimation_MachineProductivity_Dozer.py (건설품셈 8-2-1)",
"B09_Estimation_MachineProductivity_Dump.py (산림품셈 10-12)"
],
"rows_note": "불도저 속도 · 삽날 용량 · 덤프 운반 낱값 · 재료별 계수 = 47 줄",
"columns": [
{
"key": "table",
"name_ko": "어느 표",
"unit": "",
"visible": true,
"note": "`dozer_speed`(불도저 속도) · `dozer_blade`(삽날 용량) · `dump_haul`(덤프 운반 낱값) · `dump_material`(재료별 계수). ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "track",
"name_ko": "주행 장치",
"unit": "",
"visible": true,
"note": "무한궤도 · 타이어. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "tonnage_ton",
"name_ko": "기계 규격",
"unit": "ton",
"visible": true,
"note": "⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "gear",
"name_ko": "변속 단",
"unit": "",
"visible": true,
"note": "1단·2단… 속도가 단마다 다르다. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "forward_m_per_min",
"name_ko": "전진 속도",
"unit": "m/분",
"visible": true
},
{
"key": "reverse_m_per_min",
"name_ko": "후진 속도",
"unit": "m/분",
"visible": true
},
{
"key": "blade_m3",
"name_ko": "삽날 용량",
"unit": "㎥",
"visible": true,
"note": "1회에 밀 수 있는 흐트러진 상태 부피."
},
{
"key": "key",
"name_ko": "낱값 키",
"unit": "",
"visible": true,
"note": "`truck_ton` 처럼 한 값짜리를 가리키는 이름. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "value",
"name_ko": "값",
"unit": "",
"visible": true,
"note": "낱값 표에서만 선다 — 단위는 곁 칸이 말한다."
},
{
"key": "unit",
"name_ko": "단위",
"unit": "",
"visible": true,
"note": "위 낱값의 단위."
},
{
"key": "meaning",
"name_ko": "무엇인가",
"unit": "",
"visible": true,
"note": "낱값이 품셈 식에서 어느 기호인지 풀어 적은 자리."
},
{
"key": "work_item_code",
"name_ko": "공종코드",
"unit": "",
"visible": true,
"note": "덤프 운반 재료 갈래(토사·암절취·발파암). ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다."
},
{
"key": "label",
"name_ko": "재료 이름",
"unit": "",
"visible": true
},
{
"key": "unit_weight_ton_per_m3",
"name_ko": "단위중량",
"unit": "ton/㎥",
"visible": true,
"note": "자연 상태 토석의 습윤밀도 γt — 적재량을 무게로 묶는 값."
},
{
"key": "loose_factor",
"name_ko": "체적변화율",
"unit": "L",
"visible": true,
"note": "흐트러진 상태 ÷ 자연 상태. 토량환산계수 표와 같은 축의 값이다."
},
{
"key": "bucket_factor",
"name_ko": "버킷계수",
"unit": "K",
"visible": true,
"note": "적재 장비가 한 번에 뜨는 몫."
},
{
"key": "loader_efficiency",
"name_ko": "적재 작업효율",
"unit": "E0",
"visible": true,
"note": "⚠ 운반 식의 `Es` 와 **다른 기호**다 — 섞으면 작업량이 갈린다."
},
{
"key": "truck_efficiency",
"name_ko": "운반 작업효율",
"unit": "Es",
"visible": true
},
{
"key": "loading_efficiency",
"name_ko": "적재 효율",
"unit": "E",
"visible": true
},
{
"key": "loading_note",
"name_ko": "적재 비고",
"unit": "",
"visible": true,
"note": "원문이 값을 안 준 자리와 우리가 고른 까닭."
}
]
}
],
"machine_cost_chain": {
@@ -1517,6 +1664,20 @@
"type_id"
],
"checked": "id 칸이 없다. 뒷길이·돌 직경 갈래는 `table+class`, 형식별 기울기는 `table+type_id`. ⚠ 돌 직경 갈래 이름은 원문 표기 `40~60` 꼴 그대로다."
},
{
"table": "machine_productivity",
"name_ko": "기계 시공능력",
"verdict": "없음 — 축으로만 가려짐",
"key": [
"table",
"track",
"tonnage_ton",
"gear",
"key",
"work_item_code"
],
"checked": "id 칸이 없다. **표마다 축이 다르다** — 속도표는 `table+track+tonnage_ton+gear`, 삽날표는 `table+track+tonnage_ton`, 낱값은 `table+key`, 재료별 계수는 `table+work_item_code`. 서버가 줄마다 `@axis` 로 무엇이 축인지 알려 준다."
}
],
"null_is_real": {
@@ -1610,8 +1771,8 @@
}
},
"counts": {
"merged_tables": 14,
"merged_columns": 136,
"merged_tables": 15,
"merged_columns": 156,
"files": 34,
"tables": 91,
"columns": 462,
@@ -452,6 +452,7 @@ def test_미결은_미판정으로_표시된다(labels):
#: 2026-09-16 사용자 판정 — 기초데이터 아홉이 더해져 열넷.
#: 곧이어 코드에 박혀 있던 기계 시공능력을 꺼내 열다섯(브레인 b6fb3725).
#: 잣대 = 계산되는 값이 아니라 **그냥 값만으로 정의되는 데이터셋**.
MERGED_KEYS = (
"labor",
@@ -468,6 +469,7 @@ MERGED_KEYS = (
"masonry_back_length",
"stone_kind",
"masonry_class",
"machine_productivity",
)