knowledge(축C): 식 언어 확정(비교·SUM·LOOKUP 근사·round 사사오입) · 별칭과 대체 가름

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
This commit is contained in:
2026-09-13 15:09:54 +09:00
co-authored by Claude Opus 5
parent 3fbc132625
commit 78b5ba0b71
@@ -229,6 +229,18 @@ AR-<종류>-<8자리 16진> 카탈로그에 없는 자원
⛔ scope 없는 별칭은 오류로 세울 것
```
### ⚠ 별칭과 **대체**는 다른 것 — 섞지 말 것 (2026-09-13)
| | 무엇 | 어떻게 |
| --- | --- | --- |
| **별칭** | **같은 것을 다르게 부름** — 단가가 같음 | 별칭표에 `scope` 와 함께 |
| **대체** | **대응하는 것이 아예 없어 다른 것으로 갈음** — 단가가 다를 수 있음 | ⛔ 별칭표에 넣지 말 것. **설계가 고르게** 드러낼 것 |
가르는 법 — **카탈로그에 원래 이름이 있나** 보면 됨.
보기) 노임 카탈로그에 `화약취급공` 은 있고 `화약공` 은 없음 ⇒ **표기 차이(별칭 후보)**.
`소운반인부`**카탈로그에 아예 없음** ⇒ 보통인부로 붙이는 것은 **대체**이지 별칭이 아님.
**대체는 도메인 판단이라 사용자 확인 자리임.**
흩어진 세 벌(`Handoff_Mapping` 의 파쇄암·암절취 · B09 의 파쇄암만 ·
B08 인계본 `ground_class_aliases`**B09 가 안 읽음**)을 한 벌로 모으되
**범위를 붙여 옮길 것.** 범위 없이 합치면 발파암이 리핑암으로 조용히 섞임.
@@ -424,14 +436,25 @@ STmate 코드는 `B00001`·`M00042` 꼴로 **층 글자 + 다섯 자리**이고
| `rounding` | **줄마다 다름** — 아래 |
| `source` | `auto` · `user` · `library` — 줄마다 출처 표시 |
### 식 언어 — 최소로 정함
### 식 언어 — 확정 (2026-09-13 보강, 소광리 53탭 전수 실측 반영)
```
연산 + - * / ^ ( )
함수 SQRT · MIN · MAX · IF · LOOKUP(표이름, 키, 열이름)
비교 = <> < <= > >= ← IF 조건에 씀
함수 SQRT · MIN · MAX · SUM · IF(조건, 참, 거짓)
LOOKUP(표이름, 키, 열이름) 근사 일치 (기본)
LOOKUP_EXACT(표이름, 키, 열이름) 정확 일치
참조 refs 의 이름(앞 줄) · vars 의 이름(제원)
```
**실측 근거** — ROUND 105 · INT×100/100 36 · ROUNDDOWN 25 · ROUNDUP 9 ·
IF 36(비교식 11) · VLOOKUP 13(**전부 근사**) · SUM 47.
`SUM` 과 **비교 연산**이 빠져 있었음. 넣음.
**`LOOKUP` 은 근사 일치가 기본** — 실무 13건이 전부 근사이고 뒷길이표가
35/45/55/60 **구간 표**라 그것이 맞음. ⚠ **표는 키 오름차순으로 저장할 것**
근사 일치는 정렬을 전제로 함. 정확 일치가 필요하면 `LOOKUP_EXACT` 를 쓸 것.
**LOOKUP 은 반드시 있어야 함** — 실무 표가 뒷길이별 원단위표를 `VLOOKUP` 으로 참조함
(35/45/55/60 → 채움콘크리트·고임돌·돌중량). 표는 양식과 **한 벌로** 저장할 것.
@@ -445,6 +468,9 @@ STmate 코드는 `B00001`·`M00042` 꼴로 **층 글자 + 다섯 자리**이고
mode : floor(버림) · round(반올림) · ceil(올림) · none
실무 한 표 안에 INT(x*100)/100 · ROUND(,2) · ROUNDUP(,2) · 없음이 섞여 있었음
```
⭐ **`round` = 사사오입(HALF_UP)** 으로 못 박음 — 구조물도는 **실무 엑셀을 본뜨는 표**이고
엑셀 `ROUND` 가 사사오입임. ⚠ **B09 내부 계산의 은행가 반올림과 헷갈리지 말 것** —
자리가 다름(7장). 은행가가 필요하면 `round_half_even` 을 따로 쓸 것
4. **식을 버리지 말 것.** 값만 저장하면 납품 규격(`적용산식`·`적용산식설명`)을 못 맞추고,
라이브러리 양식형도 못 만듦 (12장)