Hacktoberfest 2026 Week 3의 'Slow and Steady' 테마에 맞춰, 저는 Python과 로컬 AI를 사용하여 AI 파일 정리기를 구축했습니다.
목표는 간단했습니다. 파일 유형을 기반으로 파일을 적절한 폴더로 분류하는 방법을 탐색하고, 로컬에서 실행되는 AI 모델이 파일 분류 작업에 어떻게 도움을 줄 수 있는지 알아내는 것이었습니다.
프로젝트가 하는 일은 무엇인가요?
AI 파일 정리기는 지정된 폴더를 스캔하여 파일을 카테고리별로 분류합니다.
카테고리는 다음과 같습니다:
- 문서 (Documents) — PDF, DOCX, TXT 및 스프레드시트 파일
- 이미지 (Images) — JPG, PNG, GIF 및 기타 이미지 형식
- 미디어 (Media) — 오디오 및 비디오 파일
- 코드 (Code) — Python, JavaScript, Java 및 기타 프로그래밍 파일
- 기타 파일 (Other files) — 지원되는 카테고리에 속하지 않는 파일
이 애플리케이션은 제안된 파일 이동을 미리 보여주고 확인을 요청한 후에 파일을 정리합니다. 또한 기존 파일을 덮어쓰는 것을 방지하기 위해 중복 파일 이름도 처리합니다.
사용 기술 (Technologies used)
- Python — 핵심 애플리케이션 로직
- Ollama — AI 모델을 로컬에서 실행
- Gemma 3 (1B) — 생소한 파일 유형 분류 지원
- Git 및 GitHub — 버전 관리 및 프로젝트 호스팅
AI는 어떻게 작동하나요? 저는 하이브리드 접근 방식을 사용했습니다.
일반적인 파일 확장자의 경우, 애플리케이션은 미리 정의된 규칙을 사용합니다. 생소한 확장자의 경우, 로컬 Gemma 모델에 카테고리 제안을 요청합니다.
모델의 응답은 허용되는 카테고리와 비교하여 검증됩니다. 만약 응답이 유효하지 않거나 오류가 발생하면, 애플리케이션은 '기타 파일'로 폴백(fallback)합니다.
이 접근 방식을 통해 저는 AI가 애플리케이션의 모든 부분을 제어할 필요 없이도 유용할 수 있다는 것을 배웠습니다. 결정론적 규칙과 AI 제안을 결합함으로써 시스템은 더 예측 가능해집니다.
난관 및 학습 내용 (Challenges and learnings)
한 가지 난관은 AI 모델이 항상 예상되는 카테고리를 반환하지 않았다는 점이었습니다. 저는 모델의 출력을 맹신하는 대신 검증하는 법을 배웠습니다.
또한, 이동 전 미리보기 워크플로우를 구현하고 중복 파일 이름 처리를 테스트했습니다.
이 프로젝트를 통해 저는 Python 파일 처리(file handling), 예외 처리(exception handling), 로컬 AI 모델 사용, 그리고 버전 관리를 위한 Git 사용을 연습할 수 있었습니다.
프로젝트 저장소
🔗 GitHub: [https://github.com/MedhaSunkad13/AI-File-Organizer]
향후 개선 방향:
더 나은 분류(classification), 추가 파일 카테고리, 그리고 더욱 포괄적인 테스트를 통해 프로젝트를 개선하고 싶습니다.
이 프로젝트를 구축하면서 작은 단계들을 거치는 꾸준한 발전이 작동하는 애플리케이션으로 이어질 수 있다는 것을 깨달았습니다.
커뮤니티의 제안을 듣고 싶습니다!