chore(sync): 공유 docs 파일 담음 — 기준 커밋과 같은 내용(줄 끝만 다름)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 10:11:35 +09:00
co-authored by Claude Opus 5.5
parent ff044bfe7b
commit 0973c11218
6 changed files with 380 additions and 0 deletions
@@ -0,0 +1,50 @@
# M02 구조물 조합 개편 — 사용자 요구 (2026-10-04 · 원문 그대로)
1번(계획서 32장 이후 정리)은 브레인이 처리함(c8269a969). 7 · 8번은 원문에 없음.
## 2. 일위대가 조합 → 구조물 조합 하위
M02페이지의 마스터 템플릿 페이지에서 일위대가 조합은 구조물 조합의 하위 컨테이너로 넣을 것.(구조물 도면과 면적산출 사이에 배치)
- 일위대가 조합의 좌측 패널의 기존 보기 방식인 트리구조는 필요없으며 구조물 도면 처럼 리스트형태로 보임
- 추가로 구조물 도면, 일위대가, 면적산출의 최상위에는 전체항목을 넣어주고 우측 상세에는 리스트로 보여줌, M01 항목을 보면 양식화되어 있는 페이지 헤이아웃 있음
## 3. 이름
이동한 일위대가 조합은 일위대가로 명칭 변경
## 4. 구분선
구조물 조합 컨테이너 내부의 서브 컨테이너 항목과 트리구조 사이에 수평 구분선 추가
## 5. 사용자별 구조물 조합 읽기 / 쓰기 / 복사 권한 점검 및 개선
- 시스템 관리자 : 아이슬로 프로그램 관리자로 마스터를 제공하여 회사관리자나 일반 사용자가 사용하기 쉽게 한다.
- 시스템관리자가 대시보드의 컨테이너 제목의 우측의 회사명을 선택함에 따라 변경한 목적은 해당 회사의 정보를 접근하고나 AS을 목적으로 고객을 도와주기 위함임. 복사항목에는 마스터나 시스템 관리자 회사, 개인으로 들어갈 항목 뿐만 아니라 고객 회사의 특정 폴더로 복사할 수 있는 기능이 있어야함. 수정/생성권한 포함
- 회사관리자 : 고객으로 본인회사의 양식을 만들거나 개인 프로젝트에 사용할 개인 마스터데이터 관리
- 회사관리자는 개인버튼을 누를경우 최상위 트리에는 다른 개인들의 정보를 보고 복사하여 개인에게 복사하거나 수정, 생성도 가능해야함.
- 개인은 마스터와 회사는 읽기만, 다른 개인의 정보는 볼수 없음. 트리는 현재를 유지해야함.
## 6. 구조물 조합 항목 변경
- 최상위 구조물 조합에 구조물 도면, 일위대가, 면적산출로만 표현(기존의 재료산출의 사용자가 추가하는 재료들과 값은 엑셀을 사용하지 않고 일위대가의 담은로직 처럼 하위에 별도의 컨테이너로 추가되는 자재항목을 넣어야함. 이때 M01자재목록에서 하나씩 가져오되 수량은 면적산출의 알약으로 값을 싱크하거나 별도의 모달창에서 셀을 지정하게 구현)
- 재료산출 항목은 삭제
- 선택입력 항목은 삭제(구조물 조합에서는 각 옵션의 상세 구조물에 따라 미리 옵션을 다 지정할 생각임으로 그럴필요 없음)
- 면적산출의 미리보기에서 아래 알약 그룹 행을 하이드/쇼 되게 반영(기본값은 하이드), 단, 면적산출 상세에서는 알약 행 보이기가 기본값으로
- 면적산출 상세 화면의 우측 패널에서 현재의 일위대가 조합 목록을 검색하는 기능이 아니라 현재 구조물도의 일위대가 담은 로직과 추가될 사용자 지정 재료를 보여줄것,
- 일위대가 상세화면에서는 미리보기(보기만/저장안함) 컨테이너는 각 단가산출 로직에 입력이 필요한 정보들임. 구조물별로 하나씩만들어져야함으로 구조물의 일위대가 항목에 옵션값이 저장되야함. 그리고 이값에 대한 지정은 담은 로직 컨테이너의 항목을 누르면 모달창이 나오고 사용자가 입력 및 변경할수 있게함. (하위에 지정된 항목과 값을 작은 글씨로 표현되게 반영)
- 담은 로직에는 기준 단가를 기준으로 넣었을때 나온 값과 수량산출값을 넣었을때 값에 대한 노무비, 재료비, 경비, 합계를 같이 보여줌. 이때 수량산출은 면적산출의 특정 셀값이나 사용자가 수기로 입력한 값이 될수 있음. 이렇게 되면 미리보기 계산 컨테이너 필요 없음.
- 일위대가의 상세 화면의 순서는 담은로직 > 자재목록 > 다이어그램 순서임.
- 면적산출 산출 상세의 우측 패널에 보여져야하는 결과는 결국 일위대가의 담은 로직컨테이너와 자재목록임.
- 추가된 자재목록에도 기준에 대한 단가와, 면적산출 엑셀의 특정 셀과 연결되었을때 나온 단가가 같이 나와야함.
## 9. 오른쪽 클릭
프로그램 B와 M영역의 페이지들에 마우스 오른쪽 클릭을 할 경우 브라우저 옵션 안보이게 할것.(우리 프로그램의 옵션은 허용, 공통양식 사용)
## 사용자 답 (10-4 · 일위대가 · 원문 그대로)
일위대가의 경우
1. 구조물 조합을 복사한 경우 신규 키를 생성하여 만듬. (값과 로직은 일단 같이 복사)
2. 신규 구조물 조합을 생성하는 경우 미리보기 페이지에는 새로만들기와 복사생성하기를 선택하게 하고 복사 생성인 경우에는 해당 리스트를 보여주고 선택하게 보여주는 값은 개인인 경우에는 개인을, 회사관리자인경우 개인, 시스템관리자인 경우 마스터를 기본값으로 보여주고 탭을 눌러 다른 항목에서 가져올수 있는 항목들을 보여준다.
3. 다시 말해 최종적으로는 구조물 조합에 일위대가, 도면, 면적산출이 연되는게 맞으나 특정항목만 다른 값을 복사하여 가져올수 있어야함. 저장이 된 데이터라도 변경가능해야함.
4. 현재 매칭이 안된 데이터는 나중에 삭제할예정이나 마스터 데이터를 수동 생성을 위해서 필요한 데이터들임. 차라리 실무문서라는 항목을 마스터에 별도로 만들어서 나중에 한번에 지우게 할수 있게 반영.
@@ -0,0 +1,25 @@
# M02 구조물 조합 개편 2차 — 사용자 요구 (2026-10-04 밤 · 원문 그대로)
구조물 옵션보이기는 확인했음. 무시할것.
다음 수정내용
1. 일위대가 상세
- 담은 로직 이라는 명칭을 단가산출 로직 으로 변경
- 로직들을 선택하면 나오는 모달 창에서 드롭다운 메뉴에 자동값 xx 항목이 나옴. 있을 필요가 있는지 확인
- 결과 단위의 좌측에 수량 산출 열을 추가하고 결과단위 당 기준 수량을 넣어주고 아래에는 수량산출의 값을 수기입력이나 엑셀모달을 보여줘서 선택할수 있게 반영.
- 로직의 로직 추가, 올리기 내리기 빼기 버튼의 양식은 알약 양식이이 아니라 버튼양식으로 변경,
- 자재 추가도 동일하게 버튼 으로
2. 구조물 조합 상세
- 일위대가 미리보기에서 복사해 가져오기를 가져오기로 변경, 일위대가 수정을 수정으로 이름변경
- 도면정보에서 도면수정을 수정으로 이름 변경
- 일위대가 미리보기에서 항목/수량산출/단위/노무비/재료비/경비/합계로 두줄을 하나의 항목 형태로 변경하고 자세한 내용은 상세내용에서 확인하게 변경(위내용 참고)
- 구조물 조합 제목 행에 있는 새항목의 버튼 양식을 알약에서 버튼으로 변경
- 도면정보/일위대가/면적산출 컨테이너의 구조를 3열 구조로 변경
- 도면정보/일위대가/면적산출 컨테이너 별로 삭제도 있어야하는게 아닌지.
3. 면적산출 상세
- 알약지정은 현재 방법 + 그래그 & 드랍 방식을 추가
- 지정된 알약정보를 색상 자동지정 및 지정된 셀은 색상으로 구분을 할수 있게 반영, 반짝임은 유지
## 추가 기능 (10-4 밤 · 원문 그대로)
추가기능 부여. 면적산출에서 특정 영역을 선정하고 도면영역으로 전달을 할 경우 도면에 테이블을 자동으로 넣고 셀의 내용을 싱크하는 기능을 부여. 만약 동기화가 어려운 경우 업데이트 버튼을 추가해도 무관, 복수개의 테이블이 넘어갈수도 잇으며 위치는 도면에서 사용자가 드래그하여 지정
@@ -0,0 +1,14 @@
# M02 구조물 조합 개편 3차 — 사용자 요구 (2026-10-05 새벽 · 원문 그대로)
나는 이제 자러갈거야. 아래 추가 수정 내용을 확인해서 반영해주고 좀 전 중지한 검증 항목까지 검증해줘. 그런데 너무 검증에 토큰과 시간을 너무 많이 사용하고 있어. 최적화 방법 좀 찾아줘.
추가 확인사항
1. 일위대가 상세화면에서의 단가산출 로직의 항목들은 2행 구조야. 1행은 기준 결과를 기준으로 한 결과행들과 2행은 수량산출 값을 넣었을때의 값인거지. 기본 2행 구조라만 1행은 선택된 옵션에 따라 결정된 값 행인거고 이걸기준으로 수량을 넣는 다면 2행을 값들이 되는거야. 현재도 이렇게 되어 있기는 한데 수량산출 항목을 선택하면 나오는 엑셀 모달창의 내 의도는 모달창으로 면적산출 엑셀을 보여달라는 말이었어.
2. 일위대가의 단가산출 로직 항목 행을 선택하면 수량 입력이 있는데 이건 없어도 됨. 외부에 있으니.
3. 자재 목록컨테이너에서 보이는 항목은 기준단가를 정해주는 것도 좋지만 자재목록의 5개 항목의 값을 비어있더라고 보여주고 기준단가가 되는걸 하이라이트 해주면 좋을것같아.
4. 구조물조합에서 일위대가 미리보기에서 일위대가 상세화면의 단가산출 로직(순서와 로직추가는 제외)과 자재목록을 그대로 보여주게 하되 기능은 유지(수량산출 연결창, 옵션지정 모달창)하고 수평스크롤을 가능하게 하기
5. 일위대가의 재료도 2열구조여야 할것같은데....
6. 도면정보, 일위대가, 면적산출을 접근 후 제목의 돌아가기 버튼은 알약이 아니라 일반 버튼으로
## 추가 (10-5 새벽 · 원문 그대로)
추가 항목이 하나더 있어. 구조물 조합에서의 미리보고 3개 컨테이너에 새로만들기와 복사 생성로직이 필요없겠네. 구조물 조합의 새항목 생성을 하면 당연히 새로운 항목들이 자동으로 생성되잖아. 그후 가져오기를 하면 당연히 값을 가져와서 덮어쓰면 되겠어. 그리고 일위대가와 면적산출에서 가져오기를 하면 도면은 개별로 작성되는게 맞지만 일위대가와 면적산출은 연결되어 있는정보니 같이 가져오는게 맞겠어. 알약연결 포함해서. 이 내용도 추가해줘.
@@ -0,0 +1,105 @@
# M02 구조물 조합 개편 — 정함 (브레인 · 10-4)
근거 = `사용자요구_1004.md` · 조사 보고 A~H(각 창 `tmp/조사_39-0X.md`). 사용자가 바꿀 수 있음.
## 1. 자료 틀 (B · sub7)
- 일위대가 = 구조물 열마다 `labor/<열id>.json` · 번호 `SU-######`(도번 · 면적번과 같은 뒷자리 · 층마다 셈) · 자리 = 시스템 `resources/master_template/labor/` · 회사 · 개인 `…/templates/labor/` · 새 프로젝트 씨앗도 KINDS 로 함께.
- 문서 꼴:
```json
{
"종류": "일위대가", "판": 1, "열": "item1", "일위대가번": "SU-000001", "단위": "개소",
"본뜬": { "층": "system", "주인": null, "키": "UA000008" },
"담은로직": [
{ "로직": "GF000219", "메모": "", "입력값": { "형식": "메쌓기" }, "수량": null },
{ "로직": "GF000137", "메모": "", "입력값": {}, "수량": { "손": 3 } }
],
"자재": [ { "코드": "MT000008", "이름": "치즐", "규격": "", "단위": "EA", "수량": null } ],
"계산값": { "줄": [], "자재": [], "기준합": {}, "반영합": {} }
}
```
- 이름 = 구조물 열 이름(따로 안 둠) · 단위 = 자기 칸 · 같은 로직 두 번 금지 · 빈 일위대가 저장 됨 · 이름 겹침 검사 없음 · 입력값 = 그 로직 입력 이름만(모르는 이름 버림 · 빈 값 = 자동값).
- 수량 = `null`(면적산출 알약 연결 따름 · 로직 알약 「이름|단위」 · 자재 알약 「자재|MT키」 · 칸 연결 정본 = 면적산출 문서 `연결` 한 곳) | `{손: 수}`(손 입력 · 손이 칸보다 앞섬).
- 금액 = 기준(결과단위 그대로 · 원/10㎡ 면 10㎡ 값 · 단위 같이 표기) · 반영 = 기준 × 수량 ÷ 배 · 돈 아닌 로직은 반영 없음 · 「원/1,000본」 배 1000(`_PER` 고침) · 자재 기준 단가 = M01 `master_material.element` 기본값.
- 계산 자리 = 기준 ③ 서버(M01 엔진 · calc 길 · 화면은 최신 응답만) · 반영 곱 ① 짝(`M02_MasterTemplete_Labor_Calc.ts` ↔ `M02_Labor_Doc.py` · 두 파일 머리에 짝 · 거울 시험 · 면적 칸 값이 바뀌면 화면이 바로 곱함) · [저장] 때 서버가 `계산값` 을 다시 적음(브라우저 값 버림 · 목록 합계용) · 상세는 늘 새로 셈.
- 길 = 문서 `GET/PUT /api/m02/layers/{층}/templates/labor/{열}`(양식 길 · owner) · 계산 `POST /api/m02/layers/{층}/labor/{열}/calc` {doc?, 수량?: {키: 값}} → {줄[{로직, 분모, 배, 수량, 수량출처, 기준{노무비,재료비,경비,계}, 반영{…}, 까닭}], 자재[{코드, 기준단가, 수량, 수량출처, 반영, 까닭}], 기준합, 반영합} · 알약 `GET /api/m02/layers/{층}/labor/{열}/pills`(로직 물량 + 자재).
- 집계표 열 `일위대가` · `자재조합` 칸 지움(정본 = labor 파일) · SS 장부 줄 = `일위대가번` · `도번` · `면적번`.
- 옮기기(한 번 · `M02_Labor_Migrate.py`) = 층마다 열마다 labor 파일 · 열 `일위대가` 키 조합의 담은로직 · 단위 복사(`본뜬.키` = 옛 키 · 입력값 {} · 수량 null · 자재 []) · 여러 열이 쓰던 조합(UP10-000001)은 열마다 복사 · 키 없는 열 = 빈 일위대가 · 몇 번 돌려도 같음 · 시스템 층(git)은 바로 · storage 층은 압축 사본 뒤 브레인이 돌림.
- 실무문서 = 마스터 `resources/master_data/일위대가조합.json` 통째(37 줄 · 손대지 않음 · 옮긴 뒤 어느 열도 안 가리킴 · M01 일위대가 조합 화면도 그대로) · 회사 · 개인 옛 조합(UC · UP)은 파일 그대로 · 화면에서 뺌.
- 프로젝트 = 스냅샷 `일위대가.json` 은 labor 문서 + 담은 로직 줄 · `입력값.json`(모양 그대로) 첫 값 = labor 입력값 · `단가.json` 에 자재 MT 줄 · 계산은 반영 같은 함수.
- 은퇴(화면이 안 부른 뒤) = 일위대가 갈라 내기 · 키 적기(use-combo) · 조합 고치기 · 미리 보기 길(preview) · 일위대가 조합 나무 길.
- 로직 지우기 검사 = 모든 층 labor 담은로직 + 실무문서(32장 「로직 지우기 서버 검사」 줄 끝남).
## 2. 좌측 패널 (A · sub5)
- 맨 위 「일위대가 조합」 컨테이너 · 조합 나무 · 둘째 층 단추 벌 지움 · 구조물 조합 안 차례 = 층 단추 + 나무 → 수평선 → 구조물 도면 → 일위대가 → 면적산출.
- 하위마다 첫 줄 「전체 항목」(누르면 `onAll(kind)` → H 목록) · 일위대가 줄 = 열마다 「SU-… 이름」 · 누름 = `onOpen({kind: "labor", name: 열})`(C 상세).
- 이름 「일위대가」(하위 제목 · 상세 제목 · 대시보드 카드 글) · 해시 `open=일위대가` = 구조물 조합 펼침 + 일위대가 하위 펼침 + 전체 항목.
- 「실무문서」 = 구조물 조합 밖 별도 컨테이너(도면 양식 아래) · 마스터 층 · 시스템 관리자만 · 목록 + 상세 읽기만(새 파일 `M02_MasterTemplete_Practice.ts`) · [통째 지우기](물음 두 번 · 서버 = 시스템 관리자 · 쓰는 곳 0 확인 · 줄을 비움 · 버튼은 사용자가 누를 때만).
## 3. 일위대가 상세 (C · sub2)
- UI_Main 종류 `labor` 로 엶(양식 길 읽기 · [저장] · [다시 읽기] · 캐시 = 다른 양식과 같음) · 차례 = 머리 → 정보(단위 · 본뜬) → 담은 로직 → 자재목록 → 다이어그램 · 미리 보기 칸 지움.
- 담은 로직 줄 누름 = 입력 모달(그 로직 입력 전부 · 빈 칸 자동값 · 수량 = 이은 칸 · 값 보임 / 손 입력 / 「면적산출에서 잇기」 = 면적산출 상세로) · [확인] = 줄 값만(캐시) · 저장은 [저장].
- 줄 아래 작은 글 「지역 서울 · 규격 25mm · 수량 B6 = 12.5㎡」 · 빈 입력 「빈 값 n」 붉게.
- 금액 칸 넷(노무비 · 재료비 · 경비 · 합계) · 칸마다 두 줄(위 기준 작게 · 아래 반영) · 맨 아래 합계 줄.
- 자재목록 = 코드 · 이름 · 규격 · 단위 · 수량 · 기준 단가 · 반영 금액 · [자재 추가](M01 자재 하나씩 · `M02_Material_Pick.ts`) · 줄 누름 = 수량 모달.
- 다이어그램 = 저장된 줄 값 + calc 답(수량 있으면 반영 · 없으면 기준 · 표기) · 알약 누름 = 입력 모달 · 자재목록 = 카드 하나 → 재료비 칸.
- 보기 갈래(고치기 없음) 부품을 냄 — D 오른쪽 패널 · H 카드가 씀.
- 입력 목록 · 값 받기 부품은 선택 입력에서 옮겨 다시 씀(`M02_Labor_Inputs.py` · `M02_Labor_Values.ts` · `M02_Labor_Values_Model.ts`) · 값 칸 규칙 한 벌(M01 넣을 값) · 로직 입력이 바뀌어 사라진 값은 알림.
- 37장 「미리 보기 값은 구조물 조합으로 안 넘김」 뒤집힘.
## 4. 면적산출 (D · sub3)
- 미리보기 카드 알약 줄 켬끔 단추 · 기본 꺼짐 · pref(계정) · 상세는 늘 보임(단추 없음).
- 상세 오른쪽 패널 = 그 열 일위대가의 담은 로직 + 자재목록(C 보기 갈래 · 기준 · 반영) · 조합 목록 · 찾기 · [이 열에 쓰기] · [조합 고치기] 지움.
- 패널 줄 누름 = 칸 지정 모달(`M02_MasterTemplete_AreaLink.ts` · [지금 고른 칸으로] · 주소 · [풀기]) → 면적 문서 `연결` · spreadsheet 손잡이 `setLink(키, 칸|null, 항목)`.
- 알약 = 로직 물량 알약 + 자재 알약(`자재|MT키` · 알약 모드 「자재」 다시 씀) · 선택 입력 알약 빠짐.
- 면적 금액 서버 계산은 1장 calc 하나(따로 안 만듦).
## 5. 목록 · 고르기 · 카드 (H · sub1)
- 목록 부품 하나 `M02_MasterTemplete_ItemList.ts`(M01 머리 · 쪽 · 표를 import · 옮기지 않음) — 「전체 항목」 · 복사 생성 · 항목 하나 복사가 같이 씀.
- M02 상세 제목 = M01 꼴(18px · 단추 오른쪽) 전부.
- 목록 칸: 도면 = 도번 · 이름 · 폴더 · 단위 · 고친 날 / 면적산출 = 면적번 · … / 일위대가 = 일위대가번 · 이름 · 폴더 · 단위 · 담은 로직 수 · 합계(`계산값` · 없으면 「—」) · 고친 날.
- 「새 항목」 → 상세 칸에 [새로 만들기] [복사 생성] · 복사 생성 = 같은 칸 탭 + 목록 → 지금 보는 층 · 고른 폴더(없으면 맨 위) · 원래 이름(겹치면 「(2)」) · 일위대가 새 번호.
- 카드 = 도면 · 일위대가 · 면적산출 셋(그 차례) · 빈 카드 = [새로 만들기] [복사 생성] · 찬 카드 = 「복사해 가져오기」(창 · 탭 + 목록 → 확인 → 덮어씀 · 번호 · 열 그대로) · 일위대가 카드 몸 = C 보기 갈래.
- 탭 = 마스터 · 회사 · 개인(나) · 다른 사람(드롭다운 · 맡은 회사일 때) · 실무문서(일위대가 고를 때 · 시스템 관리자) · 기본 = 시스템 관리자 마스터 · 그 밖 개인(회사 없으면 마스터) · 탭 목록 = E `readableSources`.
- 항목 하나 복사 서버 = `copy_from` 에 from_layer · from_owner(B 가 만듦) · 원본이 실무문서 조합이면 조합 → 일위대가 문서(입력값 빈 값).
## 6. 권한 (E · sub4)
- 「회사 C 를 맡음」 = 시스템 관리자 · 또는 C 의 회사 관리자 → C 회사 층 · C 모든 개인 층 = 보기 · 만들기 · 고치기 · 지우기 · 복사 대상.
- 일반 = 마스터 · 회사 읽기만 · 남 개인 안 보임 · 나무 그대로 · 프로젝트 apply · sources 도 같은 규칙.
- 사람 나무 = 맡은 회사면 켬 · 회사 사람 전부(나 맨 위 · 빈 사람 「비어 있음」) · 남의 층 첫 쓰기 = 소속 확인 뒤 뼈대.
- 「〇〇로 복사…」 = 쓸 수 있는 층 전부(마스터 · 볼 회사 · 내 개인 · 지금 사람) + 대상 폴더 고르기 창(`M02_MasterTemplete_TreePanel_CopyTo.ts`).
- 남의 층 쓰기 = `system_audit_logs` 한 줄(`M02_OTHER_LAYER_WRITE`).
- 실무문서 = 일위대가 조합 길 전부 시스템 관리자만(서버가 막음).
- 새 길(labor 문서 · calc · pills · 층 넘는 복사)도 `_root` · `_layer_dir` 한 벌을 거침.
## 7. 지우기 (G · sub6)
- G1 자재 조합(UM) · G2 재료산출(`material/` · SM · 카드 · 시트 · 옆 판 · 길 · 시험) 먼저 · G3 선택 입력(카드 · `inputs/` · 자리 · 알약 길)은 C 의 입력 모달이 선 뒤.
- `pickMaterial` · `MaterialItem` → `M02_Material_Pick.ts` 로 옮긴 뒤 지움 · 알약 모드 「자재」 · `LinkMaterial`(A00 spreadsheet) 남김 · `고른자재.json` 남김 · 프로젝트 `입력값.json` 남김.
- storage 층(회사 · 개인 · 프로젝트)의 `material/` · `inputs/` · `자재조합.json` 파일은 지우지 않음(읽기만 끊음 · 정리는 사용자) · git 안 시스템 층 · fixture 는 지움.
- 옛 SM 번호 버림 · 장부 `재료번` 칸은 다음 집계표 [저장] 때 빠짐.
## 8. 파일 주인 (같은 파일 = 몫만 고침 · 받은 뒤 고침)
| 파일 | 주인 | 다른 창 몫 |
| --- | --- | --- |
| `M02_MasterTemplete_Store.py` · `M02_Template_Layers.py` | sub7 | sub6 = material · inputs 줄 |
| `M02_MasterTemplete_Router_Items.py` | sub4(`_root`) | sub7 = copy 길 from_layer · sub6 = material · inputs 길 |
| `M02_MasterTemplete_Router_Combos.py` · `Combo_Store.py` | sub5(나무 길) | sub4 = 시스템 관리자 문 · sub2 = preview 지움 |
| `M02_MasterTemplete_UI_Side.ts` | sub5 | sub6 = material · matset 줄 |
| `M02_MasterTemplete_UI_Page.ts` | sub5 | sub4 = copyTo · sub1 = onAll 이음 |
| `M02_MasterTemplete_UI_Main.ts` | sub3(면적 길) | sub2 = labor 종류 · sub1 = 제목 꼴 · showView · sub6 = material 길 |
| `M02_MasterTemplete_ItemCards.ts` | sub1(카드 셋 · 빈 카드) | sub3 = 알약 켬끔 · sub6 = 재료 · 선택 입력 카드 |
| `M02_MasterTemplete_Structure.ts` | sub3(pillsFor) | sub1 = pickCopy · sub6 = inputs · material |
| `M02_MasterTemplete_TreePanel.ts`(670줄) | sub1(copyIn · 넘으면 `TreePanel_Clip.ts`) | sub5 = 일위대가 전용 칸 지움 · sub4 = 「〇〇로 복사…」 이음 |
| `M02_MasterTemplete_Labor_*.ts` | sub2 | sub5 = `Labor.ts` · `Labor_Tree.ts` 나무 지움 |
| `M02_MasterTemplete_Api_Fetch.ts` | 각자 자기 함수만 | — |
| `A00_Common/spreadsheet/spreadsheet_links.ts` · `spreadsheet.ts` | sub3 | — |
| 공용 메뉴 · 진입(`main.ts` · `cad_host.ts` · `ui_template_context_menu.*` · `ui_template_tree.*` · `spreadsheet_condition.ts` · `spreadsheet_menu.ts`) | sub8 | — |
@@ -0,0 +1,78 @@
# 지난 계획 — 39~41장 (2026-10-04)
M02 구조물 조합 개편(일위대가 = 구조물마다 · 재료산출 · 선택 입력 지움 · 실무문서 · 권한 · 오른쪽 클릭) · 2차 수정(단가산출 로직 · 수량산출 열 · 카드 3열 · 삭제 · 알약 끌어 놓기 · 색) · 면적산출 표 → 도면 표. 검증은 사용자(10-4).
## 32장에서 39 로 넘긴 줄
- [X] 선택 입력 정리(조사 10-1 끝 · 고침은 사용자 지시 뒤) — 일위대가 「넣을 값」과 구조물 「선택 입력」 이름 · 값 칸 규칙 두 벌 · 사라진 입력 안 알림 · 항목마다 자리 다시 고름 · 39 로 넘김(10-4 · 선택 입력 지움 · 값 칸 규칙 한 벌 · 사라진 값 알림은 39-3)
- [X] 로직 지우기 서버 검사가 마스터 층 조합만 봄(10-1 sub4) — 회사 · 개인 조합에 담긴 로직도 막기(`M01_MasterData_Store_Combo.py:194` · `Store_Cache.py:220` · 쉬운 길은 화면에서 미리 찾아 알림) · 39 로 넘김(10-4 · 39-1b 로직 지우기 검사 = 모든 층 labor)
## 39. M02 구조물 조합 개편 (사용자 지시 10-4)
- 사용자 요구 원문 = `docs/raw/M02_구조물조합개편/사용자요구_1004.md`(2 일위대가 → 구조물 조합 하위 · 3 이름 · 4 구분선 · 5 권한 · 6 항목 변경 · 9 오른쪽 클릭)
- 사용자 확정(일위대가): 구조물 조합에 일위대가 · 도면 · 면적산출이 엮임 · 구조물 조합 복사 = 일위대가 새 키(로직 · 값 같이 복사) · 새 구조물 조합 = 미리보기에서 「새로 만들기」 / 「복사 생성」(목록 · 기본 탭 = 일반 개인 · 회사 관리자 개인 · 시스템 관리자 마스터 · 탭으로 다른 곳) · 항목 하나만 다른 것을 복사해 바꿈(저장 뒤에도) · 매칭 안 된 일위대가 조합 = 마스터 「실무문서」 항목으로 따로(나중에 한 번에 지움)
- 사용자 확정(10-4): 원본 단가산출 로직(resources/master_data 로직 · 표 · 요소 · 마스터 일위대가조합.json)은 절대 손대지 않음(읽기만) · 입력값은 사용자 · 설계자가 일위대가에 정해 저장 → 프로젝트로 복사해 씀
- 정함(브레인): 조사 먼저(창마다 자기 몫 · 코드 안 고침) → 브레인이 설계 정함(이 절에 줄 더함) → 구현 · 조사 보고 = 각 창 `tmp/조사_39-0*.md`
- [X] 39-0 조사(보고 여덟 · 정함 = `docs/raw/M02_구조물조합개편/설계_정함.md`) — A 좌측 패널 · 이름 · 구분선(sub5) · B 자료 틀(일위대가 입력값 · 자재목록 · 수량 연결 자리 · sub7) · C 일위대가 상세(sub2) · D 면적산출(sub3) · E 권한(sub4) · F 오른쪽 클릭(sub8) · G 재료산출 · 선택 입력 지우기 영향(sub6) · H 「전체 항목」 목록 화면(sub1)
- [X] 39-9a 오른쪽 클릭 막기(sub8) — 정함(브레인): 공용 진입 한 곳 창 캡처 듣기 · 대상 주소 `/^[bm]\d/` · 글 입력 칸(읽기 전용 포함)은 브라우저 메뉴 살림 · 입력 칸 밖 고른 글은 막음 · CAD 는 cad_host iframe load 때 같은 함수 · 남은 막기 코드 그대로(주석 셋만) · 근거 sub8 `tmp/조사_39-0F.md` — 확인 = 새 시험 test_common_native_menu.py · ORCA `defaultPrevented` 수치(B01 · B05 · B07 · M01 · M02 참 · 입력 칸 · A01 거짓)
- 검증완료(sub8 · 0f8efaa42) — 시험 4 통과 · ORCA 5183 B01 · B05(노선 편집 패널 포함) · B07 · M01 · M02 본문 · 헤더 · 모달 · CAD iframe 리본 · 패널 · 캔버스 막힘 참 · 입력 칸(CAD 안 포함) · A01 거짓 · CAD 오른쪽 단추 확정 그대로
- [X] 39-9b 메뉴 공통 양식(sub8) — 공용 CSS 한 벌(지도 · 표 메뉴 · 나무 메뉴 · 상태줄 흠) · 「한 번에 하나」 장부 합침 · 조건 만들기 = 칸 메뉴 끝 한 줄(가로채기 지움) · 부품 API 합치기는 안 함 — 확인 = 메뉴마다 폭 · 그림자 · 글자 수치 같음 · 스프레드시트 하네스 시험
- 검증완료(sub8 · 277311955) — B04 관 · B05 종단 · 배수 · 3D · 칸 · 상태줄 · M02 나무 · 조건 만들기 메뉴 폭 160 · 글자 13 · 여백 8/12 · 모서리 8 · 그림자 같음(밝음 · 어두움) · 나무 ↔ 칸 메뉴 한 번에 하나 · 시험 52 통과 · 조건 만들기를 쓰는 곳(M01 흐름 식 칸)은 칸 메뉴 없는 미리보기 편집기 → 같은 공용 메뉴에 이 줄만 · 시트 탭 메뉴는 탭 켠 화면이 없어 화면 확인 못 함(같은 부품)
- [X] 39-1a 자료 틀(sub7) — labor 종류 · SU 번호 · 문서 검사 · 계산(기준 ③ 서버 · 반영 ① 짝 · [저장] 때 계산값) · `_PER` 1,000 · calc · pills 길 — 확인 = 새 시험 test_m02_labor_doc.py · 거울 시험 · 기존 store · layers 시험
- [X] 39-1b 옮기기 · 복사 · 프로젝트(sub7) — 옮기기 스크립트(시스템 층 바로 · storage 는 사본 뒤 브레인) · copy_from 층 넘김 + 실무문서 조합 → 일위대가 · 구조물 복사 = 새 SU — 확인 = 옮기기 시험(UP10-000001 → 열 둘) · tree_paste · item 시험
- 검증완료(sub7) — 새 시험 labor_doc 19 · 거울 3 · migrate 4 · labor_copy 6 + store · structure · structure_combo · item_keys · layers_store · tree_paste · combo_layers · combo_branch · item_inputs · layer_access · M01 combo · cache 통과 · typecheck · 8009 실제 길: item1 SU-000001 기준합 2,658,983 · 알약 13 · 칸 값 3 → 수량출처 칸 · 시스템 층 옮김 item1←UA000008 · item3←UA000001 · item2 빈 · storage 층 안 돌림 · B8 은 sub8(39-1c) · 은퇴 길(use-combo · 갈라 내기 · preview)은 화면이 아직 불러 남김 · 로직 지우기 검사는 ecc4a651a 로 먼저 함(39-1d 와 겹침)
- [X] 39-1d 은퇴 · 로직 지우기 검사(sub4) — 로직 지우기 검사 = 모든 층 labor 담은로직 + 실무문서 · 일위대가 갈라 내기 · 키 적기(use-combo) · 조합 고치기 길과 화면 부름 정리(쓰는 곳 0 확인 뒤) · 남의 층 기록 = 성공한 쓰기만 — 확인 = 로직 지우기 시험(회사 · 개인 labor 에 담긴 로직 막힘) · grep 0
- 검증완료 — 로직 지우기 시험(회사 · 개인 · 마스터 labor · 실무문서 → 422 · 어디서 쓰는지 알림 · 다 빼면 지워짐 · 임시 사본) · M01 시험 56 · 조합 층 14 · 권한 · 양식 18 통과 · 남의 층 기록 = 성공한 쓰기만(409 · 403 안 남김)
- [X] 39-1d 남은 은퇴(sub4 · sub3 D3 · sub5 받은 뒤) — 쓰는 곳이 남아 못 지움: 갈라 내기 `branch_combo` · 키 적기 `use_combo`(Branch.py · Router.py · Router_Items 길 · Api_Fetch `branchCombo` · `setColumnCombo` ← Combo.ts · ComboPanel.ts) · `fetchUsableCombos` · `/combos/all` ← ComboPanel · Structure · 조합 만들기 · 지우기 길(POST · DELETE) ← 죽은 Labor_Edit.ts(sub2) · 조합 시험 · `Combo_Store.edit`(sub5) · Labor_Api `newCombo` · `editCombo` · `deleteCombo` · `fetchAllCombos` · `editComboTree*` · `pasteCombos` · `fetchLibLogic` · `fetchLibAuto`(sub2 · sub5)
- 검증완료 — 지움: Branch.py · 갈라 내기 · use-combo(옛 · 층 길) · 조합 만들기 · 지우기 · 알약 두 길 · grep 0 · typecheck · 시험 m01_combo · combo_inputs 29 · combo_layers 9 · combo_branch · layers_store 통과 · 남김: /combos/all · fetchUsableCombos(항목 추가 창 일위대가 고르기 pickCombo) · 집계표 열 「일위대가」 칸(그 창이 씀) · 목록 · 키 읽기(Practice · ItemPick) · 실무문서 통째 지우기 · Combo_Store create · delete · pills(sub5 · 시험 · Labor_Doc 알약)
- [X] 39-1c 프로젝트 층(sub8 · 39-1a 뒤) — 스냅샷 일위대가 = labor 문서 · 입력값.json 첫 값 = labor 입력값 · 단가.json 자재 MT · 계산 반영 같은 함수 · B05 고르기 모달 카드 = 도면 · 일위대가(C 보기 부품) · 면적산출 + 값 카드 — 확인 = item 시험 · 고르기 모달 값 → /calc 합계
- 검증완료(sub8 · e1ad3d362 · 1baf761c4) — 시험 67 통과(새 test_m02_item_labor 5 · picker 20 · copy · inputs) · ORCA 5183 sub8_검증 B05 고르기 모달 카드 도면 · 일위대가 · 면적산출 · 값 넣고 저장 → /calc 반영 합 337,721.97 = 손셈 = 원본 층 계산 · 빈 값 = 멈춘 로직 1 · 빠진 입력 1(붉게) · 저장 안 하고 뒤로 = 버릴지 물음 · 일위대가 쓰기 400 · 밝음 · 어두움
- [X] 39-1e 프로젝트 면적산출 알약 = labor 알약(sub8 · 39-7b 뒤) — 옛 입력연결 알약 대신 스냅샷 labor 알약 · 정함(브레인): 프로젝트 계산은 빠진 입력이면 그 로직 멈춤 그대로(입력 유도 · 원본 층은 자동값) — 확인 = 고르기 모달 면적 편집 알약 수 = labor 알약 수 · sub6 G3(c704f1898)이 함께 바꿈 · 39-8 에서 확인
- [X] 39-0i 통합(sub5) — dev 에 sub2 · sub7 · sub3 · sub1 · sub4 · sub8 합침(Api_Fetch · Store_Cache 로직 지우기 검사 두 벌 → sub4 하나 · Structure.ts import) → sub6 이 자기 충돌 풂 → 모두 받기 · 통합 1 f0b8882a8 · 통합 2(sub6 · sub1) 진행
- [X] 39-2 좌측(sub5) — 일위대가 컨테이너 · 나무 지움 · 하위 차례 도면 → 일위대가 → 면적산출 · 수평선 · 「전체 항목」 줄 · 이름 「일위대가」 · 실무문서 컨테이너(시스템 관리자) · 나무 서버 길 지움 · 대시보드 카드 — 확인 = typecheck · ORCA 5180 줄 수 · 세 역할 화면
- 검증완료(sub5) — typecheck · 고친 시험 · ORCA 5180 시스템 관리자: 하위 차례 · 수평선(밝음 · 어두움) · 전체 항목 셋 · 일위대가 열 줄 3(SU 는 39-1b 옮기기 뒤 · 지금 「없음」) · 실무문서 37 · 상세 · 지우기 물음 취소 · 회사 · 개인 층엔 실무문서 없음 · 회사 관리자 · 일반은 서버 403 시험(계정 화면은 못 봄)
- [X] 39-3 일위대가 상세(sub2) — labor 종류 상세 · 입력 모달 · 작은 글 · 금액 두 줄 · 자재목록 · 미리 보기 지움 · 다이어그램 · 보기 갈래 부품 · 입력 부품 옮김 — 확인 = 거울 · 다이어그램 시험 · ORCA 5177 값 넣고 저장 → 다시 열기
- 검증완료(43a59a689 · d847f724c · 3ad7678e1 · 5b4aed1b2) — 시험 통과 · ORCA 5177 item1: 기준 60,984 × 손 5 = 반영 304,922 · 자재 6,090 × 10 = 60,900 · 합 365,822 = 저장 계산값 · 다시 열어 값 남음 · 범위 밖 · 빈 손 수량 · 같은 로직 막음 · 떠날 때 물음 · 어두움 · 남음 = 읽기만 화면(권한 계정) 미확인 · 검증용 labor/item1.json 지움
- [X] 39-4 면적산출(sub3) — 알약 켬끔(기본 꺼짐) · 오른쪽 패널 = 담은 로직 + 자재목록 · 칸 지정 모달 · setLink · 자재 알약 · 조합 패널 지움 — 확인 = setLink 시험 · ORCA 5178 칸 잇기 → 금액 즉시 · 검증완료(sub3 · 시험 31 · ORCA 5178: 카드 알약 줄 기본 0px → 켬 147px → 다시 열어도 그대로 · 상세 늘 보임 · 오른쪽 패널 로직 14 줄 · C3 = 12.5 잇기 → 반영 726,535 · 20 → 1,162,456 바로 · 「수량 C3 = 12.5」 · 알약 ↔ 모달 같은 연결 · 빈 · 틀린 주소 막음 · 풀기 · 어두움 · 저장 안 하고 옮김 물음 · 옛 조합 패널 쓰는 곳 0) · 검증 대기
- [X] 39-5 목록 · 고르기 · 카드(sub1) — ItemList · 전체 항목 화면 · 상세 제목 M01 꼴 · 새 항목 두 단추 · 복사 생성 탭 · 카드 셋 · 빈 카드 두 단추 · 복사해 가져오기 — 확인 = item_list 시험 · ORCA 5174 복사 생성 → 새 SU
- 검증완료(18a063925 · 134a727c9 · 364d22ff6 · 6cf72bbf1 · 6f8470890 · 6d46dda54) — 시험 통과 · ORCA 5174 마스터: 전체 항목 줄 수 = 좌측 줄 수(3 · 3 · 3) · 제목 18px · 탭 = 시스템 관리자 다섯(기본 마스터) · 일반 셋(기본 개인) · 빈 사람 = 빈 목록 · 복사 생성 item1 → SS000055 · SD-000004 · SA-000004 · SU-000004(로직 14) · 폴더 안 같은 이름 「ㄴㄴ (2)」 · 실무문서 UA000001 → SU-000002 로직 3(번호 그대로) · 개인 → 마스터 면적산출(SA-000002 그대로) · 카드 차례 도면 → 일위대가 → 면적산출 · 어두움 · 마스터 사본 되돌림(차이 0) · 남음 = 재료산출 · 선택 입력 카드 지움은 sub6 받은 뒤 · 읽기만 계정 화면 미확인
- [X] 39-6 권한(sub4) — 맡은 회사 규칙 · 사람 나무 · 첫 쓰기 뼈대 · 「〇〇로 복사…」 폴더 · 감사 기록 · 실무문서 문 · apply · sources · readableSources — 확인 = layer_access · 새 layer_manage 시험 · ORCA 세 계정
- 검증완료 — 시험 layer_access 4 · template_layers · combo_layers 14 · layer_screen(39-6 몫) 통과 · 관련 M02 시험 66 통과 · API 세 계정 25/25 · ORCA 회사 관리자 · 일반 · 시스템 관리자(고객 회사 3) 사람 나무 · 「〇〇로 복사…」 폴더 창 · 밝음 · 어두움 · 쓰기 성공 길은 임시 storage 시험(새 파일 대신 layer_access 에 더함)
- [X] 39-7a 지우기 G1 · G2(sub6) — 자재 조합 · 재료산출 지움 · pickMaterial 옮김 — 확인 = typecheck · check_master · 고친 시험 · ORCA 5181 카드 · 줄
- [X] 39-7b 지우기 G3(sub6 · 39-3 입력 모달 뒤) — 선택 입력 카드 · inputs · 자리 · 알약 길 지움 — 확인 = 프로젝트 고르기 값 → /calc 합계 그대로
- 검증완료(sub6 · 54ce67ceb · 61d2ed599 · 79e4bba1b · c704f1898): typecheck 0 · check_master 틀 0건 · 고친 대상 시험 초록(test_m02_card_shell 1건은 origin/dev 자체 빨강) · ORCA 5181 좌측 = 구조물 도면 · 일위대가 · 면적산출 · 집계표 줄 = 일위대가 · 도면 · 면적산출 · 카드 = 도면 정보 · 면적산출(선택 입력 없음) · 면적산출 편집 알약 = 일위대가 알약 · 옵션 제목 밝음 · 어두움 · /calc = 시험(test_item_copy_complete)으로 · 프로젝트 고르기 모달 면적 알약 = 복사본 labor 알약으로 바꿈(39-1e 몫과 겹침)
- [X] 39-1f 새 항목 창 일위대가 고르기 없앰(sub4) — 새 구조물 일위대가 = 늘 빈 문서 · 카드 [새로 만들기] / [복사 생성] · 열 「일위대가」 새로 쓰기 없앰(든 값은 옮기기 뒤 정리) — 확인 = 창 줄 수 · 새 열 빈 labor · sub4 8087c7306 · 창 칸 둘 · 새 열 labor 빈 문서 · 시험 64
- [X] 39-8 끝 검증 — 흐름 셋(새 구조물 새로 만들기 · 복사 생성 · 항목 하나 복사) × 세 역할 · 일위대가 값 → 금액 · 면적 칸 → 반영 · 실무문서 · storage 옮기기 뒤 확인 · 검증완료(가 sub1 19/22 · 나 sub2 26/27 → 흠 ①~④ · H1~H3 · X3 모두 고침) · main 합침 e6fe5232e · storage 옮기기(브레인 · 사본 tmp/storage_templates_39.zip · labor 5 · 두 번째 「그대로 5」) · 남은 빨강: spreadsheet 늦게 불러오기 시험 1(흐름도 DataFlow · 39 밖) · 검증 대기
- [X] 39-10 요구 대조(브레인 · 사용자 요청 10-4) — 끝난 뒤 사용자 대화 입력 원문(요구 2~6 · 9 · 답 1~4 · 원본 로직 손대지 않음 · 입력값 복사 흐름) 줄마다 반영 여부 · 근거(화면 · 파일 · 수치) 표 · 요구 31 줄 모두 반영(흠 B1~B4 고친 뒤) · 표 = 보고 Artifact · 검증 대기
- [X] 39-11 브레인 실제 검증(사용자 요청 10-4) — 끝난 뒤 브레인이 사용자처럼 브라우저 조작(진짜 마우스 · 사진 · 세 역할) · 보고 Artifact · 세 계정 · 진짜 마우스 · 사진(sub5 서버 s01~s15 · 메인 m01~m04) · 흠 B1(표 일위대가 줄 SU) · B2 · B3(전체 항목 합계 · 단위) · B4(새 항목 단추) 고침 → main 11ef83985 · 저장 안 함 · 검증 대기
## 40. M02 구조물 조합 개편 2차 (사용자 지시 10-4 밤)
- 사용자 요구 원문 = `docs/raw/M02_구조물조합개편/사용자요구_1004_2.md` · 「구조물 옵션 보이기」 칸은 그대로(사용자 확인)
- 정함(브레인): 「담은 로직」 → 「단가산출 로직」(상세 · 카드 · 면적 패널 모두) · 수량산출 열 = 위 결과단위 기준 수량(분모 · 예 「10 ㎡」) · 아래 수량(손 · 칸 · 「—」) · 누르면 [손 입력] / [엑셀에서 고르기](그 열 면적산출 시트 모달 · 칸 누르면 그 로직 알약을 그 칸에 이음 · 일위대가 [저장] 때 면적 문서도 함께 저장) · 버튼 = 공용 버튼 양식 · 카드 단추 「가져오기」 · 「수정」(면적산출 카드도 같은 이름) · 카드 [삭제] = 그 항목 비우기(번호 · 열 그대로 · 물음 한 번) · 일위대가 카드 = 한 줄 표(항목 · 수량산출 · 단위 · 노무비 · 재료비 · 경비 · 합계 · 금액 = 수량 반영 값 · 없으면 기준 값 흐리게) · 알약 색 = 알약 키로 자동(두 테마) · 이은 칸 배경 같은 색 옅게 · 반짝임 그대로
- [X] 40-1 일위대가 상세(sub2) — 이름 「단가산출 로직」 · 「자동값 xx」 조사 → 브레인 정함 → 고침 · 수량산출 열 + 손 입력 · 엑셀 모달 잇기(sub3 부품) · 로직 추가 · 올리기 · 내리기 · 빼기 · 자재 추가 = 버튼 · Labor_View 한 줄 표 갈래(카드용) — 확인 = 시험 · ORCA 수량 칸 손 · 엑셀 고름 → 반영 값 · 저장 → 다시 열기
- 검증완료(1c0868b78 · fd4830556 · e70fc184a · 35ccc26af) — 시험 34 통과 · ORCA 5177 SU-000003: 손 5 → 79,280 × 5 = 396,398 · 엑셀 B6(12.5) → 4,523 × 12.5 = 56,537 · 저장 → 면적 연결 「노체포설|㎥ → B6」 · 손 5 · 반영합 = 화면 · 다시 열기 같음 · 저장 안 하고 떠나면 물음 · 고르기 칸 「자동값」 줄 없음(B05 값 카드 확인 상자 그대로) · 한 줄 표 300~560 · 면적 패널 320~560 가로 넘침 없음 · 밝음 · 어두움 · 검증용 마스터 2 파일 되씀
- [X] 40-2 구조물 조합 상세(sub1) — 카드 단추 「가져오기」 · 「수정」 · 일위대가 카드 한 줄 표(sub2 갈래) · 「새 항목」 버튼 · 카드 셋 3열 · 카드 [삭제](비우기) — 확인 = ORCA 3열 · 삭제 → 빈 카드 · 시험
- 검증완료(74a524202 · e3236558b) — 시험 53 통과 · ORCA 127.0.0.1:5174 폭 1600 = 3열(카드 402px · 높이 628 같음) · 1000 · 400 = 1열 · 가로 넘침 0 · 400 에서 면적 카드 단추 여섯 줄 바꿈(카드 밖 0) · 단추 「수정」 · 「가져오기」 · 「삭제」 · 「새 항목」 높이 32 · 글 14px(저장과 같음) · item1 일위대가 [삭제] → SU-000001 · item1 그대로 · 담은로직 14 → 0 · 빈 카드 두 단추 · 면적산출 [삭제] → SA-000001 그대로 · 칸 · 연결 0 · 일반 계정 마스터 · 회사 카드 단추 0 · 어두움 · 마스터 사본 되씀(차이 0) · 남음 = 도면 [삭제] 는 마스터 도면이 다 비어 화면 확인 못 함(서버 길은 40-4 시험)
- [X] 40-3 면적산출 상세(sub3) — 알약 끌어 칸에 놓기 추가 · 알약 색 자동 · 이은 칸 같은 색 · 반짝임 그대로 · 엑셀 칸 고르기 모달 부품(sub2 용) — 확인 = 끌어 놓기 → 연결 · 색 수치 · 두 테마 · 검증완료(sub3 · 시험 16 + 하네스 15 · ORCA 5178: 칸 고르기 모달 C5 · 풀기 · 그만둠 · 끌어 C3 → 연결 · Ctrl+Z 풂 · F14 에 놓기 = 물음(취소 그대로 · 바꿈 = 갈아끼움) · 색 24 서로 다름 · 테두리 대비 최소 밝음 3.40 · 어두움 3.55 · 글 8.85 · 6.35 · 카드 · 상세 둘 다 · 마스터 변화 0) · 검증 대기
- [X] 40-4 서버 비우기 길(sub7) — 항목(도면 · 일위대가 · 면적산출) 비우기 = 빈 문서로 씀(번호 · 열 그대로 · 권한 규칙 그대로) — 확인 = 시험(세 종류 · 권한 403)
- 검증완료(sub7) — test_m02_part_clear 7(세 종류 빈 문서 = 새 열 꼴 · 번호 · 장부 그대로 · 면적 비우면 일위대가 수량 「없음」 · 일반 마스터 403 · 남의 개인 403 · 회사 관리자 동료 개인 200 · 없는 열 404 · 모르는 종류 422) · typecheck · 00cb6db66 · 화면 함수 clearPart
- [x] 40-5 합치기 · 끝 검증 · 메인 반영 · 브레인 요구 대조 · 실제 검증 · 보고 · main 795b861da(40 · 41 함께 · 흠 D1~D4 고침 · CAD 빌드 · 시험 90) · 끝 검증 · 브레인 실제 검증은 사용자가 하기로(10-4) · 검증 대기
## 41. 면적산출 표 → 도면 표 (사용자 지시 10-4 밤)
- 사용자 요구 원문 = `docs/raw/M02_구조물조합개편/사용자요구_1004_2.md` 끝 「추가 기능」 — 면적산출에서 범위를 골라 도면으로 보내면 도면에 표가 들어가고 칸 내용이 따라감(어려우면 [업데이트] 단추) · 표 여러 개 · 자리는 도면에서 사용자가 끌어 정함
- 정함(브레인): 조사 먼저(CAD 표 · 묶음 꼴 · 호스트 ↔ CAD 메시지 · 끌어 놓기 · 값 따라가기 길) → 브레인이 설계 정함 → 구현 · 원본 단가산출 로직 자료 손대지 않음
- [X] 41-0 조사(sub8) — 보고 `tmp/조사_41-0.md` · 끝(CAD 표 객체 TableEntity 있음 · 미리보기 틀 있음 · DXF 표 빠짐 흠)
- 정함(브레인 · 조사 추천 그대로): 표 = CAD 표 객체(TableEntity · 한 덩어리) · 따라가기 = 면적 [저장] 때 서버가 그 열 도면 표 칸 글을 다시 적음 + 도면을 열 때 기록 값 ≠ 지금 값이면 알림 · [업데이트] · 연결 표지 = 표 style.연결(표 id) · 칸 key 「시트!A1」 · 보낼 꼴 = 표시 글(형식 적용) · 병합 · 가로 정렬 · 굵게 · 열 너비 비율(채움 · 테두리색 · 글자색 안 보냄) · 크기 = 표 글자 크기 하나(기본 2.5 · 보낼 때 바꿀 수 있음) · 넘김 = 같은 페이지 안(캐시 · 서버 안 씀) · 시작은 면적 상세 [도면으로 보내기] 단추(칸 메뉴는 뒤) · DXF 내보내기에 표 = 선 + 글
- [x] 41-1 서버(sub7) — 범위 → 표 칸 변환(Node 묶음 formatValue 다시 씀 · 새 M02_Area_Table.py) · POST /api/m02/layers/{층}/area/{열}/table · 면적 저장 때 도면 표 맞춤(마스터 · 회사 · 개인 층 + 프로젝트 층 길) — 확인 = 시험(형식 · 병합 · 한도 · 권한 · 저장 뒤 표 글 바뀜)
- 검증완료(sub7) — test_m02_area_table 10(형식 「1,234.50」 · 식 칸 · 굵게 · 가로 · 병합 rowSpan · 범위 밖 병합 잘라냄 · 숨긴 행 3 · 열 D 뺌 · 빈 칸 · 한도 171>100 · 없는 시트 · 범위 꼴 · 길 200 · 저장 안 함 · 남의 개인 403 · 없는 열 404 · 면적 저장 뒤 T1 칸 「10.00」 · 자리 · 크기 그대로 · 다른 표 그대로 · 표 없는 T2 기록 값 갱신 · 프로젝트 층 맞춤) + store · structure · template_layers · labor · clear · copy · spreadsheet_store 74 통과 · typecheck · 8009 실제 길 200 · 3ded39875
- [x] 41-2 CAD · 호스트(sub8) — 메시지 place-table · update-table · 「표 놓기」 도구(커서 따라오는 미리보기 · 누르면 놓임 · Esc · 되돌리기) · cad_host · Drawing.ts 함수 · CAD 빌드 · DXF 표 = 선 + 글 — 확인 = vitest · ORCA 놓기 · DXF LINE · TEXT 수
- 검증완료(sub8 · c426fa2ad · 0bc560663 · cc63e49ab · b2aa2a987) — vitest 8(놓기 · 연결 남음 · 칸 갈기 · 넘침 · 없는 연결) · DXF 시험 4(거울 = TS 표 기하 · 면적 표 LINE 13 · TEXT 5 · 정렬 L/C/R · B07 수량표 LINE 7 · TEXT 3 — 전에는 표가 빠짐) · ORCA 5183 M02 도면 상세: 미리보기가 커서 따라옴 · 누르면 놓임(drawing-changed) · Esc 그만 · Ctrl+Z 1→0 · 다시하기 · MOVE(새 id) 뒤 저장 JSON style.연결 T1 남음 · update-table T1 = 1 · 없는 연결 0 · 자리 · 너비 그대로 · 밝음 · 어두움 · 저장 안 하고 나감 · 자동백업 지움
- [x] 41-3 화면(sub5) — 면적 상세 [도면으로 보내기](고른 범위 · 글자 크기) → 그 열 도면 상세로 넘겨 놓기 · [저장] 때 연결표 기록 · 다시 열 때 다름 알림 + [업데이트] · 표 여러 개 — 확인 = ORCA 범위 고름 → 보냄 → 끌어 놓음 → 저장 → 면적 값 바꿔 저장 → 도면 표 글 바뀜
- 검증완료(sub5) — typecheck · test_m02_area_to_drawing 7 · structure_panel · ORCA 5180 마스터: A1:C4 보냄 → 놓음 → 저장(표 T1 · 연결표 T1) · 면적 A1 · B1 · C2(식) 저장 → 도면 표 글 길이 · 12.5 · 25 · 같으면 알림 0 · 기록 값 옛 값이면 「바뀐 표 1개」 + [업데이트] → 저장 값 갱신 · 표 셋(T1~T3 · 글자 5 · 2.5) · T3 지움 → 도면 · 연결표 둘 다 빠짐 · 마스터 사본 되씀(git 빈 상태) · 권한 없는 층 단추 0 은 시험으로만
@@ -0,0 +1,108 @@
# 지난 계획 — 33~38장 (2026-10-01 ~ 10-02)
단가산출 로직 점검(데스크탑 한시) · 쉬운 단가산출 · 로직 만들기 시험판(세 칸 판 · 시트 로직 · 다이어그램) · 흐름도 시험판 · 흐름도 본 프로그램 적용 · 일위대가 조합 다이어그램 · 마스터 요소 화면 손질.
## 33. 단가산출 로직 점검 · 수정 (사용자 + 데스크탑 메인 · 보조 · 10-1 한시)
- 사용자가 데스크탑 메인 · 보조와 직접 진행 · 브레인은 랩탑 sub1~8 로 사용자가 요청하는 다른 일을 맡음(10-1 18:00 무렵까지).
- 근거 = `docs/raw/M01_점검/종합/` · `docs/raw/M01_결정목록/` · `docs/raw/M01_입력목록/` · `docs/raw/M01_고침/`.
## 34. 쉬운 단가산출 제어 (새 길 · 10-1 · 랩탑)
- 사용자 확정(10-1 오전): 만든 쉬운 단가산출은 유지(지우지 않음) · 로직 정의 자체를 만드는 판은 제안만 · 허락 뒤 착수
- 사용자 확정: 지금 단가산출은 그대로 · 「추가」 단추 옆 새 단추로 따로 들어감 · 코드는 `M01_MasterData/EasyCalc/` 한 곳(안 되면 폴더째 지움) · 초등학생도 추가 · 삭제 · 수정 · 시간이 걸려도 검토 먼저.
- 정함(브레인): 새 길은 지금 로직 형식을 그대로 읽고 씀(계산 엔진 안 바꿈) · 폴더 밖 참조는 단추 자리 한 곳만.
- [x] 34-1 검토 — 데이터 · 계산 지도(sub4) · 지금 화면 걸음 재기(sub6) · 실무 모양 + 갈래 비교(sub7) · 지난 시도(sub8) → `docs/raw/M01_쉬운단가/` · 지금 화면 새 로직 38 누름 · 5~6 창
- [x] 34-2 설계 확정(브레인) — 문장 카드 · 품셈 기본은 「이걸 바탕으로 고치기」 · 쓰기는 `/logic/*` 만 · 1단계 숫자 수량 + 잠금 카드 → `docs/raw/M01_쉬운단가/설계.md`
- [x] 34-3a 단추 + 빈 창(sub1 · 「식으로 새로 만들기」 옆) 검증완료
- [x] 34-3b 1단계 — Model(sub7) · Api(sub4) · Cards(sub2) · Pick(sub3) · Sheet(sub5) · 틀 · 잇기(sub1) — 설계.md 2 · 3절 · Sheet 검증완료 · Model 검증완료 · Api 검증완료 · Pick 검증완료
- [x] 34-3c 2단계 — 표 보고 고르기(sub8) · 조건 고치기(sub7 · 조건 줄 93% 읽음) 검증완료 · 카드 단추 잇기(sub2) · 조건 고치기 검증완료
- [x] 34-4 검증 — 대표 일 여섯 + 예외(빈 값 · 같은 이름 · 저장 안 하고 닫기 · 권한 없음 · 밝음 · 어두움) · 지우기 시험(폴더 밖 참조 줄 수) · 걸음(sub3 고침 뒤) ①21 ②8 ③2 ④4 ⑤2 ⑥3 = 40(목표 36 넘음 4 · ① 새 설계 값 자동값으로 채워 금액 곧장 보임) · 다른 일위대가 넣고 저장 됨 · 권한 없음(일반 사용자) = M01 화면 못 들어감 · /api/m01 403 · 폴더 밖 참조 두 줄 · 검증완료
## 35. 단가산출 로직 만들기 판 (제안 단계 · 착수 전)
- 사용자 확정: 쉬운 단가산출처럼 따로 폴더 시험판 · 로직 몇 개 골라 만듦 · 페이지 보고 판단(마음에 안 들면 지움) · **착수는 허락 뒤** · 인터넷 조사 먼저 · 화면 용어는 단어로 다시 제안.
- 제안서 https://claude.ai/artifact/U4rkgpYWL4Em5VKBEVa4oY (세 칸: 원문 표 · 산출 과정 · 결과)
- [x] 35-0 인터넷 조사 — 견적 프로그램(sub6) · 노코드 규칙 도구(sub8) → `docs/raw/M01_쉬운단가/로직판_조사_*.md` · 제안서 2판에 반영
- [x] 35-1 용어 단어 제안(제안서 2판 「용어 — 단어로」) → 사용자 확정 · 완료 처리(10-4): 시험판 지움(35-9)으로 접음
- [x] 35-2 시험판 — 사용자 허락(10-1 · 갈래가 여럿이면 갈래마다 · 목적 = 코딩 없이 원문 보며 확인 · 수정 · 생성) · A 세 칸 판 `LogicBuilder/` · B 엑셀 시트형(우리 스프레드시트) · 먼저 조사: 엑셀 로직 지도(sub4) · A 설계 초안(sub7) → 브레인 A 대 B 판단 → 구현 · 완료 처리(10-4): 35-2a 로 함
- [x] 35-2a A 세 칸 판(가운데 문장 / 격자 두 보기) — 정함 `docs/raw/M01_쉬운단가/로직판_A_정함.md` · Blocks(sub7) · 서버 · Api(sub4) · 원문 · 검사(sub8) · 문장(sub2) · 격자(sub5) · 단계 안내(sub3) · 틀 · 잇기 · 끝 검증(sub1) · LB 서버 검증완료 · Blocks 검증완료 · Grid 검증완료 · Steps 검증완료 · Source · Check 검증완료 · Wizard 검증완료 · 잇기 · 끝 검증완료(sub1) — ① 원문 대조 6/6 블록 읽힘 · 걸린 줄 · 출처 보임 ② GF000219 표 칸 0.15→0.20 = 79,280→96,759 원(예상과 같음) · 파일 안 바뀜 · 다시 열면 0.15 ③ 단계 안내 11 걸음 + 저장 → 현장 다시 열림 60,984 원(/calc 같음) → 삭제 2 걸음 ④ 빈틈 해당 없음 10 · 못 따진 표 조회 1 · 기대값 시험표 맞음/다름 · 화면 초안만 ⑤ 표 고침 없을 때 lb/calc = /calc 8/8 · 문장 ↔ 격자 같은 값 · 예외(빈 이름 · 저장 안 하고 닫기 · Ctrl+Z · Ctrl+S · 권한 없음 403 · 밝음 · 어두움) · 폴더 밖 참조 LogicLab.ts 두 줄 + main.py 등록 한 줄
- [x] 35-2b 남은 것(사용자 판단 뒤) — 문장 / 격자 고르기 · 표 칸 고침 저장 여부 · 적용 품셈 판 · 용어 · 칸 역할 「결과」 바꾸기 · 단계 안내 고르기 창 수량 물음 · GX000001(메인 11:53 · 12:02) 주인 확인 · 보고 https://claude.ai/artifact/NqKfHaJULcQo6dSvnsxy1n · 완료 처리(10-4): 시험판 지움(35-9)으로 접음
- [x] 35-3 점검(확인만) — 표끼리의 관계(로직) 자체를 초등학생이 만들고 · 바꾸고 · 지울 수 있나 · 품셈에 없는 관계 더하기 · 시나리오 여섯(sub6) — 결과: 있는 관계의 값만 고침(초등 중) · 관계 더하기 · 지우기 · 다시 잇기 · 새 입력값 · 새 표 · 로직끼리 바꾸기 안 됨 · 문턱만 바꾸면 계산 멈춤 + 엉뚱한 알림 · `docs/raw/M01_쉬운단가/로직판_관계제어_점검.md`
- [x] 35-4 다이어그램 제안(사용자 생각 10-1) — 상자 = 표 · 입력값 · 고정값 · 계산 · 항목 · 다른 로직 · 결과를 직접 다룸 · 선 = 관계를 만듦 · 품셈에 안 묶임(사용자 표 · 사용자 관계) · 관계 제어 = 다이어그램(사용자) · 위 가로 띠 + 아래 고른 상자 다루기 · 결과 · 관계 = 진짜 엑셀 수식(칸 주소 · 함수 · 사용자 확정) · 알약 = 입출력 칸 표시 · 새 종류 「시트 로직」(TS 엔진 한 벌 · 서버 Node) · 제안서 https://claude.ai/artifact/4iCAGPhE9maauGNTkXg5he · 허락 전 착수 금지 · 완료 처리(10-4): 35-5 · 35-7 로 함
- [x] 35-5 시트 로직 시험판(사용자 허락 10-1 오후) — 위 가로 다이어그램 · 상자 = 시트 · 관계 = 엑셀 수식 · 입출력 = 알약 · 저장 = `M01_MasterData/SheetLogic/_data/`(git 밖 · 폴더째 지움) · 정함 `docs/raw/M01_쉬운단가/시트로직_정함.md` · Model · Eval(sub7) · 서버 · Api(sub4) · Diagram(sub8) · Panel(sub2) · Table(sub3) · Item · Result(sub5) · Import(sub6) · 틀 · 잇기 · 끝 검증(sub1) · SL 서버 검증완료 · Model 검증완료 · Diagram 검증완료 · Item · Result 검증완료 · Table 검증완료 · Import 검증완료 · 잇기 · 끝 검증완료(sub1) — 걸음: S1 ①②③ 각 3(79,280 · 73,085 손셈 같음 · 2.5m 문턱은 품셈 표 3m 부터라 2.5~3m 해당 없음) · S2 ① 3 ② 4(찰쌓기 표로) ③ 5 · S3 ① 약 19(경사 급 65,018) ② 9(내 표 붙여넣기 · 할증 10) ③ 7(잡재료 2% 17,551) · S4 선 끊기 2 · 상자 지우기 2(물음 한 번) · Ctrl+Z 되돌림 · S5 0(상자 · 선 · 값 한 장 · 고르면 이어진 선 진하게) · S6 항목 일위대가 11 · 다른 로직 상자 13(덤프트럭 16.2) · 새 로직(품셈 없이) 25 걸음 → 저장 서버 36,000 = 화면 → 다시 열림 → 지우기 2 · 서버 = 화면 4/4(36,000 · 17,550.9 · 10.12 · 다시 열기) · 가져오기 6/6 /calc 같음(0 · 60,984/79,280 · 2,064,816 · 670 · 16.2 · 57,516) · 예외(빈 이름 · 같은 상자 · 순환 · 빈 입력 물음 · 저장 안 하고 닫기 · 권한 없음 sl 5/5 403 · 밝음 · 어두움) · 세 칸 안쪽 세로 밀기 없음(6개 모든 상자) · 폴더 밖 참조 LogicLab.ts 2 + main.py 1 · _data 비움 · 남은 흠(다른 창): 가져온 표 상자 + 결과 칸 목록 예시값이 글자로 들어가 30 등에서 해당 없음(sub5) · 가져온 로직 화면 번호 · 자재 검색어 · 끝 검증완료(S1~S6 · 새 로직 · 서버 = 화면 4/4 · 가져오기 6/6) · 남은 흠: 결과 칸 예시값 선택이 글자 「30」 으로 들어가 표 찾기 해당 없음(sub5 · 사용자 지시 뒤)
- [x] 35-5a 사용자 요청 — 다이어그램 띠 · 고른 상자 시트 · 결과 높이를 안쪽 세로 스크롤이 없을 때까지(sub1)
- [x] 35-6 로직 문법 먼저(사용자 방향 10-1 14시 무렵 · 화면보다 로직) — 바탕 표(인력 378 · 재료 30,767 · 기계 654 · 소요량 2,535 · 계수 498 · 환율 · 요율 · 사용자 표 — 보기 · 만들기 · 비목은 표가 정함) · 단위 넷(값 · 표 · 정보 · 요소) + 묶음(세분화 · 묶기 · 분류 · 묶음째 잇기 · 겹 묶음 · 틀 다시 쓰기) · 흐름 셋(정보 만들기 · 잇기[그대로 · 바꿔서 · 갈라서 · 모아서 · 묶음째] · 내기) · 확인 도구 · 제안서 https://claude.ai/artifact/BFWvm1Q4fhCSZ4Rt34UgYY · 다음 = 문법 확정 → 종이 연습(절 10개) — 허락 전 착수 금지 · 완료 처리(10-4): 35-7 · 35-9 흐름도로 갈음
- [x] 35-5b 단추 공용 양식(점검 끝 · 고침은 사용자 지시 뒤) — 날 단추 23(목록 줄 8 · 칩 · 역할 · 보기 바꿈 11 · ▾ 2 …) · sm 단추를 44px 로 덮기 3 · 큰 시작 56px 3 · `docs/raw/M01_쉬운단가/시험판_단추_점검.md` · 완료 처리(10-4): 시험판 지움(35-9)으로 접음
- [x] 35-7 단가산출 다이어그램 시험판(사용자 기준 10-1 14시 무렵) — 입력 · 함수 · 출력 상자 · 자유 배치 · 함수 = 엑셀 · 출력 하나 · 출력 = 비용 종류 · 원가 · 폴더 `M02_MasterTemplete/CostFlow/`(_data · _sample) · 정함 `docs/raw/M01_쉬운단가/원가다이어그램_정함.md` · Model · Eval(sub7) · 서버(sub4) · Diagram(sub8) · 함수 판(sub2) · 입력 판(sub3) · 출력 · 원가(sub5) · 견본(sub6) · 단추 · 페이지 · 잇기 · 끝 검증(sub1) · Model 검증완료 · Output · Summary 검증완료 · Sample 검증완료 · FuncPanel 검증완료 · Diagram 검증완료 · CF 서버 검증완료 · InputPanel 검증완료(사용자 요소 만들기는 서버 Api 가 main 에 오면 확인) · 잇기 · 끝 검증완료(sub1) — ① 빈 판에서 손으로 메쌓기 꼴(변수 4 · 소요량 표 2 · 인력 2 · 함수 증가율 → 석공 / 보통인부 병렬 · 출력 노무비 2) 9 상자 · 약 138 손놀림 → 원가 148,471 = 견본(증가율 40 · 석공 97,882.512 · 보통인부 50,587.992 손셈 같음) ② 비용 종류 바꾸면 148,471 이 노무비 → 경비 → 재료비 로 옮겨감 · 「값」 이면 원가에서 빠짐(각 1 걸음) ③ 상자 끌어 옮김(1520,190 → 1675,306) · 저장 → 다시 열면 그대로 ④ 함수 출력 하나(다른 칸 고르면 옮겨감 · 알약 하나) · 순환 막힘 · 출력에서 나가는 선 없음 · 빈 받는 자리는 저장 때 물음 ⑤ 사용자 요소(시험 보조공 200,000) 5 걸음 · 마스터 그대로 · _data 에만 ⑥ 저장 때 서버 = 화면 2/2(148,470.504) ⑦ 단위 오른쪽 위(- → 원/㎡) · 색 바꾸기(Entry 판 머리) · 「다이어그램」 이름 · 다이어그램 726px · 안쪽 스크롤은 함수 격자(가상 200줄)만 · 밝음 · 어두움 · 권한 없음(cf 길 6/6 403 · 화면 못 들어감) · 견본 셋 = /calc · 손셈(148,471 · 3,000 · 15.552) · 폴더 밖 참조 LogicLab.ts 2 + main.py 1 · _data 비움 · 끝 검증완료(손으로 메쌓기 9 상자 = 견본 148,471 · 비용 종류 옮김 · 자리 저장 · 규칙 · 사용자 요소 · 서버 = 화면 · 견본 셋 손셈) · 함수 출력 기본 이름 겹침 고침(sub7 2be767d18) · 남은 것: M01 단가산출 단추 줄이 셋째 줄까지(시험판 단추 넷 · 사용자 결정)
- [x] 35-7a 브레인 실제 검증(10-1 16:45) 흠 여섯 고침 — ① 고칠 것 칸 지난 경고 · ⑥ 시험판 단추 「시험판 ▾」 로 묶기(sub1) · ② 알약 쉼표 · ③ 표 알약 글 · ⑤ 맞춤 확대 90% 아래 안 감(sub8) · ④ 입력 상자 공통 단위(sub3) · 다시 검증완료(16:55 · 고칠 것 칸 비어 있음 · 알약 쉼표 · 표 · 40줄 · 인력 원/일 · 확대 90% · 막대 한 줄 · 시험판 ▾ 넷 · 원가 148,471)
## 35-8. 단가산출 다이어그램 2판 — 재료 선택 자리 · 선 규칙 (계획 · 허락 전)
- 사용자 확정: 고르는 방식은 재료만(다른 그룹은 상자를 늘림) · 설계 때 입력은 오른쪽 아래 검증 칸 · 나중에 프로젝트에서 일위대가로 쓸 때 재료는 목록에서 고르거나 단일 값 · 표에 따라 출력을 가르는 것은 엑셀 수식 대신 선 규칙.
- 정함(브레인): 재료 요소 = 고정 · 선택 자리 · 조건 찾기 · 알약 이름 = 자리 이름 · 선 규칙 = 선 하나에 하나(표에서 찾기 · 조건 통과 · 바꾸기) · 규칙은 받는 칸 엑셀 수식으로 바뀌어 엔진 한 벌 · 선 위 규칙 글 늘 보임.
- [x] 35-8a 틀(Model) — 재료 요소 방식 · 범위(구분 · 상세구분 · 찾는 말) · 조건(규격 ← 알약) · 기본 품목 · 선 규칙 칸 · 규칙 → 받는 칸 수식 · 조건 선 겹침 · 안 맞음 검사 — node 시험(sub7) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8b 서버 — 선택 자리 기본 품목 · 조건 찾기 단가(맞음 0 · 여럿 알림) · 「설계 때 정할 것」 목록(변수 + 재료 자리) 내보내기 — 시험(sub4) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8c 입력 판 — 재료 방식 · 범위 · 조건 규칙 · 기본 품목 · 찾기 고침(쪽 넘기기 · 띄어쓰기 AND · 규격까지) — ORCA(sub3) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8d 검증 칸 — 재료 선택 자리를 변수처럼(범위 안 목록 고르기 · 찾기) · 조건 자리는 잡힌 품목 표시 — ORCA(sub5) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8e 선 규칙 — 선 위 규칙 글 · 선 누르면 아래 판에서 규칙 고르기(표 찾기: 조건 칸 ↔ 알약 · 꺼낼 칸 / 조건 통과: 알약 · 같음 · 다름 · 이상 · 이하 · 값 / 바꾸기: × · ÷ · +% · 단위 · 끝수) · 고른 상자 판에 들어오는 선 규칙 목록 — ORCA(sub8 · 판 sub2) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8f 견본 · 끝 검증 — 견본 둘 더(지반에 따라 굴삭기 / 브레이커 가르기 · 흄관 관경 조건 찾기) · 사용자처럼: 함수 상자 없이 표 찾기 · 가르기 · 검증 칸에서 재료 고르기 · 방법 걸음 수(sub6 견본 · sub1 잇기 · 끝 검증) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8g 다이어그램 마우스 — 판 옮기기 = 가운데 단추 끌기 · 고르기 = 왼쪽 누름 · 왼쪽 끌기로 글자가 선택되지 않음(다이어그램 영역 글자 선택 막음) · 상자 옮기기는 상자 머리 왼쪽 끌기 그대로 — ORCA(sub8) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8h 「고른 상자」 → 「상세 내용」 · 상자뿐 아니라 알약 · 선을 골라도 내용이 바뀜(알약 = 값 · 단위 · 어디서 오나 · 어디로 가나 / 선 = 선 규칙 고르기) — ORCA(sub1 잇기 · 알약 · 선 판 sub2) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8i 상세 내용 단추 · 칸 크기 — 함수 판 꾸밈이 공용 작은 단추를 44px 로 덮는 줄(`M02_CF_FuncPanel.css` `.m01-cfpanel .ui-btn …`)을 지우고 판 안 단추를 모두 공용 작은 크기(createButton size "sm")로 · 입력 · 고르기 칸도 공용 크기 — ORCA 수치(sub2 · sub3 · sub5 각자 판) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8j 상세 내용 머리 — 왼쪽 「상세 내용」 · 오른쪽에 고른 상자 제목 · 알약을 골랐으면 그 오른쪽에 알약 이름(예 「높이 증가율 찾기 › 증가율」) · 상세 내용 안 칸 차례 정리(머리 · 상자 설정 · 본문 · 경고) — ORCA(sub1) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8k 단위는 고르기 — 단위 칸을 목록 고르기로(치면 걸러져 보이고 고르기는 사용자 · 손으로 쓴 글은 안 받음) · 목록 = 단위 표준(35-8l) 단위 + 마스터 결과단위 + 금액 단위(원) · 「-」 = 없음 · 함수 · 출력 · 변수 · 사용자 요소 단위 모두 같은 고르기 — 공용 고르기 파일 `M02_CF_UnitPick.ts`(sub2) · 판마다 바꿔 끼움(sub2 · sub3 · sub5) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8l 단위 표준 표 — 산림품셈 1-2-2 「설계서의 단위 및 소수의 표준」(원문 `resources/knowledge/original/원가계산/산림_표준품셈/본문/제01장_적용기준/1-02_설계_및_수량.md` · 종목 약 70 · 규격 단위 · 소수자리 · 단위수량 단위 · 소수자리 · 비고 · 주 ①~③)을 표로 — 소수자리 「-」 = 0 · 단위 「-」 = 없음 · 원문 흠은 사용자가 고침(시험판에서 보고 고치는 표 · 저장 `CostFlow/_data` · 처음 값 `CostFlow/_standard/`) — 시험(sub6) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8m 금액 단위 표준 — 같은 절 「금액의 단위표준」(설계서 총액 1,000원 · 소계 · 금액란 · 일위대가표 계금 1원 · 일위대가표 금액란 0.1원 · 모두 미만 버림)을 같은 표 자리에 — 출력 상자(비용) 금액 기본 = 일위대가표 금액란 0.1원 미만 버림 · 원가 합계 기본 = 계금 1원 미만 버림 · 바꿀 수 있음(sub6 표 · sub5 출력 · 원가) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8n 끝수 고르기 — 함수 상자 출력 · 출력 상자에 「끝수」(소수자리 · 반올림 / 올림 / 버림) · 단위를 고르면 단위 표준에서 소수자리를 제안(주 ① 반올림 · ② 항목 값이 우선) · 고른 끝수는 출력 칸 수식(ROUND 계열)으로 — 엔진 한 벌(sub7 틀 · sub2 함수 판 · sub5 출력 판) · 완료 처리(10-4): 35-9 에서 함
- [x] 35-8o 로직끼리 잇기 · 흐름 따라가기 — 저장한 다른 로직을 입력 상자로 불러 그 출력 알약을 받음(일위대가 → 일위대가) · 알약 · 선을 고르면 값이 어디서 와서(출처 사슬) 어디로 가는지(가는 곳) 다이어그램에서 길을 칠하고 상세 내용에 줄로 · 값이 끊긴 곳(빈 받는 자리 · 통과 안 된 조건 · 표에 없는 조건) 표시 — 시험 · ORCA(sub7 틀 · sub8 다이어그램 · sub1 상세 내용) · 완료 처리(10-4): 35-9 에서 함
- 차례(사용자 10-1 · 「데이터의 흐름과 값의 연결에 집중」): **1단계 = 흐름 · 연결** a 틀 · b 서버 · e 선 규칙 · o 로직끼리 · 흐름 따라가기 · h 알약 · 선 고르기 · c · d 재료 자리 · f 견본 · 끝 검증(흐름 기준 — 값이 어디서 와서 어떤 규칙을 지나 어디로 가는지) / **2단계 = 값의 뜻 · 보기** k 단위 고르기 · l 단위 표준 · m 금액 표준 · n 끝수 · j 머리 · g 마우스 · i 단추
## 35-9. 단가산출 흐름도 시험판 (사용자 지시 10-1 17시 무렵 · 브레인이 끝까지 · 35-8 전체)
- 사용자 확정: 브레인이 전체 제어해 새 시험판 하나 · 단가산출 다이어그램(시험)만 남기고 옛 시험판 셋 삭제 · 새 폴더(필요 없으면 바로 지움) · 데이터 흐름 · 값 연결 먼저 · 자유도 높고 이해하기 쉬운 화면 · 끝까지 구현 · 검증.
- 정함 `docs/raw/M01_쉬운단가/흐름도_정함.md` · 폴더 `M02_MasterTemplete/DataFlow/`
- [x] 35-9 창 여덟 — 옮기기 · Model · Eval(sub7) · 옛 시험판 지우기 · 들어가는 길 · 상세 내용 머리 · 잇기 · 끝 검증(sub1) · 서버(sub4) · 다이어그램(sub8) · 상세 내용 판 · 단위 고르기(sub2) · 입력 판(sub3) · 출력 · 검증 칸(sub5) · 표준 표 · 견본(sub6) · 표준 · 견본 검증완료 · Model 검증완료 · 출력 · 검증 칸 검증완료 · Diagram 검증완료 · 입력 판 검증완료(서버 자재 찾기 · UnitPick 이 main 에 오면 다시 확인) · DF 서버 검증완료 · 잇기 · 끝 검증완료(sub1) — ① 빈 판에서 함수 상자 없이 네 흐름 73 걸음: 재료 조건 찾기(관경 → 흄관 자리 · 13 개 중 하나 · 125,870) 21 · 선 규칙 표에서 찾기(높이 증가율표 → 출력) 19 · 조건 통과 두 갈래(지반 = / ≠ 토사) 27 · 다른 로직 잇기(견본 지반 · 지반 알약 이음) 6 ② 알약 · 선 고름 → 온 길 · 가는 길 칠함 + 상세 내용 줄(지반 → 다른 로직 · 두 조건 선 · 흄관 ← 관경) ③ 끊긴 곳 넷 보임(빈 받는 자리 · 통과 안 됨 · 표에 맞는 줄 없음 · 맞는 재료 없음 — 알약 · 선 「!」 · 끊긴 곳 줄 누르면 그 자리 고름) ④ 검증 칸 관경 600 → 800 = Φ800 품목 215,530 · 지반 토사 → 암 = 내 두 갈래 뒤집힘 + 다른 로직 2,000 → 10,000 · 다른 로직 설계 값 바꿈 10,000 → 20,000 ⑤ 단위 고르기 「mm」 = 3 개로 걸러짐 · 손글 안 받음 · 끝수 80,000.37 = 기본 225,870 / 1원 올림 225,871 · 표준 표 고침 저장(3 → 2) → 처음 값으로 되돌림 ⑥ 가운데 끌기 = 판 옮김(−60, −30) · 왼쪽 끌기 = 판 그대로 · 글자 선택 막힘 · 단추 18px 모두 sm · 칸 30px ⑦ 저장 → 다시 열기 = 상자 9 · 선 6 · 자리 · 규칙 글 그대로 · 서버 다시 셈 = 화면 187,910 · 견본 다섯 사본 저장 서버 = 화면(148,470.504 · 2,000 · 84,680 · 3,216.6 · 값 15.552) · 밝음 · 어두움 · 로그인 없음 df 길 6/6 401(관리자 아닌 계정 403 은 계정 없어 못 함) · 폴더 밖 참조 LogicLab.ts 2 + main.py 1 · _data 비움 · 검증 중 고친 내 흠(047f3a279 · 28469de62): 재료 조건 찾기 · 선택 자리 값을 서버에 안 물음(흄관 견본 관경 600 → 400 = 211,700 → 116,600 · 1m 84,680 → 46,640 · 1000 = 235,120 · 선택 자리 Φ600 → Φ400 = 211,700 → 116,600) · 「상자 이름」 칸(입력 · 함수 · 같은 이름 · 빈 이름 막음 · 출력은 출력 판) · 머리 이름 · 단위 칸 작은 크기(30px) · 「새로 만들기」 단추 76px(칸 폭 710 아님) · 표준 표 모달 제목 한 번 · 남은 흠(sub2): 선 규칙 표에서 찾기 조건 칸에 범위 이름(「높이」)이 없어 범위 찾기를 화면에서 못 만듦(높이 5 → 줄 없음 · 4 만 맞음) · 브레인 실제 검증완료(흠 14 고침 · 흐름도 시험 81 · 견본 다섯 서버 = 화면 · 보고 JgfqRzLPYgqXG7vB2cV1Yj) · 검증 대기
## 36. 단가산출 흐름도 본 프로그램 적용 (사용자 지시 10-1 21:40 · 결정 반영 22시 · 착수 승인 22:20 · 밤새 진행 · 아침 보고)
- 사용자 확정: 흐름도 = 최종 · 로직 목록에서 로직을 열면 지금 내용 그대로 + 오른쪽 흐름도 패널(같은 로직) · 「식으로 새로 만들기」 지우고 「신규 로직」(흐름도 새로 만들기) · 「본떠 만들기」 → 「로직 복사/생성」(신규 로직 오른쪽) · 시험판 단추 · 입구 지움 · DataFlow 폴더 유지.
- 근거(마스터 로직 57 파일 · 1,472 로직 · 입력 3,518 · 중간 식 3,168 · 호표 줄 5,265): 식 말 = 찾기(표 · 조건 · 칸) 8,152 · 만약 3,532 · 또는 185 · 최대/최소 173 · 올림/반올림/버림 141 · 로직() 41 → 흐름도 표에서 찾기 · 조건 · 함수 · 다른 로직 입력으로 옮길 수 있음.
- 사용자 결정 D1(그대로): 「품셈원문도 제대로 구현된게 아니기 때문에 내가 흐름도까지 만들어서 로직을 볼려는 거잖아. 그러니 당연히 둘다 같은 내용 … 원문과 대조하면서 검증할때 잘못된게 있으면 흐름도에서 수정할거야」 → 한 로직 · 두 보기: 왼쪽 지금 내용 = 보기 · 고치기는 흐름도(공용 로직 포함 · 시스템 관리자) · 흐름도로 저장한 로직은 흐름도가 정본 · 왼쪽은 흐름도에서 만든 같은 꼴 · 아직 저장 안 한 로직은 지금 내용에서 자동으로 그린 흐름도(값 대조로 같음).
- 사용자 결정 D2(그대로): 「흐름에 대한 로직은 costflow폴더에 있을테니 일단은 그냥 두고 쓸대없는 견본과 버튼만 삭제」 → CostFlow 폴더 그대로 · 시험판 단추 · 견본 목록 지움(흐름도는 DataFlow 폴더만으로 돌아감 · CostFlow 를 부르지 않음).
- 사용자 결정(함수 상자): 「함수박스를 기준으로 하나의 결과가 나가는게 맞는것같아. 여러개가 동시에 나가면 혼란만 가중」 → 함수 상자 하나 = 결과 알약 하나(그대로) · 식은 상자 겉에 넣지 않음(상자가 커짐) · 함수 상자 · 선을 고르면 상세 내용에 사칙연산 · 조건이 보이고 고치면 바로 따라감.
- 칸 연결 = M02 방식 그대로(칸을 고른 채 알약을 눌러 하나씩 연결 · 식은 칸 주소 · `spreadsheet_links.ts` 직접 확인) · 계산 엔진 · 이름 풀기 · 이름 규칙 없음 — 보기만 칸 주소를 연결된 알약 이름으로 바꿈.
- 사용자 결정(조건): 「조건문은 현재를 유지하는게 보기 편한것같고 대신 어떤값을 지정할지는 입력된 리스트에서 선택 … 조건 값을 내가 넣으면 오기 … 복수 조건문도 넣어주고」 · 「조건 만들기도 엑셀 기능 내부에서 존재해야해」 → 선 조건은 지금 웹앱 모양 · 조건 값은 고른 알약이 가질 수 있는 값 목록에서 고름(변수 고르기 · 표 칸 값 · 재료 규격 등 · 목록이 없는 수는 숫자 칸 + 범위 검사) · 조건 여러 줄(그리고 / 또는) · 함수 상자 엑셀 시트 안 「조건 만들기」(칸 고름 → 만약 · 아니면 만약 · 아니면 줄 → 그 칸에 IF 식 · 값은 같은 목록에서 고름).
- 안전: 화면 시험 저장은 마스터 사본 폴더에서만(서버가 환경 변수로 사본 폴더를 씀 · 실제 resources/master_data 는 안 바뀜 · git status 로 확인).
- 창: sub2 36-0(판 · 조건 만들기) · sub7 36-0b(조건 틀 · 값 목록) → 36-2 · sub6 36-1 → 36-7 · sub8 36-3 · sub4 36-4 서버 · 사본 폴더 · sub5 36-4 왼쪽 보기 · sub1 36-5 · 잇기 · 36-8 · sub3 36-6
- 브레인 정함(조사 뒤 · 아침 보고에 알림): 옛 로직 「기계 · 직종 · 유가 자리」(EQ:{기계} · LB:{직종} · MO:경유:{지역} · 입력값으로 요소를 고름 · 71 로직)는 새 모드 없이 이미 있는 「조건 찾기」(이름 · 키 같음 · 변수 알약)를 인력 · 기계 · 유가 요소에도 씀 · 대조 입력 = check_master.시험입력 · 로직 셈을 부르는 곳(Store.calc · text · master_combo.run · M02_Item_Prices.calc · /logic/auto)은 한 곳에서 흐름 갈래.
- [x] 36-0 함수 상자 안 보기 · 칸 연결 조정(36-2 보다 먼저) — ① 상세 내용 「식 보기」: 결과 칸 식을 칸 주소 → 연결된 알약 이름으로(예: 1m 재료비 = 흄관 단가 ÷ 2.5) + 값 들어간 식(= 211,700 ÷ 2.5 = 84,680) · IF 는 만약 / 아니면 줄 · 지금 타는 갈래 표시 · 중간 칸 식도 차례대로 · 칸 식을 고치면 바로 다시 셈 → 다이어그램 · 원가 따라감 ② 「칸 연결 표」(칸 · 연결 알약 · 입력 / 결과 · 이어진 선 · 표에서 바로 바꿈 · 풀기) + 칸 색(입력 파랑 · 결과 초록 · 상자 색과 같음) · 결과 칸 하나 ③ 선을 고르면 그 선 규칙도 같은 「식 보기」 꼴(예: 굴착량 → 지반 = 토사 일 때만 → 굴삭기로 파기) ④ 엑셀 시트 안 「조건 만들기」 — 칸을 고르고 열면 만약 [알약] [비교] [값 고르기] → [알약 · 값] 줄 · 아니면 만약 더하기 · 아니면 → 그 칸에 IF 식(엑셀로 쓴 IF 도 같은 줄로 다시 열림 · 못 바꾸는 식은 식 그대로) · 검증완료(sub2 · 식 보기 · 칸 연결 표 · 조건 만들기 · 선 조건 여러 줄 · 시험 8) · 검증 대기
- [x] 36-0b 선 조건 손질 — 조건 값 = 고른 알약의 값 목록에서 고름(Model 값 목록 함수 · 변수 고르기 · 표 칸 값 · 재료 규격 · 목록 없는 수는 숫자 칸) · 조건 여러 줄(그리고 / 또는) · 규칙 → 받는 칸 엑셀 식 · 서버 Compute 같은 뜻 · 선 위 이름표 · 겹침 · 안 맞음 검사 그대로 · 검증완료(sub7 · 조건 여러 줄 그리고/또는 · 값 목록 · 서버 = 화면 · 시험 30) · 검증 대기
- [x] 36-1 조사 — 옛 식 문법 전수(서버 파서 · 요소 부르기 꼴 · 따옴표 글) · 변환 못 하는 꼴 목록 · /calc 를 부르는 곳 · 검증완료
- [x] 36-2 변환 — 옛 로직(입력 · 중간 · 호표 · 덧줄 · 결과 · 끝수) → 흐름도(입력 상자 · 표 알약 + 표에서 찾기 · 함수 · 출력 상자) + 자동 배치 · 서버 파서로 · 옛 식에 나온 이름마다 알약을 칸에 연결하고 식은 칸 주소로(만약 → IF · 최대 → MAX · 찾기 → 표에서 찾기) · 함수 상자 하나 = 결과 하나 · 전수 대조(변환 흐름도 값 = 옛 계산 값 · 맞는 비율 · 안 맞는 까닭) · 검증완료(sub7 · M02_DF_Convert · 전수 1,472 시험입력 96.7% · 기본 입력 97.4% · 안 맞는 49 = 재료 검색어 자리 18 · 재료 빈 검색어 13 · 표 범위 규칙 경계 15 · 단가 빈 품목 3 · tmp/convert_report_36.json) · 검증 대기 · 마지막 대조: 시험입력 · 기본 입력 모두 1,472/1,472(100%) · 빈 단가 = 옛 셈 뜻(그 값 쓰는 식 빈 값 · 비목 합 0 · 끊긴 곳 「단가 없는 품목을 씀」)
- [x] 36-3 오른쪽 패널 — 로직 상세 오른쪽에 흐름도(다이어그램 · 상세 내용 · 원가 · 검증) · 너비 끌어 조절 · 접기 · 「크게 보기」(전체 화면) · 검증완료
- [x] 36-4 저장 · 정본 — 로직 줄에 「흐름」 칸(화면 [저장] 때만 씀) · 흐름이 있으면 /calc 가 흐름도로 셈(서버 다시 셈) · 왼쪽 기본정보 · 단가산출 상세 · 텍스트 수식 · 시험 계산은 흐름도에서 만든 같은 꼴(보기) · 공용 로직도 흐름도로 고침(시스템 관리자) · 캐시 → [저장] 한 번 · [고친 것 버리기] 함께 · 왼쪽 보기 검증완료(sub5) · 서버 검증완료(sub4)
- [x] 36-5 단추 — 「식으로 새로 만들기」 지움 → 「신규 로직」(빈 흐름도 + 기본정보 · 저장 = 자체 GX 새 키) · 「본떠 만들기」 → 「로직 복사/생성」(흐름도도 복사 · 신규 로직 오른쪽) · 「시험판 ▾」 지움 · 잇기 검증완료(sub1 · accf8ecc4 · abbf61971 · 0d45014e3) — 「식으로 새로 만들기」 · 시험판 ▾ · 시험판 단추 둘 지움 · 단추 차례 ← 로직 목록 · 신규 로직 · 로직 복사/생성 · 로직 지우기 · 고친 것 버리기 · 저장 · 두 칸(LogicLab_Flow) · 오른쪽 패널(흐름 받기 · 고침 → drafts → [저장] 한 번 · 버리기 함께 · 흐름 로직이면 왼쪽 흐름 보기) · 신규 로직 기본정보 칸(LogicLab_Basic) → 저장 = 서버 added 키로 엶
- [x] 36-6 다른 로직 입력 — 대상 = 마스터 로직 전체(찾기) · 흐름도 로직이면 흐름도 셈 · 아니면 옛 셈 · 목록 · 찾기 · 쪽 · 알약 이음 검증완료(서버 흐름 받기 · 값 셈 길이 main 에 오면 GF 로직 값 확인)
- [x] 36-7 정리 — 「시험판 ▾」 · 시험판 입구 · 흐름도 시작 화면 견본 목록 지움 · 시험이 쓰는 견본은 resources/tester 로 · 시험 저장 길 숨김 · DataFlow · CostFlow 폴더 그대로 · 검증완료
- [x] 36-8 끝 검증 — 흐름 기준 · 옛 로직 열기 → 오른쪽 흐름도 값 = 왼쪽 계 · 신규 로직 → 저장 → 다시 열기 · 복사 · 권한 · 브레인 실제 검증 · 보고 · 끝 검증완료(sub1 · 사본 폴더 tmp/master_copy_36 + AISLO_MASTER_DIR · 네 포트) — ① 옛 로직 셋: GF000001(찾기) 오른쪽 34,413 = /calc 34,413.6 = 왼쪽 34,414(보임 끝수만 다름) · 변환 알림 한 줄 / GF000007(만약) 0 ≠ 597,285 · GF000288(로직()) 0 ≠ 1,234,760.96 — 아래 흠 ② GF000001 함수 식 ×1.5 → 오른쪽 · 왼쪽 51,620 따라감 → [저장](공용 GF · 사본) → 다시 열기 상자 6 · 변환 알림 없음 · /calc flow 51,620.4 = 화면 ③ 신규 로직 65 걸음(변수 셋 · 함수 · 조건 만들기 · 출력 둘 · 조건 선) → 저장 GX000004 → 다시 열기 상자 4 · 선 4 · 화면 100,000 = /calc 100,000 = 왼쪽 계(높이 2 = 0 · 지반 암 = 50,000) ④ 로직 복사/생성 2 걸음 → GX000005 상자 4 · 선 4 · 100,000 ⑤ 선 조건 두 줄 「지반 = 토사 그리고 높이 ≥ 3 일 때만」 · 값 고르기(토사|암) · 높이 2 → 0 · 또는 → 50,000 · 조건 만들기 =IF(A2>=3,A3,0) ⑥ 식 보기 「결과 1 = 금액 × 높이 ÷ 4」 · IF 만약 / 아니면 줄 · 칸 연결 표 ⑦ 크게 보기 1484×1076 · 거기서 고친 것 패널로 · 접기 40px · 펴기 · 너비 320 → 522 ⑧ 고친 것 버리기 5 → 4 · 캐시 비움 · 로그인 없음 flow · save · calc · logics 401 · 시험판 · 옛 단추 글 0 · resources/master_data 바뀜 0 · 흠(다른 창): 변환 숫자 입력 예시값이 비어 있음(시험입력 · 기본 입력을 안 넣음 — GF000288 나무높이 6 · 집재거리 100 · GF000007 정리량 50 …) · GF000007 「표 QF000033 → 할증」 표에 맞는 줄 없음(서버 477,828 = 할증 25% 빠짐 · 화면 0) · GF000288 다른 로직 GC000270 기계 자리 「EQ:{기계} … 자리」 못 풂(#N/A → 0) · 칸 #N/A 일 때 화면 셈 0 · 서버 셈 그대로(둘이 다름)(sub7) · 식 보기 값 줄이 선 규칙을 지난 값을 안 씀(「(#N/A × 0) = #VALUE!」 · 결과 알약은 34,413.6)(sub2) · 조건 통과 둘째 줄 값 목록 「number:0」 글 · 조건 만들기 만약 목록에 놓인 알약 없음(sub2) · 옛 로직 왼쪽 계 반올림 · 흐름 원가 계금 1원 버림(1원 차이)
- 36 마무리(10-2 02시 · 브레인 실제 검증완료): 전수 변환 대조 시험입력 1,469/1,472(99.8%) · 기본 1,466(99.6%) · 남은 3 = 마스터 빈 단가 · 시험 141 + 변환 시험 초록 · 사본 서버 저장 → 사본만 바뀜 · 다시 열기 흐름 정본 · GF000001 34,414 = 34,414 · GF000003 8.946 = 8.946 · 식 보기 값 줄 · 검증 대기
## 37. 일위대가 조합 다이어그램 (사용자 지시 10-2 09시 · 계획 · 착수)
- 사용자 확정: 「복잡한 경우가 있으니 일위대가 조합도 다이어그램으로 표현 … 중요하게 생각하는 정보가 다르니 잘 구분」 · 조합은 계산하지 않고 로직을 뭉쳐 비용 구분별로 표기 · 입력은 로직별로 묶어 빈 값은 사용자가 넣음 · 출력은 로직마다 · 미리 보기 값은 구조물 조합으로 안 넘김 · 「흐름도는 별도 로직이 아님」(단가산출 로직을 쓰는 방법).
- 모양: 왼쪽 = 로직별 입력 묶음(받아야 할 값 · 빈 값 표시) → 가운데 = 로직 카드(키 · 이름 · 결과 단위 · 식 · 함수 안 보임) → 오른쪽 = 비용 구분 칸 셋(노무비 · 재료비 · 경비 · 로직마다 선으로 모임) + 값 로직은 「값」 칸 · 이름이 같은 입력(지역 · 자재지역 등)은 점선으로 이어 보이기만(검사 없음) · 로직 카드를 누르면 그 로직의 단가산출 로직 화면(흐름도)으로 · 계산 · 고치기 없음(묶음 고치기는 지금 표) · 흐름도와 모양 · 색을 달리함.
- 자리: 일위대가 조합 상세(M02_MasterTemplete_Labor_Edit)의 미리 보기와 같은 값 — 미리 보기 입력 칸에 넣은 값이 다이어그램에도 · 다이어그램 빈 입력 알약을 누르면 미리 보기 그 칸으로 · 미리 보기 결과(로직별 노무비 · 재료비 · 경비 · 계)가 카드 · 칸에.
- [x] 37-1 다이어그램 판 — M02_MasterTemplete_Labor_Diagram.ts(+css) 새 파일 · 고정 세 칸 배치(자동) · 판 옮기기 · 확대 · 한눈에 · 밝음 · 어두움 · 좁은 폭
- [x] 37-2 잇기 — Labor_Edit 에 「다이어그램」 칸(접기) · 미리 보기와 값 한 벌 · 빈 입력 누름 → 미리 보기 칸 · 로직 카드 누름 → M01 단가산출 로직 그 로직 열기(setPendingLogicKey 꼴)
- [x] 37-3 검증 — 조합 셋(로직 2 · 9 · 14개)으로 입력 묶음 수 = 로직 입력 수 · 출력 = 미리 보기 줄 · 비용 칸 합 = 미리 보기 합 · 빈 값 표시 · 같은 이름 점선 · 로직 열기 · 브레인 실제 검증 · 보고
- 창: sub2 37-1 · 37-2 · 37-3
## 38. 마스터 요소 화면 손질 (사용자 지시 10-2 09:40 · 착수)
- 사용자 확정: ① 인력 · 재료 · 기계 · 소요량 · 계수 · 환율 · 요율 상세의 제목 · 단추 · 찾기 라벨 양식 = 단가산출 로직과 같게 ② 재료 컨테이너의 유가 · 전력을 별도 컨테이너로 ③ 단가산출 로직 「막힘만」 체크 — 의미 없으면 지움 ④ 단가산출 로직 컨테이너 「전체」 를 누르면 상세 목록 보기가 안 됨(다른 컨테이너는 됨).
- 브레인 정함: 「막힘만」 = 로직 검사에 걸린 로직만 거르기 · 지금 1,469 중 0 · 목록 줄에 「⛔ 막힘」 표시 · 까닭 말풍선은 이미 있음 → 체크만 지움(표시는 둠).
- [x] 38-1 양식 맞춤 — 일곱 상세 화면 머리(제목 · 단추 줄 · 찾기 칸 라벨)를 단가산출 로직 화면 꼴로 · 공용 단추 · 칸 크기(sub5) · 검증완료
- [x] 38-2 유가 · 전력 컨테이너 — 왼쪽 패널에 재료 다음 「유가 · 전력」 컨테이너(재료_유가전력.json) · 재료 컨테이너에서는 뺌 · 고르기 · 찾기 · 상세 그대로(sub6) · 검증완료
- [x] 38-3 「막힘만」 체크 지움 · 38-4 「전체」 목록 보기 고침(sub1) · 검증완료 — 원인: 로직 컨테이너 거름이 목록만 거르고 가운데 화면 전환(onLogic)을 안 부름 → Side 거름 run 에서 로직이면 onLogic · 「전체」 는 찾는 글도 비움 · 화면(5174): 로직 1,469 줄 → 인력 전체 → 로직 「전체」 = 로직 화면 1,469 줄(찾는 글 「굴착」 비움) → 산림품셈 330 → 03장 작업장 관리 10 → 로직 열기 → 「전체」 = 상세 닫힘 · 1,469 줄 · 막힘만 체크 0 · 화면 오류 0
- 「고친 것 버리기」(사용자 물음 · 확인만): 저장 안 한 고친 것(화면 캐시)을 버리고 파일의 로직을 다시 엶 — 사본 저장은 없음 · 그대로 둠(사용자 결정 기다림)