Files
jychoi4 24b624301c docs: define MSIX-first packaging design and roadmap
Document package formats, release workflows, deployment planning and UI concepts.

Closes #1
2026-10-27 16:30:00 +09:00

27 KiB

범용 설치 패키지 제작기 구현 백로그

작성일: 2026-10-19. 검토 결과와 단독 개발 일정을 함께 사용한다. 백로그는 저장소 문서로만 관리하며 Gitea 이슈는 생성하지 않는다.

현재 범위 — MSIX 우선, 기준선 v3

첫 제품은 MSIX 생성·서명·직접 배포 업데이트 설정·제작 GUI/CLI다. EXE/MSI/MSP·HTML 설치 마법사·EG-BIM 전환·자체 그룹 배포 서버·Store 제출은 후속으로 이월한다. 현재 설계, 변경 기록 참조.

기존 53개 ID는 유지하며 1차 18개 / 후속 35개로 구분한다. 모든 구현 작업은 미착수다. 시안은 구현 완료 증빙이 아니다. 표의 P0/P1은 해당 개발 단계 안의 우선순위이며 후속 P0가 첫 MSIX 출시를 막지 않는다.

개발 단계 백로그 ID 완료 기준
1차 MSIX BL-02, BL-03, BL-06, BL-0911, BL-14, BL-16, BL-29, BL-41, BL-4653 MS0~MS6. 두 독립 제품의 MSIX 설치/업데이트/제거까지 검증
후속 EXE·전환·배포 BL-01, BL-0405, BL-0708, BL-1213, BL-15, BL-1728, BL-3040, BL-4245 후속 일정 미배정. 기존 요구를 보존하되 완료 처리하지 않음

BL-02/03/06의 WiX·타사 EG-BIM PE·그룹 배포 추가 검증은 후속 관련 작업으로 넘긴다. BL-10의 EXE v1 가져오기는 후속 EXE 단계의 인수 기준이다. BL-50에서 공통 서명·불변 저장을 먼저 구현하고 BL-19/20에서 EXE 전용 순서와 기준 저장소를 확장한다. BL-53은 현재 MSIX 제품 완료 게이트이며 두 형식 통합 회귀는 후속 BL-17/28에서 추가한다.

운영 규칙

  • 인력/산정 기준: 개발자 1명, AI 코딩·설계·테스트·문서화 지원 없음. 개발자가 시험과 배포 운영 준비도 수행한다. 외부 승인자·테스터는 추가 개발 인력이 아니다.
  • 우선순위: P0는 선행 위험 해소·데이터 보존·배포 차단 조건, P1은 해당 단계 완성의 필수 기능, P2는 선택적 확장이다. 1차 P1을 임의로 제외해 첫 제품 완료로 표시하지 않는다.
  • 상태: 아래 모든 항목은 미착수. 이후 진행 중 → 검증 중 → 완료로 갱신한다. 차단은 원인·필요 자료·해제 조건을 함께 기록한다. 시안과 설계 작성은 구현 완료 증빙이 아니다.
  • 선행 조건: 표의 ID는 완료 후 착수하는 기본 순서다. 인터페이스 검토·자료 수집은 먼저 할 수 있지만 선행 구현의 시험을 통과한 것으로 취급하지 않는다. 외부 전제는 ID 외에도 명시했다.
  • 작업 한도: 구현 항목은 동시에 1개만 진행한다. 외부 답변 대기 중에는 선행 조건이 충족된 다른 항목을 선택한다. 큰 항목은 착수 전에 1~5일 작업으로 나누되 부모 ID와 완료 기준을 유지한다.
  • 공통 완료 기준: 변경 코드/문서, 의미 있는 자동 검사, 필요한 Windows VM 실험, 실패 경로, 로그/비밀정보 점검, 사용 절차를 연결한다. 실행하지 않은 검사는 notRun으로 남기며 완료를 선언하지 않는다. 시험 기록은 아티팩트 해시·기준 상태·도구/OS·기대/실제 결과를 포함한다.
  • 외부 자료: 실제 제품 바이너리·고객 설정·서명 키는 공개 Git 저장소에 올리지 않는다. 승인된 별도 저장 위치와 식별자·해시·접근 절차만 연결한다.

현재 마일스톤은 MS0~MS6다. 이전 M0~M10/M-MSIX 일정은 대체했으며 후속 작업의 과거 단계 이름으로 사용하지 않는다. 담당은 별도 표시가 없으면 단독 개발자이며, 계약·제품 승인·테스터 참여는 관련 외부 주체의 협조가 필요하다. 작업별 예상 일수는 M0에서 실측 자료를 확보한 뒤 세분화한다.

A. 기준 확정과 위험 실험 — 기준

근거: 현황, 전환, 패치, 설치 UI.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-01 P0 실제 출시본·payload·런타임 인벤토리 실제 배포본/소스 접근 지원 후보별 EXE/MSI 해시·GUID·버전·언어·아키텍처·경로와 제거 작업 목록 작성. 실제 배포 파일/사용자 데이터/타사 파일을 구분하고 제조사·런타임 재배포 조건의 확인 여부 기록.
BL-02 P0 도구·지원 환경과 MSIX 위험 실험 없음 Windows SDK MakeAppx/SignTool, Rust/Tauri, 최소 Windows/CPU 조합과 도구 해시 고정. 작은 Win32 앱으로 MSIX 생성·서명·실행·업데이트 재현. WiX/Burn은 요구하지 않음. 지원 범위/학습 공수를 MS0에서 재산정.
BL-03 P0 MSIX 서명·게시자·신뢰 정책 BL-46 개발/운영 서명 프로필, Publisher/Subject 일치, 대상 PC 신뢰, 타임스탬프·갱신·비밀 저장 정책 확정. 실제 운영 서명 접근의 차단 조건 기록. EG-BIM·EXE 서명은 후속.
BL-04 P0 지원 기준 상태·전체 대체 정책 BL-02, BL-46 실제 지원할 legacy 목록과 WiX 기준 상태 목록 정의. 신규 설치 상태/패치 도달 상태를 구분하고 보존 기간, Minor/Major 경로, 패치 제거 기본 비활성 정책 문서화. 공통 MSI 기준 상태는 가상 제품으로 확정; EG-BIM legacy 지원 목록은 BL-01 이후 별도 확정.
BL-05 P0 서버·장치·기존 채널 계약 없음 사내망/인터넷, 저장소/DB/인증 방식과 용량 가정 결정. Center/Family/External의 의미, 장치 그룹 충돌·최초 등록·오프라인 라이선스 경로 결정.
BL-06 P0 MSIX 인수 기준·VM 매트릭스 BL-02, BL-46 두 독립 가상 제품과 지원 OS/CPU/권한별 설치·실행·버전 증가·제거·데이터 보존 기준 확정. 불일치 인증서·누락 의존성·디스크 부족·중단·네트워크 실패와 설치 중 사용 상태 포함. Store·EXE·그룹 테스터 요구 없음.
BL-07 P0 기존 제거와 설정 보존 실험 BL-01, BL-02 스냅샷 VM에서 실제 구버전 제거 전후 파일·HKCU/HKLM·CAD 연결 차이를 측정. 다른 계정 UAC·사용자 지정 경로를 포함해 외부 백업의 복원 가능성과 미복구 범위를 기록.
BL-08 P0 Rust/Burn BA·UI 부트스트랩 실험 BL-02 Detect/Plan/Apply·취소·오류·재부팅 이벤트의 최소 연결을 재현. WebView2 없는 오프라인 VM에서 시작 경로 확인. 미성립 시 native 선행 UI 등 대안과 추가 공수를 결정하고 자유 UI 약속을 보류.

B. Rust 공통 엔진과 CLI — 공통

근거: 구조, 데이터, 파일/레지스트리, 식별자, 명령.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-09 P1 Rust workspace·Windows CI·fixture BL-02 domain/engine/infra/cli 의존 방향과 잠금 파일 구성. 새 환경에서 format/lint/build/test 실행, 소형 가상 제품 준비. 로컬 설정·작업 폴더·대형 산출물을 형상 관리에서 제외.
BL-10 P0 v2 MSIX 프로젝트·저장·검증 BL-09, BL-46 Rust/JSON Schema 일치, 미지 필드/버전·revision 충돌·백업 검증. formats.exe 없이 MSIX 프로젝트 열기/저장. EXE/v1/Store 미지원 입력은 설명과 함께 거부하고 자동 변환하지 않음. 확정되지 않은 identity·서명으로 정식 결과 확정 불가.
BL-11 P0 파일 해석과 스냅샷 입력 BL-10 포함/제외·필수 파일·정렬 결과가 결정적. 대소문자 충돌, 경로 탈출/ADS/reparse point, 출력 재수집 차단. 스트림 복사·해시, 복사 중 원본 변경 탐지, 원본 무변경 확인.
BL-12 P0 버전·GUID·identity lock BL-04, BL-10, BL-11 제품/패키지/패치/컴포넌트 식별자의 수명·tombstone·예약 이력 구현. MSI 버전 경계 및 PE 표시 버전 매핑 검사. 같은 리소스의 안정적 GUID와 동시 확정 차단 확인.
BL-13 P1 레지스트리·설치 위치 컴파일 BL-10, BL-12 타입·뷰·literal/formatted 값을 검증하고 WXS에 안전하게 직렬화. 기존 경로 보존, 소유한 값만 제거, 미지원 HKCU 정책 차단. 생성기 PC 레지스트리가 바뀌지 않음을 확인.
BL-14 P0 프로세스·작업·중단 복구 BL-09, BL-10 허용 도구/인자 배열·시간 제한·Job Object·OS 잠금 구현. GUI/CLI 중복 실행 차단, 취소 시 자식 종료, Interrupted 복원, 재개 전 입력/완료 산출물 해시 재검사.
BL-15 P0 설치 단계 카탈로그·검증기 BL-10, BL-13 모드/phase/조건 타입·의존 그래프 검증. 순환·필수 백업 삭제·권한 없는 핸들러·미지원 모드 차단. 화면 숨김과 실행 단계 제거를 구분하고 무인 설치 필수 입력 검사.
BL-16 P1 MSIX 공통 계획 서비스와 CLI BL-11, BL-14, BL-47 validate/plan/build/job/export 계약·종료 코드·JSON 출력. 오래된 revision/도구/identity 계획과 중복 요청 차단. 실제 빌드·내보내기는 BL-49/50에서 연결. patch/MSI/EXE/Store 요청은 명시 오류.

C. 전체 설치·서명·구버전 전환 — 후속 EXE와 공통 VM

근거: 릴리스, 전환, 서명.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-17 P0 WiX MSI/Burn 전체 설치 생성 BL-02, BL-16, BL-47 실제 MSI 테이블/식별자와 기대 계획 일치. 기본·사용자 지정 경로, 필수 런타임, silent·오프라인·재부팅, repair/uninstall의 소형 제품 시험 통과. CLI build 연결. 직접 배포용 offline-singlefile/offline-layout/network 출력과 불변 payload 검증. 후속 완료 시 두 독립 제품의 EXE와 기존 MSIX 비회귀 확인.
BL-18 P0 대용량 CAB·출력 한계 검사 BL-17 실제에 가까운 압축률로 총 2GB 초과 레이아웃 설치/복구 확인. 개별 파일 초기 지원 한계·단일 EXE 크기/서명 불가를 명확히 차단. 임시 공간 포함 계산과 메모리 사용 측정.
BL-19 P0 운영 서명·타임스탬프 어댑터 BL-03, BL-17, BL-50 자체/타사 PE 구분, CAB/MSI/Burn 서명 순서와 최종 해시 검증. 서명·타임스탬프 실패 시 배포 불가, 완료 파일 재서명 방지. 실제 운영 서명과 개발 인증서 결과를 분리. BL-50의 공통 서명 포트를 EXE 순서로 확장.
BL-20 P0 EXE 기준 릴리스·증빙 저장 확장 BL-18, BL-19, BL-50 동일 releaseId 덮어쓰기 차단, MSI/wixpdb/서명 payload/정의/도구/로그 보존. Finalized와 설치 시험 증빙 분리, 결과 상태를 실제 파일에서 추출. 증빙 없는 정식 배포 준비 상태 차단. BL-50의 불변 저장 계약을 재사용.
BL-21 P0 사용자별 백업·검증·복원 BL-14 원래 사용자 SID 기준 CUI/설정/추가 리소스 보관 및 호환 설정만 복원. 여러 프로필·다른 관리자 UAC·부분 실패 결과를 호출자에 전달. 임시 다운로드 정리와 백업 수명 분리. 공통 계약은 가상 사용자 데이터로 검증. EG-BIM 실제 보존 정책은 BL-07 검증 후 적용.
BL-22 P0 실제 EG-BIM 전환 실행 BL-15, BL-20, BL-21 전체 payload 확보·백업 검증 전 구버전 제거 차단. 지원 legacy별 기존 경로·타사 CAD 연결·사용자 데이터 보존 및 앱 실행 확인. 실패/전원 중단 시 복구 상태·로그·백업 유지.
BL-41 P0 VM 시험 실행·증빙 수집 기반 BL-02, BL-09 업무 PC와 분리된 지원 OS VM/스냅샷·fixture·로그 수집 구성. 첫 패키지부터 실제 아티팩트 해시와 기준 상태로 증빙 저장. 이후 단계마다 신규/패치/실패 시험 매트릭스를 누적 실행. 기반은 MS1에 준비하고 각 게이트에서 재사용.

D. 패치와 적용 실행 계약 — 후속 EXE

근거: 패치 운영, 패치 생성, 검증.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-23 P0 기존 업데이터 실행 능력 검증 BL-02 NuGet 구현/테스트로 MSI/MSP 실행·승격·서명 검증·종료 코드·재부팅·동시 실행 지원을 확인. 재사용 가능/별도 구현 필요 항목과 API 계약 작성. 조사부터 먼저 착수할 수 있으나 완료는 실제 실행 증빙 필요. 공통 실행 어댑터는 가상 제품으로 검증하며 EG-BIM NuGet 적합성은 BL-01 이후 별도 적용 결과로 기록.
BL-24 P0 설치 시도 상태 머신 BL-21, BL-23 attemptId·잠금·원래 사용자·3010/1641·재부팅 후 재개·rollback 완료/불명확 상태 구분. 앱 저장/종료 실패 시 적용 차단, 불명확 상태에서 전체 설치 강행 차단.
BL-25 P0 baseState 저장·diff·호환성 BL-04, BL-12, BL-20 ProductCode/PackageCode·언어·아키텍처·패치 이력·관리 파일로 기준 식별. 신규 설치와 패치 도달 상태 분리. 삭제/이동/런타임 구조 변경을 FullUpgradeRequired로 분류하고 사용자 데이터를 비교 대상에서 제외.
BL-26 P0 MSP 생성·서명·불변 보관 BL-19, BL-25 한 기준 상태→한 목표 MSP 생성 및 실제 PatchCode/family/sequence 검증. 목표 PE 재서명 없음. 중복/역행 패치 차단, 크기 비교, 선언된 기준과 최종 해시 보관.
BL-27 P0 Burn/MSP 및 전체 대체 경로 BL-17, BL-24, BL-26 패치 후 ARP/Burn/MSI 버전·repair·제거·다음 업데이트 일관성 확인. 같은 ProductCode와 major 전환을 구분하고 source state별 동일 목표 전체 경로 검증. 미검증 경로는 FullUpgradeRouteUnavailable.
BL-28 P0 패치 기준별 동등성·실패 시험 BL-17, BL-26, BL-27, BL-41 최소 두 선언 기준 상태에서 목표 신규 설치와 공급자 관리 상태 비교. 중간 버전 생략·중복·파일 수정/누락·원본 캐시 누락·디스크 부족·중단·재부팅·복구/제거/다음 패치 시험. 선언한 모든 기준의 증빙 통과. 공통 게이트는 가상 제품 기준이며 실제 EG-BIM 전환 기준 시험은 BL-22 이후 BL-42에서 확인. 후속 두 형식 설치/업데이트 회귀를 추가하되 MSIX에 MSP 적용 금지.

E. Tauri 제작기와 최종 설치 UI — 제작기와 후속 EXE UI

근거: 제작기 UI/명령, 설치 과정/UI.

2026-10-19 재설계에 따라 아래 작업을 구체화한다. 시안 작성으로 구현 상태는 변경하지 않는다. 변경 기록 참조.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-29 P1 MSIX 제작기 화면·IPC·자체 배포 준비 BL-16, BL-49 앱 정보·파일·패키지·서명·업데이트·검증/빌드 화면과 작업 이력. CLI와 같은 엔진, 작업 재연결, 최소 권한·경로 검증. 제작기 자체 배포 identity는 고객 앱과 분리. 선택한 단일 디자인 구현, WiX/EXE 출력 구현 없이 개발 환경 시작 및 배포/실행 확인.
BL-30 P1 설치 과정 편집기 BL-15, BL-29 단계 추가/활성화/허용 순서/조건/등록 핸들러 속성 편집. 필수 단계 삭제와 의존성 오류를 저장/빌드에서 검사, 모드별 실행 계획 표시. 임의 관리자 셸 입력 기능 없음.
BL-31 P1 기본 테마·문구·리소스 편집 BL-17, BL-29 고정 템플릿·로고·지원 색상/배치·문구/다국어 편집과 모드 미리보기. 실제 native 출력 비교, 미지원 자유 페이지 기능 명시. 변경 시 새 빌드/서명 필요성 반영.
BL-32 P1 사용자 정의 BA·자유 페이지 편집 BL-08, BL-24, BL-30, BL-31 승인된 UI 백엔드로 입력 바인딩·검증·페이지/조건 분기·Feature 선택 구현. Burn 외 중복 설치 실행 없음, 적용 시작 후 계획 고정, 무인 입력 계약과 WebView2 부트스트랩 검증. 기본 테마 기능으로 대체 완료하지 않음.
BL-33 P1 UI 실물 검증과 접근성 BL-29~32, BL-41 DPI·키보드·스크린 리더·다국어 및 오류/취소/실패/재부팅 화면 확인. 미리보기와 서명 번들 차이를 기록. patch/repair의 Feature 유지 및 대화형/무인 설치 결과 동등성 통과.

재설계에 따른 추가 인수 기준

작업 기존 완료 기준에 추가할 검사
BL-15 welcome/license/options/review/prepare/apply/result 페이지와 실행 그래프를 분리. 업데이트의 약관 버전 조건, 필수 준비 및 무인 동의/입력 계약 검사.
BL-24 적용 전 취소, 적용 중 취소 요청, 엔진이 확인한 rollback 결과, 상태 불명확, 재부팅 필요를 구분하고 UI에 전달.
BL-30 모드별 단계 목록·조건/복구 속성과 잠금 규칙 편집. 화면 숨김이 백업/무결성 제거로 이어지지 않음.
BL-31 진행 안내형/표준 마법사형의 지원 범위 검증. 페이지 목록·미리보기·속성 패널, 로고/문구/지원 스타일 편집. 미지원 native 매핑을 명시.
BL-32 신규/전환/패치/복구/제거 페이지 분기와 이전 이동 시 입력 유지. review에서 계획 고정, apply의 이전 이동 차단, 제거 확인·약관 동의 차단. 검토용 상황 선택기는 배포 화면에서 제외.
BL-33 두 외형에서 정상·백업 실패·실행 앱·적용 실패·취소·재부팅을 검증. 백업 전 제거 불가, 상태 불명확 시 무조건 재설치 불가, 재부팅 필요 시 앱 실행 숨김, 종료/재부팅 기본값 확인.

F. 서버·업데이터·단계 배포 — 후속 서버

근거: 패키지/업로드, 단계 배포, 패치.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-34 P0 내보내기·서버 수신·신뢰 계약 BL-05, BL-20, BL-25, BL-50 artifacts/dependsOn·적용 경로·증빙 스키마를 고정하고 모든 CAB/런타임 의존 관계 포함. Finalized/DeploymentReady와 Uploaded/Verified/Ready의 의미를 매핑. 메타데이터 서명·만료·키 교체·다운그레이드/재생 방지 정책과 클라이언트 검증 계약 결정. format별 identity/업데이트 경로를 구별하고 MSIX에 MSP 실행 경로를 제공하지 않음.
BL-35 P1 임시 업로드·검증·릴리스 등록 BL-34 중단/재개·해시/서명/누락 검증·중복 릴리스 거부. 검증 실패는 격리, 불변 URL 등록, 준비 증빙 없는 Ready 차단. 업로드/승격 권한 분리와 감사 기록.
BL-36 P0 인증·장치 그룹·대상 선택 API BL-05, BL-35 사용자 주장만으로 테스트 그룹 진입 불가, 최초 장치 등록·다중 사용자 충돌 정책 구현. 그룹 목표 결정 후 현재 상태에 맞는 승인 경로 선택. 사용자별 응답 캐시 격리·패키지 다운로드 접근 통제.
BL-37 P0 네트워크 설치·업데이터 연결 BL-24, BL-27, BL-34, BL-36 WebSetup의 고정 payload 경로와 사용자 목표 선택 책임 분리. 재개/프록시/만료 URL·해시/서명/메타데이터 검증 후 실행. 적용 직전 허가 재확인, 오프라인 라이선스의 전체 설치 경로 시험. 서버 장애 시 기존 앱 사용 유지.
BL-38 P1 설치/실행 결과 수집·집계 BL-06, BL-24, BL-36 attemptId+이벤트 순서로 중복 제거·오프라인 재전송. 다운로드/취소/재부팅/미응답/실행 실패 별도 집계. 기준→목표별 패치 실패와 전체 복구 성공을 구분하고 개인정보 최소 수집/보존 정책 적용.
BL-39 P0 수동 승인·중지·정책 충돌 BL-06, BL-36~38 승인자·관측 증빙·정책 revision으로 4단계 승격. 릴리스 전체 중지와 패치만 중지를 구분하고 미승인 전체 경로 우회 차단. 적용 전 차단/시작 후 강제 종료 없음 확인. 필요 최소 CLI/API 제공, 복잡한 운영 UI는 제외.
BL-40 P1 보존·정리·복원 운영 BL-04, BL-20, BL-35 현재/복구/진행 설치/지원 패치의 참조 자료 삭제 차단. 정리 계획 미리보기와 승인 이력, 저장소·메타데이터 백업 복원 시험. 서명 payload와 기준 MSI 누락 탐지.

G. 출시 검증과 운영 인수 — 후속 적용

근거: 필수 검증, 관측/승격, 개발 일정.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-42 P0 전체 경로 회귀와 4단계 파일럿 BL-06, BL-28, BL-33, BL-37~41, BL-43 실제 legacy→WiX→MSP→후속 업데이트와 설치 후 인증/도면/출력/플러그인 회귀 통과. 개발자→1차→2차→일반 사용자 단계마다 동일 아티팩트 해시·기준별 표본/실행/장애 지표로 승인. 표본 부족/중대 장애 시 보류.
BL-43 P0 운영 절차·릴리스 체크리스트 BL-03, BL-06, BL-22, BL-28, BL-39, BL-40 서명 장애·중지·복구·재부팅 대기·지원 문의·데이터 보존 절차 작성 및 모의훈련. 수정 릴리스와 일반 다운그레이드 금지 원칙 반영. 개발자 본인 검증과 외부 업무 사용자 승인 기록 분리.

BL-42는 후속 EG-BIM 종합 시험부터 일반 공개까지 이어지는 상위 작업이다. 단계별 증빙을 남기며 최종 승격 전에는 항목 전체를 완료 처리하지 않는다. BL-41의 기반 구축은 MS1, 후속 회귀 실행은 각 마일스톤의 시험 시간에 포함한다.

H. Microsoft Store — 별도 선택 일정

근거: Store 계획, 출력 프로필.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-44 P2 제품별 Store 제출 적합성 판정 BL-53 등록할 제품의 EXE 또는 MSIX 적합성, 계정·권리·정책 확인. EXE는 단일 오프라인/무인/서명, MSIX는 Store identity·capability·의존성 검증. 미지원 제품 전환 비용은 별도 산정. MSIX 출력 구현을 이 작업으로 미루지 않음.
BL-45 P2 Store 제출·자체 업데이트 연계 BL-44 EXE는 고정 HTTPS URL·무인 인자, MSIX는 패키지 업로드·Store identity·Store 업데이트 경로로 제출. 대상 제품의 설치/업데이트 증빙 필수; EG-BIM을 제출할 때만 BL-42 적용 증빙 추가. 실제 제출·심사·공개 상태 구분, 미승인 결과를 공개 완료로 표시하지 않음.

I. MSIX 필수 기능 — MS0~MS6

근거: 범용 EXE·MSIX 구조. 기존 작업의 공통 필드·서명·VM 기반을 재사용하되 EXE 규칙을 MSIX에 강제하지 않는다.

ID 우선순위 작업 / 산출물 선행 조건 완료 기준
BL-46 P0 MSIX 우선 범위·제품 계약 없음 1차 MSIX/직접 배포, 후속 EXE/Store·HTML UI 경계 확정. format/delivery/distribution 모델은 유지. EG-BIM·Store·자체 인증 서버 없이 가능한 계약과 두 가상 제품 정의.
BL-47 P0 PackageBackend·MSIX 작업 조정기 BL-10, BL-14, BL-46 1차 MsixBackend 포트와 대상별 검증/계획/결과/잠금 구현. MSIX-only에는 MSI 필드를 요구하지 않음. 직렬 다중 대상의 부분 실패·불변 결과 보존·새 buildId 재시도 검증. EXE/Store는 UnsupportedTarget.
BL-48 P0 MSIX manifest·identity·호환성 검사 BL-11, BL-47 Name/Publisher/4부분 Version/Architecture·최소 OS·실행 항목·자산·의존성·허용 capabilities 검증. MSI GUID 불필요, 임의 설치 경로·미지원 작업과 잘못된 Store identity 차단.
BL-49 P1 MakeAppx MSIX 생성 백엔드 BL-02, BL-14, BL-48 고정 SDK로 staging→manifest→pack→내용/identity 검사. 검증 우회 금지, 원본 무변경, 누락 파일/자산·취소·디스크 부족 실패 기록. .msix 필수, bundle은 후속 범위.
BL-50 P0 MSIX 서명·불변 결과·내보내기 BL-03, BL-14, BL-49 직접 배포 Publisher/인증서 일치·서명/신뢰·해시 검사. 개발/운영/미서명 상태, Finalized/DeploymentReady 분리. 동일 releaseId 덮어쓰기 금지, manifest·SDK·입력·패키지·로그·보고서 보존/내보내기. 인증서/타임스탬프 실패와 재시도 검증. EXE 저장소·Store 제출 프로필은 후속.
BL-51 P1 MSIX 업데이트·App Installer BL-50, BL-41 상위 버전 전체 MSIX와 HTTPS App Installer 생성/검증. 파일 안내 URI와 버전별 패키지 URI·서명/identity·OS/스키마 조건 확인. 실행 중 업데이트·재시도·버전 건너뛰기·데이터 보존/제거 시험. Windows 차등 경로와 전체 선다운로드 차이를 기록. 인증/그룹 서버·EXE 전환은 후속.
BL-52 P1 MSIX 제작 UI·CLI 완성·접근성 BL-29, BL-48, BL-50 1차 MSIX 설정만 노출하고 직접 배포/자동 업데이트 사용 설정. 실제 파일/자산/의존성/서명 프로필 편집과 출력 폴더 선택. 잘못된 버전·Publisher·실행 파일·URI의 원인/위치 안내. DPI·키보드·스크린 리더·취소/중단/재연결·긴 작업 UI·GUI/CLI 동등성 검증. HTML 설치 마법사 불필요.
BL-53 P0 MSIX 제품 완료·회귀·사용 안내 BL-06, BL-16, BL-41, BL-48~52 두 독립 가상 제품 각각 MSIX 생성·실제 서명·직접 설치·실행·상위 버전 업데이트·제거·앱 데이터 정책 검증. 부분 실패·미서명/개발 결과 제한·원본 무변경·누락 런타임/자산·Publisher 오류 시험. 불변 증빙과 사용자 가이드/운영 절차 제공. EXE·Store·EG-BIM·자체 그룹 서버 없이 MS6 통과.

첫 착수 순서

  1. BL-46/02/03/06: MSIX 범위·도구·서명·설치/업데이트 실험과 완료 기준.
  2. BL-09/10/11/14/47/16/41: 공통 모델·입력·작업 엔진·CLI·VM 기반.
  3. BL-48/49: manifest와 실제 MSIX 생성.
  4. BL-50: 서명·불변 결과·직접 배포 내보내기.
  5. BL-51: App Installer 업데이트와 실제 적용 검증.
  6. BL-29/52: 제작기 GUI와 IPC·실파일 편집·접근성.
  7. BL-53: 두 제품 회귀와 MS6 출시 준비.

후속 35개 항목에는 날짜를 배정하지 않는다. 현재 작업의 필수 의존성이 후속 항목을 참조하지 않는지 변경마다 검사한다. 재개할 때 EXE/BA·실제 제품·서버/Store 범위를 다시 산정한다.