# Recovery 3001 Windows 0.4.0 Beta 1 제품 목표 명세

- 기준일: 2026-07-29
- 1차 개발 대상: Recovery Core 0.4.0 + Windows 0.4.0 Beta 1
- Android: 기존 USB Alpha 보존, 신규 개발은 제품 방향 결정 전까지 보류
- 목적: “복구가 될 것처럼 보이는 데모”가 아니라, 안전성과 복구 결과를 시험 증거로 판정할 수 있는 Windows 베타 제품

## 1. 제품 성공 조건

0.4.0 Beta 1은 다음 조건을 모두 만족해야 합격이다.

1. 원본 USB를 수정하는 코드 경로가 없고 시스템 디스크 및 동일 물리 디스크로의 복원을 차단한다.
2. FAT32와 exFAT에서 삭제 파일 후보를 탐지하고, 파일명·크기·유형·복구 신뢰도를 표시한다.
3. 원본에서 직접 복구하는 흐름과 원본 전체 이미지를 만든 뒤 복구하는 권장 흐름을 제공한다.
4. 복구된 파일마다 크기, 해시, 판정 결과를 기록하며 실패·불확실 결과를 성공처럼 표시하지 않는다.
5. 마포 현장 자료로 구성한 약 1,000개 공개 표본을 여러 삭제·덮어쓰기·손상 조건에서 반복 검증한다.
6. Windows 사용자가 장치 선택부터 결과 확인까지 별도 명령줄 없이 진행할 수 있다.
7. 사이트에서 개발 목표, 통과 기준, 현재 퍼센트, 검증 증거, 알려진 제한과 버전별 다운로드를 확인할 수 있다.

## 2. 지원 범위

### 지원

- Windows 10/11 x64
- 이동식 USB 및 파일 기반 디스크 이미지
- FAT32, exFAT
- 정상 읽기, 부분 읽기 오류, 작업 취소, 이미지 생성 재개
- 삭제된 일반 파일의 메타데이터 탐지
- 삭제 파일의 FAT 체인 또는 연속 배치 기반 복구
- 문서, 이미지, 동영상, 오디오, 압축, CAD 등 파일 내용 시그니처 판별
- 다른 물리 디스크에 비파괴적으로 복원
- JSON/CSV 결과 보고서와 SHA-256 무결성 증거

### 명시적 비지원 또는 제한

- NTFS, ReFS, APFS, HFS+, ext 계열은 0.4.0 Beta 1 범위 밖
- SSD TRIM으로 이미 제거된 데이터
- 완전히 덮어쓴 데이터
- 암호화 볼륨의 암호 해제
- 물리적으로 고장 난 장치의 전문 장비 수준 복구
- FAT 정보가 사라진 심한 조각화 파일의 완전 복구 보장
- 손상 파일의 내용을 자동으로 정상 문서로 수리하는 기능

화면과 보고서는 이 제한을 숨기지 않고 “복구 가능”, “불확실”, “복구 불가”로 구분한다.

## 3. 기능 목표와 통과 기준

### A. 원본 안전성 — 가중치 12%

기능:

- 물리 장치명, 제조사, 모델, 시리얼, 용량, 버스, 섹터 크기 표시
- 작업 시작 직전 장치 신원을 다시 확인
- 시스템 디스크 차단
- 원본과 목적지가 같은 물리 디스크이면 차단
- 원본 장치는 읽기 전용 API로만 접근
- 장치 재연결 또는 신원 변경 시 즉시 중단

통과 기준:

- 코드 검색과 테스트에서 원본 장치에 대한 쓰기·포맷·파티션 변경 경로 0개
- 시스템 디스크 선택 차단 테스트 100% 통과
- 동일 물리 디스크 목적지 차단 테스트 100% 통과
- 장치 교체·시리얼 변경·용량 변경 모의 시험에서 복구 시작 0건
- 차단 사유를 사용자가 이해할 수 있는 한국어 문장으로 표시

### B. 이미지 생성과 읽기 오류 대응 — 가중치 12%

기능:

- 원본 전체를 이미지 파일로 복사
- 진행률, 읽은 바이트, 처리 속도, 예상 남은 시간 표시
- 취소 후 안전한 지점에서 재개
- 읽기 오류 재시도
- 계속 진행을 선택한 경우 오류 구간을 기록하고 0으로 채움
- 완료 이미지 SHA-256 및 오류 맵 생성

통과 기준:

- 정상 장치 이미지가 원본과 바이트 단위로 동일하고 SHA-256 일치
- 1MiB, 4MiB, 16MiB 청크 조건에서 결과 동일
- 취소·재개 후 최종 이미지 해시가 단일 실행 결과와 일치
- 강제 읽기 오류 조건에서도 앱이 충돌하지 않고 정확한 LBA/바이트 범위를 기록
- 불완전 이미지를 “완료”로 표시하지 않음

### C. 파일 시스템 탐지와 삭제 후보 수집 — 가중치 13%

기능:

- MBR/GPT 파티션 탐지
- FAT32/exFAT 볼륨 식별
- 삭제된 파일의 이름, 추정 크기, 시작 클러스터, 복구 방식 수집
- 하위 폴더 재귀 탐색
- 손상된 메타데이터를 만나도 가능한 범위까지 계속 탐색
- 삭제로 지워진 FAT32 시작 클러스터 상위 비트의 제한적 재구성

통과 기준:

- 정상 FAT32/exFAT 시험 이미지에서 대상 파티션 탐지율 100%
- 지원되는 깨끗한 삭제 시나리오에서 기대 후보 탐지율 99% 이상
- 중복 후보 ID 0건
- 볼륨 범위를 벗어나는 읽기 0건
- 손상 디렉터리 루프와 비정상 클러스터 체인에서 무한 반복 0건

### D. 파일 유형 판별과 복구 신뢰도 — 가중치 13%

기능:

- 확장자와 파일 내용 헤더를 별도로 검사
- JPEG, PNG, GIF, PDF, ZIP/Office, MP4/MOV, RIFF/AVI/WAV, DWG, OLE 문서 등 주요 시그니처 판별
- FAT 체인 존재 여부, 연속 배치 추정, 헤더 일치 여부로 신뢰도 점수 계산
- 높음·보통·낮음 3단계와 점수 근거 표시
- 확장자와 내용이 충돌하면 경고

통과 기준:

- 지원 시그니처 단위 시험 전부 통과
- 알려진 시그니처의 오탐률 1% 미만
- 확장자와 내용이 불일치한 시험 파일을 “높음”으로 판정하는 경우 0건
- FAT 체인이 있는 후보와 단순 연속 추정 후보를 동일 신뢰도로 표시하지 않음
- 판별 불가 파일을 임의 유형으로 단정하지 않음

### E. 선택, 복원, 충돌 방지 — 가중치 13%

기능:

- 이름, 확장자, 크기, 파일 유형, 신뢰도, 파일 시스템별 필터
- 단일·다중·전체 선택
- 복구 전 예상 파일 수와 용량 표시
- 기존 파일 덮어쓰기 금지
- 중복 이름은 안전한 새 이름으로 저장하거나 사용자가 별도 폴더를 선택
- 후보별 성공·불확실·실패 결과 기록

통과 기준:

- 기존 목적지 파일이 바뀌는 경우 0건
- 1,000개 동시 선택에서 UI 멈춤 없이 작업 시작
- 정상 연속 배치 표본은 원본 SHA-256 기준 100% 일치
- 부분 손상 파일은 성공이 아니라 불확실 또는 실패로 분류
- 취소 시 완료된 파일과 미완료 파일을 명확히 구분

### F. Windows 사용자 경험 — 가중치 12%

권장 흐름:

1. 시작 및 안전 안내
2. 원본 USB 선택과 장치 신원 확인
3. 원본 이미지 만들기 또는 직접 읽기 선택
4. 스캔 진행 및 발견 파일 실시간 집계
5. 검색·필터·신뢰도 확인 후 복구 대상 선택
6. 다른 디스크의 목적지 선택, 복구 실행, 결과 보고서 확인

설계 원칙:

- 가장 안전한 선택인 “이미지 먼저 만들기”를 기본 추천
- 전문 용어만 쓰지 않고 이유와 다음 행동을 함께 설명
- 위험 동작은 비활성화하고 해제 방법이 아니라 차단 이유를 표시
- 진행 중 창을 닫아도 데이터가 손상되지 않도록 취소 절차 제공
- 성공 개수보다 검증된 성공, 불확실, 실패 개수를 먼저 표시
- 고급 정보는 접어서 제공하되 장치 신원과 목적지는 항상 노출

통과 기준:

- 신규 사용자가 문서 없이 6단계를 완료하는 내부 사용성 시험 5명 중 4명 이상
- 주요 작업에 필요한 화면 이동 6단계 이하
- 위험한 원본/목적지 선택을 다음 버튼 이전에 차단
- 오류 메시지마다 원인, 영향, 다음 행동 포함
- 1280×720, 1920×1080, 150% 배율에서 핵심 버튼과 상태가 잘리지 않음
- 키보드만으로 주요 흐름을 완료 가능

### G. 시험, 증거, 회귀 방지 — 가중치 15%

표본:

- 약 1,000개
- 아주 작은 텍스트부터 대용량 동영상까지 포함
- 이미지, PDF, Excel, Word, PowerPoint, ZIP, CAD, 오디오, 동영상, 이메일·데이터·코드 등 다양한 형식
- 원본 파일명, 상대 경로, 크기, SHA-256, 유형을 공개 매니페스트로 보존
- 원본 내용도 비교 가능한 시험 자료 범위에서 공개

필수 환경:

- FAT32 빠른 삭제
- exFAT 빠른 삭제
- 삭제 후 쓰기 없음
- 삭제 후 소량 덮어쓰기
- 삭제 후 다량 덮어쓰기
- 조각화 파일
- 디렉터리 일부 손상
- 읽기 오류 주입
- 다른 USB 모델 또는 이미지 기반 재현 환경

통과 기준:

- 시험 실행마다 원본 매니페스트, 복구 매니페스트, 해시 비교표 생성
- 깨끗한 지원 시나리오에서 SHA 일치 복구율 100%
- 덮어쓴 파일을 정상 복구로 잘못 판정하는 비율 0%
- 오류 주입 시험에서 충돌·무한 대기 0건
- 기존 자동 테스트 전부 통과, 신규 기능별 회귀 테스트 추가
- 재현 명령, 앱 버전, OS, 파일 시스템, 장치 식별 정보를 결과에 기록

### H. 버전 관리와 배포 — 가중치 10%

기능:

- SemVer 형식 `0.4.0`과 채널 `Beta 1`을 분리 표기
- 버전별 Windows ZIP 또는 설치 파일 보존
- 각 버전의 파일 크기, SHA-256, 빌드일, 릴리스 노트, 알려진 제한 공개
- 최신 안정판, 최신 시험판, 과거 버전 구분
- 개발 목표별 퍼센트와 마지막 검증 시각 표시
- 다운로드 중단을 막기 위한 Range 요청 지원
- 실패 시 직전 사이트·API·다운로드 이미지로 롤백

통과 기준:

- 사이트에서 0.2.x, 0.3.0, 0.4.0 계열을 버전별로 구분
- 공개 URL에서 전체 다운로드와 Range 다운로드 모두 성공
- 다운로드 파일의 외부 재계산 SHA-256이 공개값과 일치
- 진행률은 완료된 마일스톤의 가중치 합으로만 계산
- 증거 없는 수동 퍼센트 상승 금지
- 배포 후 공개 페이지, API, 다운로드, 체크섬을 외부에서 재검증

## 4. 진행률 계산 규칙

전체 진행률은 다음 가중치 합으로 계산한다.

| 영역 | 가중치 |
|---|---:|
| 원본 안전성 | 12% |
| 이미지 생성·오류 대응 | 12% |
| 파일 시스템 탐지 | 13% |
| 유형 판별·신뢰도 | 13% |
| 선택·복원 | 13% |
| Windows UX | 12% |
| 시험·증거 | 15% |
| 버전·배포 | 10% |

영역별 가중치의 합은 100이다. 각 영역은 다시 3~8개의 마일스톤으로 나누고, 다음 상태만 사용한다.

- 미착수: 0%
- 구현 중: 해당 마일스톤 0%, 별도 상태만 표시
- 구현 완료·자동 시험 통과: 마일스톤 가중치의 50%
- 실제 시험과 증거 등록 완료: 마일스톤 가중치의 100%

즉 코드가 만들어졌다는 이유만으로 기능을 100% 완료 처리하지 않는다.

## 5. 버전 정책

- `0.2.x Prototype`: 기술 실험 보관용
- `0.3.0 Product Preview`: 기존 Windows 기능 확인용
- `0.4.0 Beta 1`: 이번 1차 목표
- `0.4.x Beta`: 사용자 시험에서 발견된 결함 수정
- `0.5.0`: NTFS 또는 고급 조각화 복구 여부를 별도 의사결정
- `1.0.0`: 코드 서명, 설치·업데이트, 약관·지원 체계, 회귀 시험을 모두 통과한 유료 판매 가능판

버전은 같은 번호의 파일을 교체하지 않는다. 수정 빌드는 새 버전 또는 명시적 빌드 번호로 발행한다.

## 6. Beta 1 종료 게이트

다음 중 하나라도 충족하지 못하면 0.4.0 Beta 1 완료로 표시하지 않는다.

- G1: 원본 쓰기 경로 부재와 시스템 디스크 차단 증거
- G2: FAT32/exFAT 자동 시험 전부 통과
- G3: 1,000파일 깨끗한 삭제 시험 SHA 100% 일치
- G4: 덮어쓰기·손상 조건에서 거짓 성공 0건
- G5: Windows 6단계 UX와 접근성·해상도 점검
- G6: 버전별 다운로드, SHA-256, 릴리스 노트 공개
- G7: 외부 사이트·API·Range 다운로드·롤백 검증

코드 서명과 실제 USB 다중 장치 시험이 끝나지 않았다면 “상용 정식판”이 아니라 “Beta”로만 배포한다.

## 7. 바로 시작하는 구현 순서

1. 사이트 진행상태 API의 대용량 저장 안정화
2. Core 0.4의 파일 시그니처·신뢰도 판정
3. Windows 결과표에 유형·점수·판정 근거 표시
4. 0.4.0 개발 빌드와 자동 시험
5. 버전 아카이브와 가중 진행률 화면
6. 1,000파일 코퍼스 재현 시험
7. Beta 1 패키징, 외부 검증, 사이트 공개
