From fa722d80c9a26d61b7095ada0e17bcb65708238b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 22 Sep 2026 07:59:17 +0900 Subject: [PATCH] =?UTF-8?q?knowledge(=EA=B3=B5=EC=A2=85=C2=B7=EA=B8=B0?= =?UTF-8?q?=EC=88=A0=EA=B5=90=EB=B3=B8):=20=EA=B3=B5=EC=A2=85=20=EB=A7=88?= =?UTF-8?q?=EC=8A=A4=ED=84=B0=EC=99=80=20=EA=B8=B0=EC=88=A0=EA=B5=90?= =?UTF-8?q?=EB=B3=B8=20=EC=8B=A4=ED=83=9C=20=EB=B6=84=EC=84=9D=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2_공종_*(old/) 는 지금도 API·B08→B09 인계 열쇠·Z01 기초단가 화면이 쓰는 정본 — 로직·소요량·계수(자원 축)와 겹치지 않는 별도 축(공종 축)이라 대신 안 됨. 임도기술교본·사방기술교본은 사업별로 나뉜 서로 다른 원문 둘(2026-08-13 사용자 확정 이미 있음) — 마스터 표엔 품셈 원문 인용 각주와 ref/ 근거자료로만 있고 확정값으로 안 섞임. --- .../master_data/ref/_분석_공종과_기술교본.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 resources/master_data/ref/_분석_공종과_기술교본.md diff --git a/resources/master_data/ref/_분석_공종과_기술교본.md b/resources/master_data/ref/_분석_공종과_기술교본.md new file mode 100644 index 00000000..fa9ca978 --- /dev/null +++ b/resources/master_data/ref/_분석_공종과_기술교본.md @@ -0,0 +1,63 @@ +# 분석 — 공종 마스터와 기술교본 (2026-09-22, 일감35) + +읽기 전용 분석 — 코드·데이터 하나도 안 고침. + +## ① 공종이 무엇인가 + +### 실체 + +`resources/master_data/old/` 안 `2_공종_*` 열두 개 — 공사(건설·산림) 목차(TOC) 계층 + 표 귀속 + 불변 열쇠 장부. + +- 건설 마스터(`2_공종_건설_마스터_2026-01-01.json`) — 196,058줄 · 목차마디 1,367 · 표 2,279 · `work_item_key` CW-00001 꼴. +- 산림 마스터(`2_공종_산림_마스터_2026-01-01.json`) — 44,661줄 · 목차마디 477 · 표 475 · `work_item_key` FW-00001 꼴. +- 열쇠대장 둘(`2_공종_*_열쇠대장.json`) — 판이 바뀌어도 안 변하는 열쇠 장부. +- 그 밖 밑수없음·형태미정·자원줄·연결·줄구실기준 — 만드는 과정의 부산물·경계표. + +만든 때 — 산림 2026-09-07(`3497486b`) · 건설 2026-09-17(`642a5be9`). 둘 다 **B08 일감(PLAN 8-6·8-7) 결과물** — 「예전 개발 과정 산출물」 이 맞음. + +### 지금도 쓰는 코드 + +`old` 라는 이름과 달리 **지금 도는 정본 자리**임. + +- `Z01_MasterData/Z01_MasterData_WorkItems.py` 줄 27 — `FOLDER = tables.RESOURCES / "master_data" / "old"` 를 그대로 읽음. +- `Z01_MasterData_Router.py` `/api/master-data/tree`·`/rows`·`/base-prices` — 이 파일이 API 응답의 정본. +- `Z01_MasterData_BasePrices.py` `KINDS` 에 `*work_items.KINDS` 가 노임·기계·자재·유가·요율과 나란히 들어감 — **Z01 기초단가 화면(2026-09-15 사용자 지시)의 다섯+공종 가운데 하나**. +- `common_util/common_util_work_item_key.py` — 공종 마스터 줄의 `work_item_code`↔`work_item_key` 를 **B08 인계 출구(`B08_Quantity_Engine_Handoff.build_handoff`)**·**B09 인계 입구(`B09_Estimation_BillOfQuantities_Input.parse_handoff`)** 두 경계에서 부름. 파일 안에 "정본은 공종 마스터 파일의 줄 — 장부를 따로 안 읽음" 이라 명시. +- 시험 30여 개(`test_z01_work_items.py`·`test_work_item_master_const.py`·`test_work_item_master_toc.py`·`test_work_item_key_gate.py`·`test_work_item_key_registry.py`·`test_b08_work_item_master.py` 등)가 이 파일들을 직접 읽음. + +### 단가산출 로직·소요량·계수로 대신되는지 — 안 됨 + +`B08_Quantity_Build_WorkItemMaster.py` 머리글이 경계를 스스로 밝힘 — "공종의 정체 = 품셈의 절 번호" · "이 파일은 **공종 축만** 만든다. 자원 축(`resource_kind`·`resource_code`·`amount`)은 단가표를 아는 B09 가 뒤 패스로 채운다." + +- **공종 축**(이 마스터) — 품셈 절 번호 목차 계층 + 표 귀속 + 불변 열쇠(FW-/CW-). B08→B09 인계 줄을 가리키는 이름표 구실. +- **자원 축**(`로직_*.json`·`소요량_*.json`·`계수_*.json`) — 표 한 장 안에서 인력·재료·기계를 무엇으로 얼마나 쓰는지의 계산 로직. 키가 GC000994·GF0001 꼴로 **공종 마스터의 work_item_key 와 다른 이름 공간**. + +겹치는 자리는 "어느 절(품셈 조문 번호)에 어느 표가 딸리는가" 뿐 — 그것도 공종 마스터가 "표는 있는데 자원 축이 아직 없다"(basis_missing 451·form_undetermined 153 등) 를 추적하는 커버리지 장부 구실까지 겸함. `로직_*.json` 은 공종 마스터를 참조하지 않고 자기 안에 원문번호·구분·상세구분을 그대로 적음(따로 뽑아 옮긴 사본, 연결선 없음). + +### 판단 + +**사용자 짐작(예전 산출물이라 old 로 옮겨 한 번에 지움)은 틀림.** old 라는 폴더 이름은 「지금 안 쓰는 것」 이 아니라 「(제작 스크립트가 지은) 마스터 파일이 사는 자리」 라는 뜻으로 전용돼 있음 — API 정본·B08→B09 인계 열쇠·Z01 기초단가 화면 다섯 중 하나·시험 30여 개가 지금 이 파일들에 물려 있어, 지우면 그 넷이 한 번에 깨짐. 자원 축(로직·소요량·계수)과 안 겹치므로 "대신됨" 도 아님 — 공종 축은 계속 필요. + +## ② 기술교본이 마스터에 들어와 있는가 + +### 임도기술교본·사방기술교본은 서로 다른 진짜 원문 둘 + +- `resources/knowledge/original/임도기술교본/` — 469개 파일(2020년판). +- `resources/knowledge/original/사방기술교본/` — 380개 파일(2023년판). +- `00_운영지침.md` 8행에 이미 **2026-08-13 사용자 확정**으로 적혀 있음 — "임도기술교본은 **임도**, 사방기술교본은 **사방**을 주 대상으로 본다. 자기 사업 교본에 내용이 누락된 경우 상대 교본을 참조할 수 있으나 확정값이 될 수 없다(반대 방향도 동일). 교차 참조 시 문서에 출처 교본과 '교차 참조 — 확정값 아님' 을 명시한다." + +즉 브레인이 말한 "사용자는 임도기술교본, 앞 문서는 사방기술교본" 은 **오기·혼동이 아니라 이미 규정된 두 책**임 — `technical_info/01_임도/*` 는 임도기술교본을 31곳 넘게(계획노선·상세설계·수량분석·원가정보 전 절) 인용하고, `technical_info/02_사방댐/*` 는 사방기술교본을 그 절(대상지 타당성평가 등)에서 인용함 — 각자 제 사업 쪽에서 정확히 씀. 새로 고칠 것 없음. + +### 마스터 테이블에 실제로 들어간 줄이 있는가 — 없음(인용문 빼고) + +`resources/master_data/` 안(`old`·`ref` 포함) "임도기술교본"·"사방기술교본" 을 담은 자리 여덟 — 전부 아래 두 갈래뿐, 마스터 표의 **자료 값**으로 들어간 자리는 없음. + +1. **품셈 원문 각주를 그대로 옮긴 자리** — `소요량_산림품셈_05장_식재_및_녹화.json` 1064행·`old/2_공종_산림_마스터_2026-01-01.json` 10671행. 둘 다 산림 표준품셈 원문 자체의 "[주] ② 비탈에 따른 m당 떼사용 매수표는 **사방기술교본** 기준표와 실측에 의해 산출한다" 각주를 원문 그대로 실은 것 — 우리가 사방기술교본 표를 가져다 값으로 넣은 게 아니라, 품셈 원문이 스스로 사방기술교본을 인용한 문장을 그대로 보존. +2. **`ref/` 원자료 — 근거일 뿐, 확정값 아님으로 명시** — + - `ref/수량_사방기슭막이치수_사방기술교본_2026-01-01.json`(파일명부터 출처 명시) · `old/4_화면_이름표_2026-01-01.json` 3592행이 이 파일을 `"kind": "reference"` 로 분류하고 "⚠ 기초데이터가 아니다 — 표준값처럼 쓰지 말고 근거로만 본다(2026-09-16 사용자 판정)" 라 적음. + - `ref/품셈_산림_돌종류계수_울진_2026-01-01.json` 19행 — 임도기술교본 7장 3절을 계수의 근거 문서로 인용. + - `ref/수량_구조물원단위_울진_2026-01-01.json` 565행 — 세월교 수량 근거가 없는 이유를 설명하며 임도기술교본을 언급("설치 조건만 있고 수량 근거 없음"). + +### 판단 + +기술교본 둘 다 **`resources/knowledge/original/` 원문 자리에 온전히 있고**, `technical_info` 가 각자 제 사업(임도/사방)에서 정확히 인용하며, **마스터 표(로직·소요량·계수)에 값으로 섞여 들어간 적 없음** — 들어간 것은 품셈 원문 자체의 인용 각주뿐이거나 `ref/` 의 "근거 참고용" 딱지 붙은 원자료뿐. CLAUDE.md 2장("지식DB는 근거·후보 가이드 — 값을 확정하지 않음") 대로 이미 지켜지고 있음 — 손볼 것 없음.