Files
networkSetup/docs/code-design/08-validation-and-roadmap.md
T

5.6 KiB

검증 계획과 구현 순서

자동 검증

계층 검증할 핵심 동작
도메인 MSI 버전 경계, GUID 수명, component 이동/삭제 판정, 지원 기준 상태 비교
프로젝트 계약 JSON Schema와 Rust 역직렬화 일치, 알 수 없는 필드, 마이그레이션, revision 충돌
파일 해석 포함/제외, 필수 파일 누락, 대소문자 충돌, 경로 탈출/reparse point, 원본 무변경
레지스트리 타입 범위, 32/64비트, XML/MSI 문자열 escaping, 지원하지 않는 HKCU 정책 차단
작업 엔진 가짜 WiX/Signer를 통한 단계 실패, 취소, 중복 요청, 체크포인트, 잠금 충돌
실제 도구 통합 작은 샘플 제품으로 MSI/EXE/MSP 생성, 실제 식별자와 서명/해시 추출
대용량 총 2GB 초과와 여러 CAB, 크기 합산 오버플로, 메모리 사용, 개별 제한 초과 실패
UI/IPC 계획 이후 설정 변경 차단, 권한 없는 Command, 입력/로그의 HTML 실행 방지
설치 과정/UI 의존 단계 삭제·순환·조건 오류 차단, 대화형/무인 결과 일치, patch/repair Feature 유지, CustomAction 복구, WebView2 없는 PC

CAB 시험에는 압축이 매우 잘 되는 0바이트 반복 데이터만 쓰지 않는다. 실제 압축률에 가까운 fixture를 사용해 산출물 크기와 분할 경계를 검증한다. 개발용 인증서 시험과 공인 서명 서비스 시험을 구분한다. 개발용 인증서 통과를 공인 서명이나 SmartScreen 평판 통과로 표시하지 않는다.

Windows VM 설치 시험

실제 설치 시험은 생성기/개발자의 업무 PC가 아닌 스냅샷 복구 가능한 VM에서 수행한다. 각 결과에는 사용한 최종 아티팩트 해시, OS, 계정/권한, 기준 상태, 실행 로그와 결과를 연결한다.

시나리오 합격 조건
신규 설치 기본/사용자 지정 경로, 파일·레지스트리·런타임·실행 정상
기존 InstallShield 전환 실제 배포본별 탐지, 설정·CUI·도면 보존, 기존 삭제 스크립트 영향 확인
오프라인 전체 설치 네트워크 차단 상태에서 CAB와 런타임을 모두 로컬로 해석
네트워크 설치 단절·재시도·캐시·해시 불일치 처리, 불완전 다운로드 미적용
패치 선언한 기준 상태 각각에서 목표 신규 설치와 공급자 관리 상태 일치
패치 불가/전체 대체 잘못된 ProductCode·언어·패치 이력 차단, 검증된 전체 업그레이드 실행
파일 버전/수정 동일 PE 버전의 변경 파일, 수정된 비버전 파일, 누락 파일의 결과 검증
실패/재부팅 앱 실행 중, 파일 잠김, 디스크 부족, 3010/1641, rollback와 복구 판정
설치 후 유지보수 Burn 표시와 MSI 상태, repair, uninstall, 다음 패치·전체 업그레이드
Store 출력 단일 파일, 무다운로드, silent 경로, 서명, 버전별 고정 URL 조건

사용자 데이터 보존은 해시가 반드시 동일해야 하는 공급자 파일과 별도 판정한다. 저장된 백업이 있다는 것만으로 복구 성공이라고 하지 않고 실제 복원과 앱 재실행까지 확인한다.

구현 순서

단계 구현 내용 완료 기준
1. 기준 확정 실제 배포 payload, ISM 대조, 런타임, 출시본 GUID, 도구 버전 출처가 기록된 첫 프로젝트와 전환 위험 목록
2. Rust 엔진/CLI 스키마, 파일 해석, identity lock, 검증/계획 fixture에서 안정적인 목록·GUID와 설명 가능한 오류
3. 전체 릴리스 WXS 생성, MSI/Burn, 분할 CAB, 서명 어댑터 작은 제품과 2GB 초과 제품의 전체 설치 시험 통과
4. 버전별 패치 기준 저장소, diff, 호환성, MSP, 순서/이력 최소 두 기준 상태에서 동일 목표 도달·repair·제거 통과
5. Tauri UI 프로젝트/파일/레지스트리/릴리스/패치/작업 화면 CLI와 같은 계획·결과, 긴 작업 중 UI 응답 유지
6. EG-BIM 전환 실제 파일/레지스트리/백업, 기존 업데이터 연계 실제 IS 출시본→WiX→후속 MSP 경로 시험 통과
7. 배포 연결 내보내기, 외부 증빙, 업로드 계약, Store 가능성 불변 파일과 기준 정보가 배포 시스템에 연결

버전별 패치는 필수 범위이며 최초 제품 완성에서 제외하지 않는다. 다만 작은 시험 제품으로 엔진을 검증한 뒤 실제 EG-BIM 데이터를 적용한다. UI 작업은 엔진 계약이 안정화된 후 병행할 수 있다.

설치 과정/화면 편집 요구는 09 설계를 따른다. 단계 2~3에 과정 검증과 기본 테마 출력을, 단계 5에 과정/UI 편집기를 추가한다. 자유로운 페이지/분기 지원은 Rust/Burn 연결 실험 후 사용자 정의 BA로 구현하며 기본 테마 편집만으로 해당 요구를 완료 처리하지 않는다.

정식 배포를 막는 미확정 사항

실제 설치용 소스 폴더, 제조사 표시명, 런타임 목록, 서명 프로필, 기존 설치본 목록과 파괴적 제거 동작, 업데이터의 MSI/MSP 실행 계약, Burn과 패치의 유지보수 동작은 아직 확정되지 않았다. 초안 설정으로 편집·차이 계산·개발 패키지 검증을 진행할 수 있지만 정식 릴리스의 배포 준비 상태는 부여하지 않는다.

이 문서 작성 단계에서는 설계 문서의 경로·예제 JSON·문서 간 일관성만 검사한다. Rust 컴파일, WiX 빌드, 실제 서명, 설치·패치·Store 심사는 수행하지 않았다.