diff --git a/docs/raw/요구_1104/_분석_654-A_EST기본DB구성.md b/docs/raw/요구_1104/_분석_654-A_EST기본DB구성.md new file mode 100644 index 000000000..929ed8afe --- /dev/null +++ b/docs/raw/요구_1104/_분석_654-A_EST기본DB구성.md @@ -0,0 +1,106 @@ +# 분석 654-A — EST Plus 2 단가산출 DB 구성 · 기초와 사용자 자료 분리 방식 (요구 654 · 읽기만) + +표기 — 〔확인〕 = 파일 · 레코드 · 캡션으로 직접 봄 · 〔추정〕 = 근거에서 끌어낸 해석 · 〔추정·강〕 = 여러 근거가 같은 쪽. +약칭 — 〔REA〕 `resources/knowledge/original/경쟁사 프로그램/EST Plus 2/REA 분석/` · 〔다산〕 `resources/knowledge/original/원가계산/다산소프트/` · 〔캡션〕 〔REA〕`02_화면구성/captions.json` · 실측 스크립트 · 출력 `tmp/brain_654/EST/`(layers.cjs · codes.cjs · p2p.cjs · fuel.cjs · layers_out.txt) · 실측 대상 = main 2026-07 판 · 실무 산불 거창 · 장수 · 진안 `.estx`. + +## 0. 결론 + +1. EST 에는 「기초 DB」와 「사용자 DB」라는 서로 다른 두 종류의 저장 구조가 없음 — 업체가 배포하는 Main Data(`main.estx`)와 사용자 프로젝트(`.estx`)는 같은 표 20 개 · 같은 칸을 쓰는 같은 꼴의 파일 · 프로젝트 = Main 에서 필요한 항목만 옮겨 담은 「작은 Main」〔확인〕. +2. 자유 편집이 쉬운 까닭은 층을 나눈 것이 아니라 세 성질 — ① 프로젝트가 자기 완결 사본(참조가 100 % 같은 파일 안에서 풀림) ② 산근 상세가 「글 줄」 ③ 단가는 자원 표에만 있고 글은 코드로 그 자리를 가리키기만 함. +3. 기초와 프로젝트의 연결은 복사하는 순간 끊김 — 코드 새로 매김 · 원본 가리키는 칸 없음 〔확인〕 · 남는 통로 = 「현재데이타 갱신」 하나(자원 단가 여섯 종만 · 산근 글은 안 바꿈). +4. 회사 · 사용자 공유 층은 전용 DB 가 아님 — 「아무 .estx 파일」을 MAIN DATA 목록에 등록 · 사용자 지정 폴더 검색 · 통합설계서 서버 〔캡션 확인 · 동작 추정〕. +5. 대가 = 선택지 구조 없음 · 사본끼리 갈라짐 · 판 차이 안 보임 · 파일 사이 정체 열쇠 없음 · 갱신 뒤 되돌림 불가. + +## 1. 층 목록 + +| 층 | 자리(`C:\Dasansoft\Est Plus 2\`) | 담는 것 | 사용자 | 업체 갱신 | +| --- | --- | --- | --- | --- | +| Main Data | `Data\ProjectData\main.estx`(열면 `System\BufDat\Main\Main_1`) | 표 20 개 전부 — 산근 1,569(글 77,329 줄) · 일위 1,468 · 기계 1,049(상세 5,298) · 노임 395 · 자재 23,987 · 표준시장단가 3,690 · 환율 · 기계 기준 19 · 판 공지 41 | 검색 · 끼워 넣기 · 갱신 원천 · 편집 막는 장치는 못 찾음(업데이트가 통째 바꿈 〔추정〕) | 반기 + 수시 · 07 → 09 판 코드 1,569 그대로 · 단가 다시 셈 · 글 34 건 손봄 | +| 설계참고철 | `Data\ProjectData\2026_상반_설계참고철\*.estx` 14 + 도면DB | 분야별 산근 · 일위(산림토목 422 · 측량 1,198 · 해양 1,619 등) | 참조만 · 「MAIN DATA(설계참고철) 추가 및 삭제」로 목록에 넣어야 검색 | 반기 | +| 샘플공사 | `2026_상반_샘플공사\*.estx` 8 · `sample.estx` | 견본 프로젝트 | 참조 | 반기 | +| 기계경비공식 | `System\MainSys\MachText.*` | 기계 식 꼴 42(글) | 편집기에서 글로 붙여 넣음 · 산근과 이어지는 칸 없음 | 프로그램 업데이트 | +| 품셈책 | `System\BookData\` 7 권(본문 암호) | 품셈 원문 | 「품셈자료 붙여넣기」 글 복사만 | 해마다 | +| 조달청 코드 | `System\MainSys\JodalCodeDB.estx` · `PPS_*` | 표준공사코드 | 「조달청 표준공사코드 적용」 | 「조달청데이타 업데이트」 | +| 서식 기본값 | `System\MainSys\*.opt` · `*FileList.*` | 표지 · 갑지 · 원가계산서 · 인쇄 양식 | 「기본양식으로 저장」(설치본 공용) | 프로그램 업데이트 | +| 사용자 공유 | MAIN DATA 목록(`MainTableList.Dat`) · 사용자 지정 폴더 · 통합설계서 서버 | 회사 표준 · 지난 공사 같은 임의 `.estx` | 등록 · 검색 · 복사 원천 | 없음 | +| 프로젝트 | 사용자 `.estx`(열면 `System\BufDat\Project\D_n\P_m`) | 같은 표 20 개 중 쓰는 항목만(거창 = 산근 61 · 노임 17 · 자재 52 · 기계 22) + 공정 · 동원 | 전부 편집 | 사용자가 「현재데이타 갱신」 누를 때만 | + +단가 자료는 따로 된 파일 없이 `main.estx` 안의 표 〔확인〕 — 노임 = `LaborcDat` · 자재 = `StuffcDat`(가격 칸 여섯: 가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가) · 기계 = `MachTitle` · `MachMain` · 유류 = 자재 표 경유 · 휘발유 줄(기계 상세 483 줄이 경유 `M0003039886` 1,819 원/ℓ 가리킴) · 표준단가 = `SilJukDat` · 환율 = `MachGijunDat` 1~5 행 · Main 내역 표 41 행 = 판 공지(〔다산〕`ESTX_값사전_견적내역.md:509-553`). + +## 2. 한 `.estx` 안의 단가산출 표 + +| 표 | 열쇠 | 주요 칸 | 가리키는 것 | +| --- | --- | --- | --- | +| CostTitleDat(산근 목록) | `Code` = D + 10 자리 | 명칭 · 규격 · 단위 · TC/NC/GC/JC/SC · O*(낙찰 전) · *_(당초) · Bigo · SCheck | 다른 표가 이 Code 로 결과 금액을 가져감 | +| CostMainDat(산근 글 줄) | 블록 첫 줄에만 TitleCode · 뒤 줄은 저장 차례 소속 | LineData(CP949 151 B 글) · Code + LinkIndex · SCheck(-1 노 · -2 재 · -3 경 · -4 실적 · -5 계) · OCheck(율 기준) · Level · Diget/DigetIndex · SKind · Biul · LineData_(당초) | 자원 · 다른 산근 | +| LaborcDat / StuffcDat | Code L / M | Cost1~6 · ValueIndex(0 최저 · 1 평균 · 2 최고 · 3 선택 · 4 입력) · Ratio · TC | 원천 | +| MachTitleDat / MachMainDat | Code E / TitleCode | GN · TU · LinkIndex(5 유류 · 자재 · 6 운전사) · CalcIndex | 노임 · 자재 · 환율 | +| HeadTitleDat / HeadMainDat(일위대가) | Code U / TitleCode | GN 수량 · NU~SU · Code + LinkIndex | 자원 · 산근 · 일위 | +| SilJukDat · EstiMateDat · EstMainDat | 국토부 코드 · 견적 코드 · 내역 줄 차례 | 표준시장단가 · 견적단가 · 내역 | 원천 · 내역 | + +LinkIndex = 가리키는 표 종류 — 5 자재 · 6 노임 · 21 표준 · 101 견적 · 103 일위 · 104 산근 · 105 기계 〔확인〕 · Main 산근 글 줄 연결 = 기계 11,222 · 노임 2,885 · 자재 1,418 · 산근 780 · Main · 프로젝트 셋 모두 100 % 같은 파일 안에서 풀림. + +글 줄이 자원을 가리키는 방식 〔확인 · 거창〕 — 자원 줄: Code `L0000000053` · LinkIndex 6 · SCheck -1 · 글 `\x0e보통인부\x0e : \x03172,068\x03 ÷ 8 ÷ 23.39 = \x12919.5\x12`(`\x03` 자리 = 노임 표 단가 · `\x12` = 엔진이 다시 쓰는 결과) · 산근 안 산근: 성분 줄 `노무비 : \x039,889\x03 × \x110.35\x11 = \x123,461.1\x12` = Code `D0000000154` · LinkIndex 104 · `\x03` 자리 = 가리킨 산근 목록의 NC · GC · JC · 「13참조」는 꾸밈 글. + +## 3. 사용자가 단가산출을 추가 · 변경하는 길 + +| 동작 | 화면 근거 | 바뀌는 표 · 칸 | +| --- | --- | --- | +| 빈 산근 만들기 | 「삽입」 · 「공종지정」 | CostTitle 새 줄 + CostMain 머리 줄 + 글 줄 | +| Main · 참고철 · 다른 공사에서 복사 | 불러오기 · 통합검색(「Main Data에서 검색」 / 「사용자 지정 폴더에서 검색」) · 「Main값우선」 · 「여러개선택」 · 「같은 명칭의 데이타는 복사되지 않습니다」 | CostTitle + CostMain 블록 통째 + 쓰는 노임 · 자재 · 기계 · 하위 산근 함께 · 코드 새로 매김 〔추정·강〕 | +| 줄 넣기 · 지우기 · 옮기기 | 삽입 · 삭제 · 한줄복사 · 블럭 · 끌기 | CostMain 줄 | +| 상수 · 식 바꾸기 | 산출근거 칸 직접 · 「품셈자료 붙여넣기」 · 「기계경비공식」 · 전역변수 | LineData 만 · 다시 셈 때 결과 · 목록 금액 다시 씀 | +| 자원 바꾸기 · 끊기 | 불러오기 단축키 · 「바꾸기」 · 「하위데이타 연결/끊기」 · 「사용자 단가입력」 · 「자재단가 등록」 | 줄 Code + LinkIndex + 글 표지 · 없는 자원이면 원천 표 새 줄 · 끊으면 고정 숫자 글 | +| 노 · 재 · 경 지정 | 「노무비 · 재료비 · 경비 · 소계 지정」 · 「노,재,경 해제」 | SCheck · 율 줄 OCheck | +| 자원 단가 자체 | 「단가적용 방법」(최저 · 평균 · 최고 · 선택 · 입력) · 할증 · 낙찰 | 원천 표 ValueIndex · Cost · Ratio · TC → 그 Code 쓰는 모든 줄이 다음 셈에 따라감 | + +글 안 연결 명칭 · 단가는 옵션 「자동 연결된 항목(명칭,단가) 편집허용」 꺼지면 잠김 〔추정: 기본값〕 · 사용자는 기초 DB 를 고치지 않음 〔추정·강〕 — 편집은 풀어 둔 프로젝트 사본(`BufDat\Project`)에만 · `BufDat\Main\Main_1` 파일 67 개 시각 = main 배포일 그대로 · 반기 업데이트가 통째 바꿈. + +## 4. 기초와 프로젝트 연결 + +| 표 | main ↔ 거창 같은 코드 · 같은 품목 | 거창 → 진안 같은 코드 · 같은 품목 | +| --- | --- | --- | +| 노임 | 0 / 17(보통인부 main `L0000001239` · 프로젝트 `L0000000053`) | 17 / 17 | +| 자재 | 0 / 51 | 47 / 55 | +| 기계 | 0 / 21(같은 번호 14 개는 다른 품목) | 22 / 22 | +| 산근 | 0 / 61(같은 번호 17 개는 다른 품목) | 60 / 74(글 49 블록 달라짐) | +| 일위 | 0 / 14 | 12 / 14 | + +- 항목 단위 복사 = 새 번호 · 파일 통째 복사 = 번호 유지 〔추정·강〕 · 원본 가리키는 칸 없음 〔확인〕(CostTitle 53 칸 · CostMain 58 칸 · `ProjectDataInfo.Ini` 어디에도 출처 · 원본 코드 · 판 칸 없음). +- 갱신 통로 = 「현재데이타 갱신」 하나 — 원천 「Main Data로」 · 「선택파일로」 · 「최신기초 자료로 갱신(웹접속)」 · 대상 체크 여섯(노임 · 기계경비 · 자재 · 유류대 · 표준단가 · 환율)뿐 · 산근 · 일위 · 견적은 못 고름 · 짝 맞춤 = 명칭 · 규격 · 단위 〔추정·강〕 · 갱신 뒤 전체 계산 · 글 속 `\x03` 숫자를 새 단가로 바꿈 · 「현재데이타 갱신후 이전 상태로 복원할 수 없습니다」. +- 안 바뀌는 것 = 산근 · 일위 글 · 상수 · 구성 · 업체가 main 산근 글을 고쳐도 프로젝트에 안 옴 · 받으려면 다시 끼워 넣음. + +## 5. 자원 단가 표와 산근 글을 나눈 효과 + +- 단가는 한 자리(프로젝트 원천 표 한 줄 · 가격 여섯 칸 + 고르는 방법 + 조정률) · 산근 글은 품 · 상수 · 식과 「여기에 그 자원 단가」 자리(`\x03` + Code + LinkIndex)만. +- 엔진은 글 뜻을 몰라도 줄마다 식을 셈하고 표지 숫자만 갈아 끼움 → 사용자가 줄 · 상수 · 꼴을 마음대로 바꿔도 단가 전파가 안 깨짐. +- 자원 단가 하나 바꾸면 그 Code 가리키는 모든 줄이 다음 셈에서 새 값(Main 연결 줄 약 16,300 · `\x03` 표지 22,900) · 영향은 「데이타 사용위치 검색」 · 「신,구 단가비교」. +- 같은 원리가 위층으로 — 산근 목록 금액 → 일위대가 원천 → 내역 원천 · 업체는 반기마다 자원 표만 갈면 되고 사용자 글은 안 건드림 · 연결 끊은 줄 · 사용자 단가 줄은 전파 밖. + +## 6. 층 그림 · 원리 · 대가 + +``` +[업체 · 반기] main.estx = 자원 표(노임·자재 6칸·기계·유류·표준·환율) + 산근·일위 글 + 설계참고철 *.estx = 분야별 산근 글 +[설치본 공용] MachText · BookData · 조달청 코드 · 기본양식 +[공유(선택)] MAIN DATA 목록에 넣은 .estx · 사용자 폴더 · 통합설계서 서버 + │ ① 끼워 넣기: 블록 + 쓰는 자원 통째 복사 · 새 코드 · 원본 칸 없음 + │ ② 현재데이타 갱신: 자원 단가 6 종만 · 명칭 짝 · 되돌림 없음 + ▼ +[프로젝트 .estx = 같은 20 표의 작은 사본 · 자기 완결 · 편집은 전부 여기] + 자원 표(L·M·E·S) ◀─Code+LinkIndex─ 산근 글 줄(\x03 자리) → 산근 목록(D) → 일위(U) → 내역 → 원가 +``` + +자유 편집을 쉽게 만드는 원리 — ① 기초와 프로젝트가 같은 꼴(복사 = 줄 복사 · 변환 없음) ② 프로젝트 자기 완결(기초가 바뀌거나 없어져도 열리고 셈) ③ 단가는 자원 표 · 품은 글(자유 편집 + 자동 전파) ④ 상세 = 글 줄(줄 추가 · 꼴 변경에 스키마 변경 없음) ⑤ 갱신은 숫자만 · 사용자가 누를 때만(사용자 글 안 덮임) ⑥ 공유 = 파일 단위(회사 표준도 `.estx` 하나 등록). + +| 대가 | 근거 | +| --- | --- | +| 선택지 구조 없음 · 갈래마다 펼친 사본 · 다시 고를 수 없음 | 산근 1,569 → 뼈대 715 꼴 · 270 가족(648-A) | +| 사본 갈라짐 · 판 차이 안 보임 · 업체 수정과 사용자 편집 구분 불가 | 원본 칸 없음 · 거창 → 진안 같은 산근 60 중 49 글 달라짐 | +| 파일 사이 정체 열쇠 없음 · 이름으로 짝 · 같은 이름 다른 품목 위험 | codes.cjs · TFRMSAMELIST | +| 글 검사 약함 | 괄호 안 닫힌 식 · 저장값 286 대 다시 셈 100.1 | +| 갱신 되돌림 불가 · 반영엔 전체 재계산 | TFRMDATAUPDATE · `10d148c` | + +우리 구조와 다른 점 〔추정〕 — EST 「기초」 = 구조화 로직이 아니라 미리 펼친 글 사본 · 회사 층(우리 M02)에 해당하는 전용 층 없음(「등록한 파일」이 역할) · 사용자 편집은 프로젝트 사본(우리 B09)에서만 · 글 전체가 열림 — 우리 M02 덮개가 숫자만 받는 것이 가장 큰 차이(790 이후 식 칸 엶). + +확인 못 한 것 — 끼워 넣기 처리기(새 번호 · 자원 동반 복사 · 「Main값우선」 뜻) · 갱신 본체(`1129a8c`) 짝 맞춤 규칙(REA 미분석 · 라이선스 없어 실행 관찰 못 함) · 통합설계서 서버 주체 · 데스크탑 `MainTableList.Dat` · `MainDataInfo.Ini` 원문.