knowledge(요구): 분석 650-H2 — 우리 단가산출 엑셀처럼 편집 가능성 · 다이어그램 진단 · 견본 셋
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# 분석 650-H2 — 우리 단가산출 「엑셀처럼」 편집 가능성 · 다이어그램 진단 · 견본 셋 (PLAN 789-2 · 요구 650 · 651 · 읽기만)
|
||||
|
||||
표기 — 〔확인〕 = 파일 · 줄 · 실행 · 〔추정〕 = 판단. 견본 · 시험 스크립트 = `tmp/brain_650/H2/`(mock.json · run_items.py · run_sub.py · lookups.py · whatif.py · make_mock.py · run_out.json · whatif_out.json).
|
||||
|
||||
## 0. 요약
|
||||
|
||||
1. 엑셀처럼 편집 = 됨 — 엑셀 격자를 들이지 않고 지금 구조(M01 줄 + 사용자 덮개)는 두고 화면을 「줄 식 시트」로 바꿈.
|
||||
2. 지금 M02 단가산출 상세에서 고칠 수 있는 것 = 옵션 · 줄 품 · 단가 · 율 % · 줄 빼기 · 되살림 · 자원 · 기초 · 율 줄 더하기 · 재료 고름 · 단위 환산 — 모두 숫자만(`M02_Sangeun_Doc.py:27` · `:156`) 〔확인〕.
|
||||
3. 품 덮개를 넣으면 식이 숫자로 굳어 옵션을 바꿔도 안 따라감(`:420`) · 율 자리가 표 찾기인 줄은 율 덮개가 표 연결을 끊음 〔확인〕.
|
||||
4. 못 하는 것 = 식 고침 · 식 속 상수(120 · 17) · 표값(M01 「직접 넣을 때」 칸만) · 변수 줄 · 글 줄 · 줄 순서 · 줄 묶음 복사 · 브라우저 즉시 셈(고칠 때마다 서버 셈 왕복) 〔확인〕.
|
||||
5. 다이어그램(흐름도)을 못 쓰는 까닭 — 상자와 선만 보이고 숫자는 상자 속 · 상자 하나씩만 보임 · 값 하나 고치는 데 4 걸음 이상 · A1 식이라 실무 산근 꼴과 다름 · 저장된 흐름 로직 0 줄 · 10-05 뒤 손질 없음 · 비슷한 흐름 그림 시도(09-20)도 10 시간 만에 걷힘 〔확인 · 추정〕 → 화면은 버리고 바닥(표 찾기 · 단가 읽기 · 끝수 기본값)만 남김.
|
||||
6. 시트 화면 씨앗 = `calc_sheet.ts` + `ui_template_calc_row`(「이름 | 식 | 값」 줄 · 옵션 칸 고침 이미 됨) 〔확인〕 · 엑셀 엔진 둘(`A00_Common/spreadsheet` · `ui_template/sheet`)은 eval 없이 브라우저 · 서버 같은 코드지만 식 말이 우리 엔진(찾기 · 만약)과 달라 셈 바닥 후보로만.
|
||||
7. 견본 셋(우리 엔진으로 실제 셈) — 합판거푸집 51,419 원/㎡ · 인력운반(지게) 94,227(= 북부청 엑셀) · 굴착기 641 원/㎥ · 「고치면 얼마」 실측(아래 4 장).
|
||||
8. 제약 — 꽉 찬 파일 일곱(새 기능은 새 파일) · 즉시 셈 TS 짝은 엔진 Decimal 28 자리를 흉내 내야 함(`버림(1/3*3, 1)` 엔진 0.9 · 분수식 TS 1.0 실측) · 사용자 식 보안 = 파서는 eval 없어 안전하나 식 길이 · 괄호 깊이 상한 없음(깊은 괄호면 서버 500) → 상한 필요.
|
||||
9. 지난 시도 교훈 — 식 글자 칸 · 만든 사람 말(중간 값 · 덧줄 · 끝수)이 실패 원인 → 시트는 값 옆에 식 · 식은 읽기 쉬운 이름 꼴 · 엔진 날식(찾기 · 만약 · 로직)은 숨김 〔추정〕.
|
||||
10. 권하는 차례 = ① 시트 화면 → ② 숫자만으로 넓힘(표값 · 상수 · 글 줄) → ③ P2 식 칸 → ④ 필요하면 즉시 셈 · 엑셀 격자 통째로 넣기 = 비추천.
|
||||
|
||||
## 1. 지금 편집
|
||||
|
||||
M02 단가산출(SK) 상세 — `M02_MasterTemplete_Sangeun_Detail.ts`(569 줄):
|
||||
|
||||
| 고칠 수 있는 것 | 어디 | 저장 꼴 | 비고 |
|
||||
| --- | --- | --- | --- |
|
||||
| 이름 · 단위 | `:250-261` | 문서 칸 | |
|
||||
| 단위 환산 | `:265-277` · `Sangeun_Unit.ts` | 환산 칸 | |
|
||||
| 옵션 값 | `onInput` `:480-490` · `calc_sheet.ts:162-180` | 입력값(열린입력은 시험 값만) | 바꿀 때마다 서버 셈 |
|
||||
| 줄 품 · 단가(줄 모달) | `hoEdit` `:422-476` → `Cover_Model.ts:347-368` | 덮개(품 · 배율 · 노 · 재 · 경) | 숫자만 |
|
||||
| 율 % | `Cover_Model.ts:269-301` | 덮개 → 「X * 율 / 100」 갈아 끼움(`Doc.py:404-433`) | 꼴 다르면 거절 |
|
||||
| 줄 빼기 · 되살림 | `:434-443` · `Cover_Model.ts:371-387` | 뺀줄 | |
|
||||
| 별도계상 · 재료 고름 | `:459-468` · `:412-418` | | |
|
||||
| [항목 추가] | `:109-123` · `Sangeun_Pick.ts` | 더한줄(수량 숫자) | |
|
||||
| [율 줄 추가] | `:126-136` · `Sangeun_Rate.ts` | 더한줄 비율 줄 | 밑 = 묶음 · 비목 · 앞 줄 |
|
||||
|
||||
- 셈 = 고칠 때마다 서버 한 번(`Sangeun_Cover.ts:27-38`) · 늦게 보낸 요청 답만 씀 · 되돌리기 = 품 [되돌림] 하나 〔확인〕.
|
||||
- 일위대가(SC) — 줄 더하기 · 삭제 · ▲▼ · 끌어 옮기기 · [옵션] · 수량 수기 · 면적 칸 잇기 · 엑셀 붙여넣기 → 고정 줄 · 화면 즉시 셈 = TS 짝(`Labor_Calc.ts`) + 거울 시험 둘 〔확인〕.
|
||||
- M01 — 관리자 전용 · 정본은 비고만 고침 · 자체 로직(GX) 편집기(`M01_MasterData_UI_Logic_Edit.ts:117`) 식 = 날 입력칸 · 순서 바꾸기 없음 · 별칭 ↔ 엔진 식 번역기 `master_copy.py` · 검사(`master_formula_check.py:138-227`)는 불러올 때 · 저장 때만 · 로직 1,515 · 중간 3,316 · 호표 5,267 · 덧줄 645 · GX 0 · 흐름 0 〔확인〕.
|
||||
|
||||
## 2. 있는 자산
|
||||
|
||||
| 자산 | 판정 |
|
||||
| --- | --- |
|
||||
| `A00_Common/spreadsheet`(86 파일) — 엑셀 복제 · 안전 파서 · 서버 Node 다시 셈 | 셈 바닥 후보 · A1 주소 · 식 말 다름 · 화면 무거움 |
|
||||
| `ui_template/sheet` — 이름 변수 `[$이름]` · 브라우저와 Node 한 벌 | 가장 가까운 꼴 · 줄 더하기 · 지우기 없음 · M01 코드 끌어 씀 |
|
||||
| `calc_sheet` + `calc_row` | 시트 화면 씨앗(부품 상자 · 옵션 칸 고침 됨) |
|
||||
| `master_text` · `master_copy` | 식 칸 보기 글 · 별칭 ↔ 엔진 식 번역 |
|
||||
| 흐름도 DataFlow | 화면 버림 · 표 찾기 · 단가 · 끝수 바닥만 |
|
||||
|
||||
## 3. 규칙 제약
|
||||
|
||||
- 부품 상자 — GX 편집기 날 칸은 못 가져옴 · `A00_Common/spreadsheet` 는 `ui_template` 밖.
|
||||
- 700 줄 꽉 참 — `master_formula.py` 690 · `LogicLab_Ho.ts` 684 · `M02_Labor_Doc.py` 687 · `M01_MasterData_Store.py` 695 · `Cover_Model.ts` 661 · `Sangeun_Calc.py` 604 · `Sangeun_Detail.ts` 569.
|
||||
- 계산 자리 — SK 셈 = 이미 「서버 단독」 · 즉시 셈은 TS 짝 + Decimal 흉내 + 거울 시험.
|
||||
- 숫자만 원칙 — 식 고침은 원칙을 바꿈(요구 650 으로 사용자 확정) · 표값 · 상수 · 글 줄은 원칙 안.
|
||||
- 보안 — 손 파서 · 로직 부르기 깊이 20(`master_formula.py:482`) · 식 길이 · 괄호 깊이 상한 없음.
|
||||
- 규정 — 고칠 때마다 까닭 칸 · 원래 값 보존(예정가격작성기준 제2조 ②).
|
||||
|
||||
## 4. 견본 셋 (`mock.json` · 우리 엔진 실제 셈)
|
||||
|
||||
| 견본 | 줄 펼침 | 기본 값 | 고치면(실측) |
|
||||
| --- | --- | --- | --- |
|
||||
| 합판거푸집 GC000211(21 줄 + 입력 9) | 표값 시공량 45 · 형틀목공 5 · 보통인부 2(QC000431) · 합판율 0.327 · 형틀목공 275,790 × 0.11111 = 30,643.3 · 보통인부 7,647.4 · 합판 11,354 × 1.03 × 0.327 = 3,824.1 · 각재 7,660.1 · 공구손료 × 1 % = 382.9 · 소모자재 11 % = 1,263.2 · 노 38,290 · 재 12,747 · 경 382 | 51,419 원/㎡ | 사용횟수 6 → 3회 55,474 · 공구손료 1 → 2 % 51,802 · 지붕 감률 상수 17 → 20 61,088 · 인력 줄 더해도 공구손료 밑에 안 듦(밑 = 줄 이름 고정 → 「노무비 소계 × 1 %」는 P1 필요) |
|
||||
| 인력운반(지게) GC001140 | 무게 575 · 운반량 25 · 환산계수 8 · 환산거리 48 · 작업시간 450 · 적재적하 2 · 왕복속도 2,000 · 일운반회수 42 · 보통인부 172,068 × 575/25/42 = 94,227.7 | 94,227(= 북부청 엑셀) | 운반회수 42 → 0 42,917 · 상수 120 → 100 38,696 · 「할증율 20」 변수 줄 더함 51,501 |
|
||||
| 굴착기 | Q = 3600 × 1 × 0.9 × 0.7 × 0.75 / 21 = 81 · 시간당 51,958(경유 5,908.4 · 조종원 35,412.1 · 잡재료 1,240.7 · 손료 9,397) × 1/81 = 641.3 | 641 원/㎥ | E 0.7 → 686 · 기계 바꾸면 745 |
|
||||
|
||||
고치면 구조 — 옵션 → M01 연결 유지 · 표값 · 상수 덮개 → 그 줄만 표 연결 끊김 표시 · M01 바뀌면 짝잃음 알림 · 식 덮개(P2) → 원래 식 보존 · 짝 확인 · 변수 줄 · 글 줄 → 바탕 위에 얹음 · 가져온 식 SK → M01 연결 끊김.
|
||||
|
||||
## 5. 기능별 가능성 (S = 며칠 · M = 1~2 주 · L = 3 주+ · 〔추정〕)
|
||||
|
||||
| 기능 | 먼저 필요 | 크기 |
|
||||
| --- | --- | --- |
|
||||
| 옵션 값 | — | S(지금도 됨) |
|
||||
| 표값 바꾸기 | — | S~M |
|
||||
| 식 속 상수 바꾸기 | — | M |
|
||||
| 글 줄 | — | S |
|
||||
| 시트 화면 | — | M |
|
||||
| 식 고침 | P2 식 칸 | M+M(위험 큼) |
|
||||
| 변수 줄 | P2 | M |
|
||||
| 품을 식으로 | P2 | S |
|
||||
| 줄 묶음 복사 | P2 | M |
|
||||
| 「소계 × 율」 율 줄 | P1 엔진 셈 의미 | — |
|
||||
| 브라우저 즉시 셈 | — | 서버 셈 유지 S · TS 짝 L |
|
||||
| 순서 바꾸기 | — | 셈 순서까지 M · 화면 순서만 S |
|
||||
| 되돌리기(Ctrl+Z) | — | M |
|
||||
| 엑셀 격자 통째로 | — | 비추천 |
|
||||
|
||||
새 파일 후보 — `M02_Sangeun_Const.py`(상수 덮개) · `M02_Sangeun_Formula.py`(식 칸) · `M02_MasterTemplete_Sangeun_Sheet*.ts`(시트 화면) · `logic/M02_Sangeun_Eval.ts`(즉시 셈 짝 · 고를 때만).
|
||||
|
||||
근거 — 위 줄 번호 · `tmp/brain_650/H2/*.py` · 지난 시도 장부 `docs/raw/M01_쉬운단가/쉬운단가_검토_D_지난시도.md:12-50`.
|
||||
Reference in New Issue
Block a user