From 3159043841921785b029ff4c6fc311911f7f2625 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 13 Sep 2026 14:52:52 +0900 Subject: [PATCH] =?UTF-8?q?knowledge(=EC=B6=95C):=20=EC=8B=9D=20=EC=B9=B8?= =?UTF-8?q?=20=EA=B3=84=EC=95=BD=20=EC=8B=A0=EC=84=A4=20=E2=80=94=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=EB=AC=BC=EB=8F=84=C2=B7=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=B8=8C=EB=9F=AC=EB=A6=AC=20=EC=96=91=EC=8B=9D=ED=98=95=20?= =?UTF-8?q?=EA=B3=B5=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX --- docs/raw/verification/2026-09-13_축C_명세.md | 68 ++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/docs/raw/verification/2026-09-13_축C_명세.md b/docs/raw/verification/2026-09-13_축C_명세.md index f0cc73ea..a0e7dc79 100644 --- a/docs/raw/verification/2026-09-13_축C_명세.md +++ b/docs/raw/verification/2026-09-13_축C_명세.md @@ -354,6 +354,74 @@ STmate 코드는 `B00001`·`M00042` 꼴로 **층 글자 + 다섯 자리**이고 --- +## 13. ⭐ 식 칸 계약 — 구조물도(3장)와 라이브러리 양식형(4장) 공용 + +**한 계약임.** 구조물도 한 줄이 들고 가는 모양이 곧 라이브러리 양식형 항목의 모양임. +따로 만들면 라이브러리가 구조물도를 못 낳음. + +### 한 줄이 들고 갈 칸 + +```json +{ + "seq": 3, + "name": "고임돌", + "spec": "", + "formula": "AREA * LOOKUP(뒷길이표, L3, '고임돌')", + "formula_text": "돌쌓기면적 × 고임돌 원단위", + "refs": { "AREA": 1 }, + "vars": { "L3": 45 }, + "amount": "0.18", + "unit": "㎥", + "rounding": { "mode": "floor", "digits": 2 }, + "source": "library" +} +``` + +| 칸 | 무엇 | +| --- | --- | +| `formula` | **기계가 푸는 식.** 여기가 정본 | +| `formula_text` | **사람이 읽는 산출 기초.** 조달청 규격의 `적용산식설명` 자리 | +| `refs` | **앞 줄 결과**를 이름으로 받음 (`AREA` → 1번 줄) | +| `vars` | 제원 칸 (집계표·라이브러리에서 옴) | +| `rounding` | **줄마다 다름** — 아래 | +| `source` | `auto` · `user` · `library` — 줄마다 출처 표시 | + +### 식 언어 — 최소로 정함 + +``` +연산 + - * / ^ ( ) +함수 SQRT · MIN · MAX · IF · LOOKUP(표이름, 키, 열이름) +참조 refs 의 이름(앞 줄) · vars 의 이름(제원) +``` + +⚠ **LOOKUP 은 반드시 있어야 함** — 실무 표가 뒷길이별 원단위표를 `VLOOKUP` 으로 참조함 +(35/45/55/60 → 채움콘크리트·고임돌·돌중량). 표는 양식과 **한 벌로** 저장할 것. + +### 지킬 것 넷 + +1. **상수 폴딩 금지 · 적힌 차례대로 풀 것.** 중간값을 미리 접으면 1원이 틀어짐 + (STmate 실증 — `267,360 × 0.20833… = 55,699` ✗ / 좌→우 = `55,700` ✅. 18건 중 14건만 맞았음) +2. **앞 줄만 참조.** `refs` 는 자기보다 작은 `seq` 만 가리킴 ⇒ **순환이 원리적으로 불가** +3. **반올림은 줄마다 칸으로.** 한 가지로 통일하면 실무 값과 원 단위에서 갈림 + ``` + mode : floor(버림) · round(반올림) · ceil(올림) · none + 실무 한 표 안에 INT(x*100)/100 · ROUND(,2) · ROUNDUP(,2) · 없음이 섞여 있었음 + ``` +4. **식을 버리지 말 것.** 값만 저장하면 납품 규격(`적용산식`·`적용산식설명`)을 못 맞추고, + 라이브러리 양식형도 못 만듦 (12장) + +### 양식형 ↔ 고정형 + +| | 양식형 | 고정형 | +| --- | --- | --- | +| `formula` | **있음** — 제원을 바꾸면 `amount` 가 다시 남 | **없음**(또는 빈칸) | +| `amount` | 식이 낳은 값 | **박힌 값** (STmate 내역서에서 뽑음) | +| `vars` | 제원 칸 | 안 씀 | + +**칸은 같고 `formula` 유무로만 갈림.** 표를 두 벌 만들지 말 것. + +--- + ## 10. 고칠 때 이 문서는 **브레인이 관리함.** 코드 창이 계약을 바꿔야 하면 **고치지 말고 브레인에게 알릴 것** —