diff --git a/resources/knowledge/original/다산소프트/PLAN_2026-07-main_ESTX_정밀분석.md b/resources/knowledge/original/다산소프트/PLAN_2026-07-main_ESTX_정밀분석.md new file mode 100644 index 00000000..82b2769f --- /dev/null +++ b/resources/knowledge/original/다산소프트/PLAN_2026-07-main_ESTX_정밀분석.md @@ -0,0 +1,134 @@ +# `2026-07-main.estx` 정밀 분석 계획서 + +## 1. 목적 + +`2026-07-main.estx`를 원본 증거로 삼아 파일 형식, 내부 데이터 구조, 개별 필드와 값의 의미, 데이터 관계 및 사용 맥락을 재현 가능한 방식으로 문서화한다. + +분석 결과는 다산소프트 EST Plus 2의 동작을 추측하여 설명하는 자료가 아니라, **해당 파일에서 객관적으로 입증할 수 있는 사실과 그 한계**를 기록하는 원본 분석 자료로 작성한다. + +## 2. 최우선 원칙: 할루시네이션 금지 + +1. 파일 내부 또는 프로젝트가 지정한 원본 근거에서 확인되지 않은 의미를 사실처럼 쓰지 않는다. +2. 필드명이나 파일명만 보고 용도·단위·계산식을 단정하지 않는다. +3. 모든 주요 서술에는 근거 위치를 붙인다. 가능한 근거 단위는 내부 파일명, 테이블명, 필드명, 레코드 식별값, 바이트 오프셋, 원시값 또는 교차검증 문서이다. +4. 각 결론은 다음 중 하나로 표시한다. + - **확인 사실**: 원본 바이트, 메타데이터, 반복 레코드 또는 지정된 공식 자료로 직접 입증됨. + - **검증된 해석**: 복수의 독립 근거가 일치하고 반례 검사를 통과했으나 명시적 공식 설명은 없음. + - **가설**: 패턴상 가능성이 있지만 확정 근거가 부족함. 본문 결론이나 값 사전의 확정 의미로 사용하지 않음. + - **확인 불가**: 현재 자료만으로 판단할 수 없음. +5. 가설은 가설 전용 구역에 격리하고, 확정 정보와 같은 표에 섞지 않는다. +6. 해석이 충돌하면 하나를 임의 선택하지 않고 양쪽 근거와 충돌 사실을 기록한다. +7. 외부 웹 정보는 기본 근거로 사용하지 않는다. 필요한 경우에도 사용자 승인과 별도 출처 검증 없이는 반영하지 않는다. + +## 3. 원본 보존 규칙 + +- 분석 대상: `resources/knowledge/original/다산소프트/2026-07-main.estx` +- 원본은 읽기 전용으로 취급하며 수정·재저장·재패키징하지 않는다. +- 분석 시작과 종료 시 SHA-256을 각각 계산하여 동일성을 확인한다. +- 압축 해제나 변환이 필요하면 임시 작업공간만 사용하고 원본 폴더에는 중간 바이너리를 남기지 않는다. +- 텍스트 및 Markdown은 UTF-8로 읽고 쓴다. + +## 4. 분석 범위 + +### 4.1 파일 및 컨테이너 + +- 파일 크기, 시각 정보, SHA-256, 매직 바이트 +- ZIP 중앙 디렉터리, 항목명, 압축·비압축 크기, CRC, 시각 +- 모든 내부 항목의 스트림 무결성 +- `.dat`, `.idx`, `.blb`, `.opt`, `.ini`의 대응 관계 + +### 4.2 바이너리 테이블 구조 + +- 테이블 헤더와 필드 정의 +- 필드 자료형, 길이, 위치, null/빈값 표현 +- 인덱스 정의와 키 구성 +- 레코드 수, 활성·삭제·예약 레코드 구분 가능성 +- BLOB의 레코드 연결 방식과 내용 유형 +- 문자열 인코딩 및 Delphi 계열 직렬화 흔적 + +### 4.3 값 사전 + +각 필드에 대해 가능한 범위에서 다음을 기록한다. + +| 항목 | 기록 내용 | +|---|---| +| 원시 필드 | 원래 필드명과 소속 테이블 | +| 자료형 | 정수, 실수, 문자열, 날짜, 불리언, BLOB 등 | +| 원시값 | 변환 전 값과 대표 사례 | +| 표시값 | 프로그램 표시값을 파일에서 검증할 수 있을 때만 기록 | +| 단위 | 원, 원/단위, 수량 단위, 비율 등 확인된 경우에만 기록 | +| 정밀도 | 소수 자릿수, 저장 배율, 반올림·절사 방식 | +| 특수값 | `0`, 음수, 빈 문자열, null, 최대값 등의 의미 | +| 코드값 | 각 코드·플래그의 고유값과 확인된 의미 | +| 분포 | 고유값 수, 빈도, 최솟값, 최댓값, 이상값 | +| 관계 | 참조 테이블·키 및 연결 성공률 | +| 근거 등급 | 확인 사실, 검증된 해석, 가설, 확인 불가 | +| 근거 위치 | 파일·테이블·필드·레코드 또는 오프셋 | + +### 4.4 계산과 데이터 관계 + +- 수량 × 단가, 재료비·노무비·경비, 합계 및 비율 관계 +- 낙찰률, 할증, 원가계산, 절사·반올림 규칙 후보의 재계산 검증 +- 제목/상세, 상위/하위 품목, 코드/인덱스 연결 +- 내역·일위대가·자재·노무·기계·실적공사비·원가 간 참조 +- 물량과 CAD/도면 자료의 연결 +- 연결이 성립하지 않는 고아키·중복키·순환참조 + +### 4.5 객관적 사용 맥락 + +- 파일 내부의 제품명, 프로젝트명, 경로, 버전, 날짜, 옵션 문자열 +- 각 데이터군이 파일 내 어느 데이터군에서 참조되는지 +- 출력·견적·물량·도면 기능과의 관계가 내부 구조로 입증되는 범위 +- 생성 주체, 실제 사용자, 특정 사업에 실제 적용되었는지 등 파일로 증명할 수 없는 사항은 `확인 불가`로 처리 + +### 4.6 품질과 한계 + +- 손상, CRC 오류, 잘린 레코드, 인덱스 불일치 +- 빈 테이블, 중복, 삭제 흔적, 비정상 범위 +- 서로 다른 생성·수정 날짜와 오래된 기본자료 혼재 +- 암호화·난독화·압축으로 해석하지 못한 영역 +- 공식 스키마 부재로 확정할 수 없는 항목 + +## 5. 분석 및 검증 절차 + +1. **원본 지문 고정** → 검증: 분석 전 SHA-256과 항목별 CRC 기록. +2. **컨테이너 전수 검사** → 검증: 모든 내부 항목을 끝까지 읽고 CRC 오류 확인. +3. **테이블 스키마 복원** → 검증: 헤더 선언, 실제 레코드 길이, 파일 크기의 상호 일치 확인. +4. **값 전수 프로파일링** → 검증: 필드별 고유값·빈도·범위·특수값과 대표 원시 레코드 기록. +5. **관계키 검증** → 검증: 조인 성공률, 중복률, 고아키 수치화. +6. **계산식 후보 검증** → 검증: 여러 레코드에서 재계산 오차를 측정하고 반례가 있으면 확정하지 않음. +7. **업무 의미 교차검증** → 검증: 최소 두 종류의 독립 근거가 없는 의미는 확정 등급을 부여하지 않음. +8. **문서 역추적 검사** → 검증: 모든 핵심 결론에서 원본 근거까지 역추적 가능 여부 점검. +9. **원본 무변경 확인** → 검증: 분석 후 SHA-256이 시작 시점과 동일함을 확인. + +## 6. 예상 산출물 + +- `2026-07-main_ESTX_분석.md`: 전체 개요, 객관적 의미, 확인된 사용 맥락, 핵심 결론과 한계 +- `2026-07-main_ESTX_파일구조.md`: 컨테이너, 바이너리 구조, 인코딩, 무결성 +- `2026-07-main_ESTX_테이블사전.md`: 테이블별 구조와 역할, 레코드·인덱스·BLOB 정보 +- `2026-07-main_ESTX_값사전.md`: 필드별 값의 의미와 근거 등급 +- `2026-07-main_ESTX_데이터관계.md`: 조인키, 계층, 계산 관계, 데이터 흐름 +- `2026-07-main_ESTX_검증근거.md`: 해시, CRC, 통계, 재계산, 미확정·반례 목록 + +값 사전이 지나치게 커지면 다음처럼 영역별 문서로 분할할 수 있다. + +- `2026-07-main_ESTX_값사전_견적내역.md` +- `2026-07-main_ESTX_값사전_자재노무기계.md` +- `2026-07-main_ESTX_값사전_물량도면.md` +- `2026-07-main_ESTX_값사전_옵션메타데이터.md` + +## 7. 완료 조건 + +- 분석 전후 원본 SHA-256이 일치한다. +- ZIP 내부 전 항목의 무결성 검사 결과가 기록된다. +- 주요 테이블의 필드, 자료형, 레코드 및 참조 관계가 근거와 함께 정리된다. +- 각 값의 의미가 근거 등급 및 근거 위치와 함께 기록된다. +- 계산 관계는 재계산 결과와 오차 또는 반례를 포함한다. +- 모르는 값은 임의로 채우지 않고 `확인 불가` 또는 가설로 남긴다. +- 모든 핵심 결론을 제3자가 원본 파일의 구체적 위치까지 역추적할 수 있다. +- 최종 Markdown 문서는 UTF-8이며 같은 폴더에 보관된다. + +## 8. 승인 상태 + +- 상태: 사용자 검토 및 분석 착수 승인 대기 +- 이 계획의 승인 전에는 원본 ESTX 정밀 분석과 최종 분석 문서 작성을 시작하지 않는다.