# 작업 보고서: task-17.1

## 기본 정보
- **작업 ID**: task-17.1
- **팀**: dev3-team
- **담당**: 라(Ra), 개발3팀장
- **소요 시간**: 1분 34초
- **완료 일시**: 2026-03-01 10:25:27

## 작업 내용
파이썬으로 간단한 할일(TODO) 관리 프로그램 개발.
- 할일 추가/완료처리/삭제/목록조회/우선순위설정
- JSON 파일로 영구 저장
- 테스트 코드 포함

## GLM 결과 요약
오픈클로 메인 에이전트(GLM-5)에 작업을 전달했으나, 에이전트는 위임 확인만 반환하고 실제 파일을 생성하지 않음. 팀장이 직접 개발 수행.

## 생성 파일 목록
- `/home/jay/workspace/teams/dev3/todo_app.py` — TODO 관리 프로그램 + 테스트 코드 (단일 파일)

## 주요 기능
- `TodoApp` 클래스: JSON 기반 할일 관리
  - `add(title, priority)` — 할일 추가 (low/medium/high/urgent)
  - `complete(task_id)` — 할일 완료 처리
  - `delete(task_id)` — 할일 삭제
  - `list_tasks(status, priority)` — 목록 조회 (상태/우선순위 필터)
  - `set_priority(task_id, priority)` — 우선순위 변경
  - `get(task_id)` — 단건 조회
- JSON 파일 자동 저장/불러오기

## 테스트 결과
- **통과**: 26개
- **실패**: 0개
- **전체**: 26/26 통과 (100%)

## 버그 발견 및 수정
- **버그 1건 발견 → 수정 완료**
  - 내용: `_load()` 메서드에서 빈 파일(0바이트)을 JSON으로 파싱하려 할 때 `JSONDecodeError` 발생
  - 원인: `os.path.exists()` 체크만 했으나 파일이 존재하되 비어있는 경우 처리 누락
  - 수정: `os.path.getsize() > 0` 체크 추가 및 `try/except JSONDecodeError` 방어 코드 적용
