Files
networkSetup/docs/code-design/README.md
T
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

59 lines
6.9 KiB
Markdown

# 설치 패키지 자동화 생성 프로그램 설계
작성 기준: 2026-10-16. 2026-10-19 범위 정정: **범용 Windows 설치 패키지 제작기**이며 EG-BIM/Baron은 적용 사례다. 구현 언어는 **Rust**, 데스크톱 화면은 **Tauri 기반 웹 UI**로 확정한다. 이 문서들은 구현 전 설계이며 실행 가능한 프로그램이나 검증된 설치 패키지는 아직 없다.
현재 첫 버전은 **MSIX 제작기**다. GUI와 CI용 CLI가 같은 Rust 엔진과 **Windows SDK MakeAppx + manifest** 백엔드를 사용한다. EXE/MSI/MSP/Burn·HTML 설치 마법사는 후속 단계로 유지한다. Store 제출도 후속이며 직접 배포에 Store 계정을 요구하지 않는다. [12번 MSIX 우선 설계](12-msix-first-builder.md)가 현재 범위/완료 기준이고 [11번](11-generic-exe-msix-architecture.md)은 장기 두 형식 확장 구조다.
## 문서 구성
2026-10-26 추가 결정: 프로그램 명칭은 **Installer Studio**, 프로젝트 확장자는 **`.isproj`**다. 내부 형식은 JSON v2를 유지하며 기존 JSON 호환은 제공하지 않는다. [13번 파일 형식 설계](13-isproj-project-format.md)를 파일 다이얼로그·저장소에 적용했으며 탐색기 연결은 후속 작업이다.
| 문서 | 설계 내용 |
| --- | --- |
| [프로그램 설계서 — Word](../program-design/MSIX-프로그램-설계서.docx) | 참고 Google Docs 양식을 적용한 MSIX 우선 통합 설계서: 기능 정의·흐름도·화면·인터페이스·검증·일정 |
| [01 구조와 모듈](01-architecture.md) | Tauri, Rust 공통 엔진, CLI, 작업 실행과 저장 구조 |
| [02 프로젝트와 데이터 모델](02-project-model.md) | 설정 파일, 파일 목록, 릴리스 기록, 예제 JSON |
| [03 파일·설치 위치·레지스트리](03-files-and-registry.md) | 파일 수집, 컴포넌트, 설치 경로, 레지스트리 작성 규칙 |
| [04 버전과 GUID](04-version-and-identity.md) | ProductCode, UpgradeCode, PackageCode, 패치 계열 |
| [05 릴리스 생성](05-release-pipeline.md) | 스냅샷, WiX 생성, 서명, 대용량 분할, 산출물 확정 |
| [06 패치 생성](06-patch-pipeline.md) | 기준 선택, 호환성 판정, MSP 생성, 전체 설치 전환 |
| [07 화면과 명령 인터페이스](07-ui-and-commands.md) | 화면별 기능, Tauri IPC, 작업 이벤트, CLI |
| [08 검증과 구현 순서](08-validation-and-roadmap.md) | 자동 검증, Windows VM 시험, 단계별 완료 기준 |
| [09 설치 과정과 UI 편집](09-install-flow-and-ui.md) | 단계 추가·삭제·순서·조건, UI 테마, 사용자 정의 Burn 화면 |
| [10 설치 마법사 재설계](10-installer-wizard-redesign.md) | InstallShield/Inno Setup 패턴, 5개 모드, 페이지·취소·실패·재부팅 및 편집 화면 계약 |
| [12 MSIX 우선 제작기](12-msix-first-builder.md) | 현재 1차 범위, 생성 계약, 제작 화면, 검증 기준 |
| [13 프로젝트 파일 형식](13-isproj-project-format.md) | `.isproj`, JSON v2 내용, 로컬 설정·백업 이름, 기존 JSON 거부와 GUI/CLI 규칙 |
| [MSIX-only 예제](examples/msix.package-project.json) | EXE 설정이 없는 현재 설계용 입력 |
| [11 범용 EXE·MSIX 구조](11-generic-exe-msix-architecture.md) | 제품 범위, 출력/배포 분리, MSIX 계약과 완료 기준 |
| [범용 프로젝트 예제 v2](examples/generic.package-project.json) | 두 형식을 함께 요청하는 미확정 설계 입력 |
| [EG-BIM 프로젝트 예제 v1](examples/egbim.package-project.json) | 이전 EXE 전용 초안; v2 가져오기 대상 |
## 범위와 결정
| 구분 | 내용 |
| --- | --- |
| 1차 필수 | 공통 제품/파일 설정, MSIX 생성, 서명·검증·불변 보관·내보내기·GUI/CLI |
| 후속 — EXE | 설치 경로, 레지스트리, 버전/GUID, 전체 릴리스, 버전별 MSP |
| 1차 필수 — MSIX | manifest/identity/자산/의존성, MakeAppx 생성, 직접 배포 서명, 버전별 업데이트 |
| 후속 — EXE | PE·MSI·MSP·Burn 서명 연동, 대용량 CAB, MSP 기준 보존 |
| 후속 — EXE | 제작자의 설치 과정 추가·삭제·조건 편집, 설치 UI 커스터마이징; 표준 테마와 사용자 정의 BA의 지원 범위 구분 |
| 확정 | Windows 대상, InstallShield 중단, Rust + Tauri |
| 설계 제안 | Tauri 2, TypeScript + React + Vite, JSON v2, MakeAppx/SignTool; WiX/Burn은 후속 |
| 연계 | 업로드용 메타데이터 내보내기, 개발자→1차→2차→사용자 배포에 동일 아티팩트 사용 |
| 별도 시스템 | 배포 서버·그룹 승인, EG-BIM의 실제 자동 업데이트 실행부, Store 제출 |
| 후속 검토 | MSIX 다중 아키텍처 bundle, 클라우드 업로드 어댑터, 기존 ISM의 자동 가져오기 |
Tauri는 **생성 프로그램의 화면과 데스크톱 실행 환경**이다. Tauri가 제작기 자체를 배포하는 번들러와 고객 제품의 EXE/MSIX를 만드는 엔진은 별개다. EG-BIM을 Tauri 앱으로 바꾸거나, Tauri 업데이터를 기존 제품에 바로 적용한다는 뜻이 아니다.
EG-BIM EXE 적용 사례에서는 기존 설치 기본 경로 `C:\Program Files\Baron\EG-BIM`을 유지한다. 실제 설치 파일 목록은 별도로 확정해야 하며 `D:\egbim\repo\14.1` 전체를 배포 파일로 취급하지 않는다. InstallShield 제거 스크립트가 사용자 데이터를 지울 수 있으므로 최초 전환에는 백업·복원 검증이 필요하다. [기존 현황](../plan/01-requirements-and-current-state.md), [설치기 전환](../plan/02-installer-migration.md)
EXE 출력의 전체 설치 결과는 단일 파일로 한정하지 않는다. 대용량 기본 출력은 `Setup.exe + MSI + 분할 CAB + 필수 런타임` 레이아웃이며, 네트워크용 EXE는 필요한 데이터를 내려받는다. 직접 배포용 단일 오프라인 EXE도 지원하며, Store 대상은 제출 요건을 추가 검사한다. MSIX는 Store와 관계없이 별도 백엔드에서 생성한다.
## 완료된 설계와 남은 확정 사항
문서의 타입·명령·파일 형식은 구현 계약 제안이다. 도구의 정확한 버전, 제조사 표시명, 실제 배포 소스 폴더, 필수 런타임 목록, 서명 프로필, 지원 기준 릴리스는 첫 구현 단계에서 확정한다. 값이 비어 있거나 검증되지 않은 프로젝트는 편집·미리보기만 허용하고 정식 릴리스 확정은 차단한다.
기존 운영 정책은 [배포 계획](../plan/README.md)을 따른다. 이 설계에서는 생성 프로그램의 책임과 출력 계약을 구체화한다.
2026-10-19 검토에서 통합 구현 순서를 [백로그](../backlog/README.md)와 [단독 개발 일정](../plan/10-development-schedule.md)으로 정리했다. AI 지원 없이 개발자 1명이 제작기·업데이터·서버·검증을 수행하는 기준이며, 현재는 MSIX 작은 빌드·서명·업데이트 실험을 초기에 배치하고 전환/BA 실험은 후속으로 이월한다.