# CHANGELOG.md

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2026-07-07 (Official Release)

### Added
- Windows 폴더 선택창 자동 실행
  - 프로그램 실행 시 폴더 선택창이 자동으로 열립니다.
  - 취소 시 [다시 선택]/[프로그램 종료] 메뉴 제공
- WebP 변환 (모든 입력 이미지를 WebP로 변환)
- 화질 선택 기능 (1-6번 프리셋 + 사용자 직접 입력)
- 출력 폴더 자동 생성
- 중복 출력 폴더 자동 번호 부여 (예: `_webp_q85_1`)
- 중복 파일명 자동 번호 부여 (예: `_webp_q85_1.webp`)
- EXIF 제거
- 하위 폴더 재귀 처리 및 구조 유지 출력
- 로그 저장 (logs/ 폴더)
- Python이 없는 환경에서도 실행 가능한 Windows EXE 배포

### Fixed
- 입력 폴더 선택 버그 수정
  - `scan_images()`가 내부적으로 config.input_folder를 재사용하여 선택 폴더를 무시하던 문제 해결
  - 선택 폴더를 명시적으로 전달하도록 시그니처 변경
  - 검색/상대경로/출력 폴더/로그/화면 표시가 모두 선택 폴더 기준으로 일치

---

## [2.0.0-dev] - 2026-07-07

### Added
- v2.0 개발 시작 (기준점: v1.1.0 Official Baseline)
- 입력 폴더 선택 기능 구현
  - 프로그램 실행 시 Windows 폴더 선택창(auto Tkinter dialog) 자동 실행
  - 사용자가 취소할 경우 "입력 폴더를 선택하지 않았습니다." 메시지와 함께 [다시 선택]/[프로그램 종료] 메뉴 제공
  - GUI 사용 불가 환경에서는 경로 직접 입력으로 폴백

### Fixed
- 입력 폴더 선택 버그 수정
  - `scan_images()`가 내부적으로 config.input_folder를 재사용하여 선택 폴더를 무시하던 문제 해결
  - `scan_images(config, input_path)` 시그니처 변경: 선택 폴더를 명시적으로 전달
  - 검색/상대경로/출력 폴더/로그/화면 표시가 모두 선택 폴더 기준으로 일치
  - 출력 폴더는 `<선택폴더>_webp_q<화질>`로 선택 폴더 기준 생성
  - config.json input_folder는 기본값으로만 사용 (선택창 결과 최우선)

---

## [1.1.0] - 2026-07-07 (Official Release / Baseline)

### Added
- 실행 시 화질 선택 메뉴 (1-6번 프리셋: 95/90/85/80/70, 사용자 직접 입력)
- 사용자 직접 화질 입력 기능 (1-100)
- 잘못된 입력 시 기본값(90) 자동 적용
- config.json 기본값 유지 + 실행 시 선택값 우선 적용
- 출력 폴더 중복 시 자동 번호 부여 (예: `_q90_1`, `_q90_2`)
- 출력 파일명 중복 시 자동 번호 부여 (예: `_1.webp`)
- 실행 로그 저장 (logs/ 폴더, 화질별 날짜별 로그)

### Changed
- 모든 출력을 WebP 형식으로 변환 (기존 JPG/PNG 유지 방식 폐기)
- 출력 폴더명: `_q품질` → `_webp_q품질`
- 출력 파일명: `_q품질.확장자` → `_webp_q품질.webp`
- PNG 투명 배경(RGBA) 최적화 저장 지원
- 기존 출력 폴더가 존재하면 자동 번호 부여로 새 폴더 생성
- 사용자 Y/N 덮어쓰기 확인 제거
- 파일명 중복 시 자동 번호 부여

### Fixed
- EXIF 정보 제거로 용량 감소 및 개인정보 보호
- 하위 폴더 재귀 검색 및 구조 유지 출력

---

## [1.1.0-dev] - 2026-07-07

### Changed
- PhotoResizer v1.0 → v1.1 개발 시작
- 사용 편의성 개선: 실행 시 화질 선택 기능 추가

### Added
- src/main.py: select_quality() 함수 추가 (화질 선택 UI)
- 6가지 화질 프리셋 (95, 90, 85, 80, 70, 사용자 입력)
- 잘못된 입력 처리 로직 (기본값 90 자동 적용)

---

## [1.0.0] - 2026-07-07

### Added
- src/config.py: 설정 파일 로드 및 경로 관리
- src/image_scanner.py: 이미지 파일 검색 (하위 폴더 포함)
- src/image_processor.py: 이미지 리사이즈 및 WebP 변환
- src/image_saver.py: 출력 폴더 생성 및 파일 저장
- src/logger.py: 실행 로그 저장 (성공/실패 기록)
- src/main.py: 메인 프로그램 및 실행 흐름
- config.json: 품질, 크기, 입력 폴더, 출력 형식 설정
- run.bat: PhotoResizer 실행 스크립트
- build_exe.bat: PyInstaller EXE 빌드 스크립트

---

## [0.1.0-initial] - 2026-07-06

### Added
- 프로젝트 초기 구조 생성
- AI-WORKS Standard v2.0 템플릿 적용