# [PRD] AI Photo Organizer (가칭) > 상태: 확정(Final) · 대상: 개발/디자인/QA > (원문 보관 — 일부 오타는 정리, 내용은 원안 유지) ## 1. 배경 사용자는 스마트폰·DSLR·클라우드 등 다양한 경로로 방대한 사진을 보유한다. 날짜·인물 정보가 파편화되어 특정 인물의 추억을 모으거나 연도별 정리에 막대한 수동 작업이 필요하다. 본 프로젝트는 **얼굴 인식**과 **메타데이터 추출**을 결합해 사용자 개입을 최소화한 자동 정리 환경을 구축한다. ## 2. 목표 - **Local-first Automation**: 클라우드 업로드 없이 로컬 PC 내에서 보안 유지하며 자동 분류. - **Intelligent Archiving**: 인물(Profile) + 시간(EXIF)을 결합한 폴더 구조 생성. - **Zero-Effort Management**: 사용자는 '정리할 폴더'와 '대상 인물'만 지정. ## 3. 핵심 사용자 시나리오 - **S01 — 특정 인물 자동 분류**: 'seunghyun' 프로필 등록 후 폴더 지정 → 해당 얼굴 포함 사진만 찾아 `/seunghyun/YYYY/MM/`로 **이동(Move)**. - **S02 — 다중 프로필 / 복사 로직**: 'yejin'·'seunghyun' 등록. 두 인물 모두 포함된 사진은 첫 프로필(seunghyun)로 **이동**, 두 번째(yejin)로 **복사(Copy)**. 원칙: 첫 번째 프로필 기준 이동 후 나머지는 복사. - **S03 — 미검출 예외 처리**: 등록 인물이 없거나 인식 실패 사진은 삭제하지 않고 `[미정]/YYYY/MM/`로 이동. ## 4. 주요 기능 | 구분 | 기능 | 설명 | |------|------|------| | 인물 관리 | 프로필 등록/수정 | 최대 3명 이름 + 얼굴 참조사진 등록 | | AI 엔진 | Face Recognition | face-api.js로 사진 인물 ↔ 프로필 유사도 측정 | | 파일 관리 | Metadata Extraction | EXIF로 촬영 년/월 추출 | | 자동 정리 | Path Auto-Generation | `/프로필/YYYY/MM/` 또는 `[미정]/YYYY/MM/` 생성 및 이동/복사 | | UI | 작업 현황 모니터링 | 실시간 진행률 + 처리 파일 목록 | | 리포팅 | 결과 리포트 | 총 처리 수, 성공/실패, 소요시간 로그 | ## 5. 비기능 요구사항 **5.1 데이터 안전성·무결성** - Atomic Operation: 이동 중 오류 시 원본 무손상 예외 처리. - No Data Loss: 동일 파일명 존재 시 덮어쓰기 전 백업/스킵 정책 정의. **5.2 성능·확장성** - Asynchronous Processing: 대량 스캔 시 UI 프리징 방지 위해 모든 파일 I/O 비동기. - Memory Management: 고해상도 분석 시 누수 방지 위해 모델 로드/해제 최적화. **5.3 확장성** - Extension Auto-detection: `.jpg/.png/.webp` 등 주요 확장자 자동 감지. ## 6. KPI - 분류 정확도 ≥ 98% - 데이터 무결성 0 Error - 작업 처리 효율성: 전체 스캔~완료 시간 측정 ## 7. 미래/비목표 - **비목표**: 클라우드(Google Photos 등) 실시간 동기화는 범위 외. - **미래확장**: 모바일/태블릿 확장 대비 descriptor 표준 저장 구조 설계. --- > 개발 단계 확정 결정은 [DECISIONS.md](./DECISIONS.md), 설계는 [ARCHITECTURE.md](./ARCHITECTURE.md) 참조.