# task-9.3 보고서

- 팀: dev3-team (라)
- 작업: 파이썬 파일 정리 유틸리티 개발
- 소요 시간: 2분 16초
- 날짜: 2026-03-01

## 생성 파일

- `/home/jay/workspace/teams/dev3/file_organizer.py` — FileOrganizer 클래스 + 테스트 코드

## 구현된 기능

1. `scan_directory()` — 디렉토리 재귀 스캔
2. `classify_by_extension()` — 확장자별 파일 분류
3. `get_file_statistics()` — 파일 크기 통계 (총 크기, 최대/최소 파일 등)
4. `calculate_file_hash()` — MD5/SHA1/SHA256 해시 계산
5. `find_duplicates()` — 해시 기반 중복 파일 탐지
6. `generate_report()` — 전체 보고서 생성

## GLM 코드 품질

- 전체 구조: 양호. 클래스 설계가 깔끔하고 docstring 포함
- 에러 처리: 기본적 수준 (디렉토리 검증, 해시 계산 시 예외 무시)
- 코드 스타일: PEP8 준수, 타입 힌트 포함

## 버그 발견 및 수정

**버그 1건 발견 — 직접 수정 완료**

`get_file_statistics()` 메서드에서 `max_file_name`과 `min_file_name`이 항상 `self.files[0]` (첫 번째 파일)을 반환하는 버그.
실제 최대/최소 크기 파일을 추적하도록 `max_file`, `min_file` 변수를 추가하여 수정.

- 수정 전: 가장 큰 파일이 `calculator.py`로 잘못 표시
- 수정 후: `AGENTS.md` (7869 bytes)로 정확히 표시

또한 `by_size` defaultdict가 생성만 되고 사용되지 않아 제거함.

## 테스트 결과

모든 6개 테스트 통과:
- 디렉토리 스캔: 36개 파일 탐지
- 파일 크기 통계: 정상 (총 0.07MB)
- 확장자별 분류: .json 1개, .md 10개, .py 7개, .sample 14개, no_extension 4개
- MD5 중복 탐지: 정상 동작
- 전체 보고서: 정상 생성
- SHA256 중복 탐지: 정상 동작

## 종합 평가

GLM이 기본 구조와 기능을 잘 구현했으나, 통계 메서드에서 최대/최소 파일명을 잘못 반환하는 논리 버그가 있었음. 테스트 코드가 포함되어 있었지만 이 버그를 감지하지 못하는 구조였음 (assert 없이 출력만 하므로). 전체적으로 80점 수준.
