읽기 전용 점검(일감 28). 자재품목·소요량·계수·조합은 0.5~1.6초, 단가산출 로직과
로직 개선 시험만 6초대(같은 /api/m01/logics 길 — 쪽 나누기 전에 1,354줄 전부
막힘 검사 + 요청마다 마스터 전부 재색인). 그리기는 어디서도 안 느림. 고치지 않고
표·원인·제안만 기록.
M01 문구 파일 4개(Combo·Logic·LogicLab·LogicLab_New Text.ts)와
ui_template_locale_m1.ts 를 읽어 찾음(읽기 전용, 코드·데이터 안 고침).
① 용어 뒤섞임 — 「자재」(재료 아닌 한 자리) · 「단가산출 상세」 대 「호표」(같은
표를 화면마다 다른 말로) · 안 쓰는 M01_GroupTest 가 다른 제목으로 남음.
② API 라는 프로그래머 말이 남은 죽은 글(Edit_CopySoon).
③ 「결과단위」 붙여 쓴 한 자리(다른 곳은 「결과 단위」).
④ Pill_NoPick·Pill_NoValue 가 할 일을 안 알려 줌(다른 멈춤 글은 알려 줌).
메모 칸이 글자 아닌 값(수량 등)을 받아도 저장되던 것 · 이름이 글자 아니어도
저장되던 것을 막음(sub2 검증 `ref/_검증_조합.md` 일감 24). 메모는 글자·null만,
이름은 서버 400(글자 아님) + check_combo_form 422(빈 이름·60자 넘음·겹침)로
까닭과 함께 거절. _틀.md 10장 갱신 · 재현 시험 포함 4건 추가(21 통과).
엔진은 이미 됐음 — run() 이 조건 칸을 fill() 로 채우고 static() 이 검사에서 뺌.
표본으로 확인한 뒤 22줄 가운데 20줄을 고르기 조건으로 옮김(MT 19 · 고무링 1).
못 옮긴 2줄 — VR관(자재 단위 「본」 대 호표 「m」 환산 미확정) ·
커플링밴드(자재품목 표기 두 갈래라 규격으로 접속티와 못 가름).
검사 넓힘 — check_logic 이 조건 칸 {이름} 이 입력·중간인지 봄 ·
check_pick 이 구분 자체가 {입력} 이면 건너뜀(옛 코드는 「후보 0」 오탐).
앞뒤 견주기 — 시험 계산 통과 1,291 · 멈춤 63 그대로 · 금액 달라진 로직 0(1,354 전수) ·
check_master 전부 같음 · 로직의 MT 직접 참조 19 → 0 · MP 160 → 158.
_확정거리_관급.md — 남은 112줄을 갈래별(소형고압블록49·KP접합부속17·
레미콘오기1·중온아스콘28·그밖13) 정리, 결정하면 몇 줄 채워지는지 수로 적음.
_목록.md — ref/ 문서 35개 한 줄 요약(잰 것·결론·열림/닫힘) 새로 만듦.
값·데이터는 안 고침.
- 담은 로직 줄 = {로직, 메모} 뿐 · 입력값(수량)은 화면 안 메모로만 두고 조합에 안 저장
- 서버 길 실제 이름으로 맞춤: /combo/new · /combo/edit(판본) · /combo/delete(판본) · 422 검사 글·409 낡은 판본 안내
- 미리 보기는 화면이 로직마다 부르지 않고 POST /combo/preview 한 번에 받아 비목별 합계를 찍음
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
PLAN 4-2. 조합 = 관리자가 이름을 붙이고 단가산출 로직을 골라 담은 묶음.
마스터에는 담은 로직 목록만 두고 수량·비율·계산은 두지 않음(4-0 확정 · 계산은 프로젝트 몫).
- 새 파일 `일위대가조합.json`(빈 채 · 줄은 사용자가 화면에서 만듦) · 테이블ID `UA`
· 원문이 없어 머리 `원문` 과 줄 `원문번호` 를 두지 않음(`mk.NO_NUMBER` 에 `UA`)
- 엔진 `scripts/master_combo.py` — 검사 넷(없는 로직 키 · 같은 로직 두 번 · 빈 조합
· 조합이 조합을 담음) · 「이 로직을 쓰는 조합」 거꾸로 찾기 · 미리 보기 계산
- `check_master.py` 에 「조합」 갈래 더함 · 저장 전 검사(`check_saved`)에도 얹어 422 로 막음
- 서버 `M01_MasterData_Store_Combo.py` — `GET /combos`·`/combo`·`/logic/combos`
· `POST /combo/new`·`/edit`·`/delete`·`/preview`(저장 없음)
- 조합은 요소 그룹이 아님 — `/groups` 는 여덟 그대로 두고 제 길로만 다룸
- 틀 `_틀.md` 10장 · 계약 `_화면_계약.md` 9장 · 시험 `test_m01_combo.py` 17
검증 — 견본 조합(13-4-1 · 13-4-2 · 13-2-1) 미리 보기 합계가 그 로직 셋의 시험 계산을
비목별로 더한 값과 같음 · 못 도는 줄은 그 줄만 멈추고 나머지 합계는 그대로 ·
저장 전 조합 줄로도 미리 보기 되고 아무것도 안 생김 · 검사 넷 다 422 · 낡은 판본 409 ·
정본 로직 안 바뀜 · `check_master 틀`·`조합` 0건 · pytest 44 통과(조합 17 + api 27)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaS48Nvs26o3aFUpcfJxVv
서버 길(FastAPI TestClient, /calc·/text)만 불러 읽기 전용 검증.
줄 수·차례 짝(①)·함수글자·요소키 새나감(②)·계 합계(④)는 27개 전부 통과.
찾기() 별칭을 쓴 덧줄 비율식 2곳(GC001008·GC001017)에서 이름 식이 별칭 목록의
실제 이름(QC…) 대신 밑이름을 풀어 이은 다른 글자를 씀 — 값은 맞고 라벨만 어긋남.
build_로직_재료_고르기.py --보기 로 오늘 다시 셈(139+17+22=178, 드리프트 없음).
갈래별 「지우려면 무엇이 있어야」 한 줄씩 · {변수} 22줄 못 바꾸는 까닭 셋 · 고르기 규격칸에
변수 그대로 두는 제안(파형강관 GF000176 전례 근거, 구현 안 함).
삭제 뒤 남을 이름표 정보는 별도 매핑 파일로 옮기는 안 제안(자재품목 원자료는 안 건드림).
- update_관급단가_느슨.py 신설 — 엄격한 짝이 안 선 줄을 갈래 안에서 규격 글자를 느슨하게 맞춰 다시 봄
(아스콘 · H형강 · HI-VP · PE · VR관 · 돌망태 · 무게수로관 뚜껑 · 벤치플룸 · 유공관 · 이음관)
- 아스콘 관리번호 A3-W 떼기 · 못 채운 까닭 비고를 지금 말로 다듬음
- 자재품목 관급 열 212줄 채움(다른 열·줄 그대로) · 시험 · 설계 문서
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8