Document package formats, release workflows, deployment planning and UI concepts. Closes #1
72 lines
8.0 KiB
Markdown
72 lines
8.0 KiB
Markdown
# 구현 순서와 검증 계획
|
|
|
|
현재 1차 범위는 [MSIX 우선 제작기](../code-design/12-msix-first-builder.md)다. EXE/MSP·EG-BIM 전환·자체 그룹 배포·Store 제출은 후속으로 유지하며 첫 출시 의존성에서 제외한다. 아래 기존 분석/확장 계약보다 이 범위와 [일정 v3](10-development-schedule.md)가 우선한다.
|
|
|
|
현재 제품 완료 기준에는 **EXE와 MSIX 생성·검증**이 모두 포함된다. 아래 legacy 전환·자체 서버·4단계 배포는 EG-BIM 적용·연계 트랙이다. 범용 제작기는 두 독립 가상 제품에서 두 형식의 설치/업데이트/제거를 검증하며 EG-BIM 전환·Store 심사를 공통 생성 차단 조건으로 두지 않는다. 통합 순서는 [일정 v2](10-development-schedule.md)와 BL-46~53을 포함한 백로그를 따른다. [범용 출력 설계](../code-design/11-generic-exe-msix-architecture.md) 참조.
|
|
|
|
첫 검증 목표는 기존 InstallShield 설치본을 새 설치본으로 전환하면서 사용자 설정과 CAD 연동을 보존하는 것이다. 이 경로를 검증한 뒤 서버의 단계 배포를 연결한다.
|
|
|
|
영역별 구현 항목은 아래 목록을 유지한다. 2026-10-19 기준 통합 실행 순서와 인력·일정은 [개발 일정과 마일스톤](10-development-schedule.md), 개별 작업의 선행 조건과 완료 기준은 [구현 백로그](../backlog/README.md)를 따른다.
|
|
|
|
## 구현 전 결정할 항목
|
|
|
|
| 항목 | 현재 상태 | 필요한 결정·확인 |
|
|
| --- | --- | --- |
|
|
| 새 설치 도구 | WiX + Burn 권고 | 채택 여부, 지원 버전, 이용 조건 |
|
|
| 서명 | Azure Public Trust 우선 검토 | 기존 인증서, 법인 명의, 신청 자격, 서명량 |
|
|
| 기존 배포본 | 저장소의 1.13.1 설정 확인 | 실제 지원할 이전 EXE·MSI와 설치 로그 확보 |
|
|
| 업데이트 라이브러리 | NuGet 2.0.0 호출부 확인 | 명령 실행·권한·검증·복구 지원 범위 |
|
|
| 버전별 패치 | 필수 요구사항, MSP 우선 검토 | 지원 기준 버전, 누적 범위, 식별자·구성요소 규칙, 복구 절차 |
|
|
| 그룹 | 4단계 요구 확정 | 기존 채널과 매핑, 장치별 충돌 규칙 |
|
|
| 서버 | 구성 역할 제안 | 사내망·인터넷 범위, 사용자 수, 패키지 용량 |
|
|
| 승인 기준 | 관찰 기간 예시만 제시 | 최소 표본, 성공률, 장애 기준, 담당자 |
|
|
| Store | MSI·EXE 경로 우선 검토 | 계정·제품 등록, 서명·무인 설치·오프라인 조건 |
|
|
|
|
## 단계별 구현
|
|
|
|
1. **설치 목록 정리**: `.ism`에서 파일·레지스트리·바로가기·선행 조건·사용자 지정 작업을 추출하고 현재 앱에 필요한 항목을 판별한다. 실제 배포 대상 파일의 서명 목록도 만든다.
|
|
2. **새 전체 설치기**: WiX MSI와 Burn 전체 EXE를 구현하고 설치 경로·무인 설치·재부팅 상태·로그·런타임 설치를 검증한다.
|
|
3. **기존 설치본 전환**: 사용자별 백업, 기존 제거, 새 설치, 선택적 설정 복원, 실패 복구를 구현한다. 다른 CAD 제품과의 파일 연결도 확인한다.
|
|
4. **서명 자동화**: PE 파일부터 최종 EXE까지 서명·타임스탬프·검증을 빌드에 연결하고 최종 해시를 생성한다.
|
|
5. **패키지와 업로드**: 임시 업로드, 검증, 불변 릴리스 등록, 접근 통제, 감사 이력을 구현한다.
|
|
6. **버전별 패치**: 기준과 목표 패키지에서 MSP 생성, 지원 기준 검증, 서명, 패치 선택, 실패 상태 복구와 전체 설치 전환을 구현한다. 패치 지원을 위해 MSI 식별자·구성요소 규칙은 2단계부터 반영한다.
|
|
7. **4단계 배포**: 서버의 그룹 결정, 기존 업데이터 연동, 결과 수집, 수동 승격, 중지와 수정 릴리스를 연결한다.
|
|
8. **Store 제출 준비**: 전체 오프라인 설치, 모든 PE 서명, 무인 설치, 고정 URL, 정식 릴리스 공개 순서를 검증한다.
|
|
|
|
전체 설치와 버전별 패치는 최초 필수 범위다. 자체 바이너리 차분 엔진, 자동 승격, 복잡한 관리 화면은 측정 결과에 따라 확장한다. MSP와 별개인 독자 파일 교체 엔진은 우선 구현하지 않는다.
|
|
|
|
## 필수 검증 시나리오
|
|
|
|
| 분야 | 시나리오 | 통과 조건 |
|
|
| --- | --- | --- |
|
|
| 신규 설치 | 깨끗한 지원 Windows, 런타임 없는 상태 | 전체 EXE로 오프라인 설치·실행 가능 |
|
|
| 권한 | 일반 사용자, 관리자, 다른 계정으로 UAC 승인 | 필요한 단계만 승격, 원래 사용자 데이터 보존 |
|
|
| 기존 업그레이드 | 지원할 각 구버전, 사용자 지정 경로 | 제품 중복·경로 이동·설정 손실 없이 전환 |
|
|
| 버전별 패치 | 각 지원 기준→목표, 누적 적용, 중간 버전 생략 | 전체 설치와 동일한 목표 파일·설치 정보·기능 상태 |
|
|
| 패치 적용 거부 | 다른 기준, 아키텍처·제품 불일치, 변경·누락 파일 | 잘못된 패치 실행 금지, 승인된 전체 경로 선택 |
|
|
| 패치 이력 | 중복 적용, 이전 패치 존재, 설치 캐시 부족 | 이력 일관성, 재시도 안전성, 원본 필요 시 확보 또는 복구 |
|
|
| 패치 실패 | 적용 중 중단, 재부팅 대기, 롤백 실패 | 현재 상태 확인 후 복구, 불확실한 상태에서 전체 설치 강행 금지 |
|
|
| 패치와 설치 관리 | 패치 후 복구·제거·다음 업데이트, 전체 설치로 동일 버전 전환 | MSI 및 Burn 등록과 파일 상태 일치 |
|
|
| 사용자 데이터 | CUI, 레지스트리, 추가 리소스, 여러 사용자 | 소유자별 백업·복원, 엔진 종속 설정 제외 |
|
|
| CAD 공존 | 다른 CAD 설치 및 파일 연결 존재 | 타사 소유 연결·설정 훼손 없음 |
|
|
| 핵심 기능 | 인증, 도면 열기·저장·출력, 플러그인 | 기존 지원 기능 정상 동작 |
|
|
| 실패 복구 | 백업 실패, 설치 실패, 전원 중단, 디스크 부족 | 복구 가능한 상태와 로그·백업 보존 |
|
|
| 실행 중 업데이트 | 도면 편집 중, 파일 잠금, 중복 설치 요청 | 저장·종료 안내, 설치 직렬화, 작업 손실 방지 |
|
|
| 네트워크 | 중단·재개, 프록시, 만료 다운로드 URL | 재시도 가능, 불완전 파일 실행 금지 |
|
|
| 패키지 검증 | 손상·변조 파일, 다른 게시자, 만료 메타데이터 | 실행 차단 및 원인 기록 |
|
|
| 그룹 | 중복 소속, 조작된 채널, 비율 확대, 그룹 변경 | 서버 정책에 따른 일관된 대상 결정 |
|
|
| 배포 중지 | 다운로드 전·후 및 설치 시작 후 | 새 설치 차단 범위 명확, 진행 중 설치 강제 종료 없음 |
|
|
| 결과 집계 | 재전송, 중복 이벤트, 미응답, 재부팅 대기 | 중복 성공 집계 없음, 미응답을 성공 처리하지 않음 |
|
|
| Store | 전체 EXE 무인 설치·제거·수정 설치 | 제출 조건 및 자체 업데이트와의 호환성 충족 |
|
|
| 공개 다운로드 | 실제 HTTPS 다운로드 후 실행 | 서명·게시자·타임스탬프 확인, SmartScreen 결과 별도 기록 |
|
|
|
|
새 설치기의 성공 여부와 SmartScreen 경고 유무는 별도 평가한다. 서명 검증 통과만으로 SmartScreen 무경고를 합격 조건으로 보장하지 않는다.
|
|
|
|
## 완료 기준
|
|
|
|
지원 대상 구버전에서의 전환, 데이터 보존, 설치 실패 복구, 무인·오프라인 설치, 서명 검증이 통과해야 첫 개발자 그룹에 공개한다. 이후 각 그룹의 관측 기준을 통과하면 동일 패키지를 다음 그룹에 공개한다.
|
|
|
|
해당 릴리스가 지원한다고 선언한 모든 패치 기준의 적용 시험과 전체 설치 복구 경로가 통과해야 패치 지원 완료로 판단한다. 기준 버전 범위는 승인 전에 명시하고, 미검증 기준은 자동 패치 대상에서 제외한다. 상세 기준은 [버전별 패치](08-version-patching.md)를 따른다.
|
|
|
|
서버의 배포 중지와 Store 공개 상태 변경을 함께 다루는 운영 절차를 마련한다. 설치 완료 후 치명적 장애는 검증된 복구 릴리스 또는 높은 버전의 수정 릴리스로 대응한다. 일반 사용자의 다운그레이드를 임의로 허용하지 않는다.
|