# task-15.1 작업 보고서

## 작업 정보
- **작업 ID**: task-15.1
- **팀**: dev3-team (라/Ra 팀장)
- **소요 시간**: 3분 12초
- **완료 시각**: 2026-03-01 09:23:12

## 작업 내용
파이썬으로 간단한 연락처 관리 프로그램 개발 (이름/전화번호 추가/검색/삭제/목록조회, JSON 저장)

## GLM 결과 요약
GLM(glm-4.7-flash)이 `ContactManager` 클래스 기반의 연락처 관리 프로그램을 작성함.
기본 기능(추가, 검색, 삭제, 목록조회, JSON 저장)과 단위 테스트 6개를 포함하여 단일 파일로 구현.

### 팀장 검토 후 수정 사항 (4건)
1. **버그 수정**: 테스트에서 한글 이름 "김철수"를 영문 "kim cheolsu"로 검색하는 잘못된 assertion 수정
2. **코드 품질**: `__import__('datetime')` 비표준 패턴을 상단 `import datetime`으로 변경
3. **버그 수정**: ID 할당 방식을 `len(contacts)+1`에서 `max(id)+1`로 변경 (삭제 후 ID 충돌 방지)
4. **오타 수정**: 주석의 "연몽처" → "연락처"
5. **테스트 격리**: 테스트가 실제 데이터 파일 대신 별도 테스트 파일 사용하도록 수정
6. **데모 코드**: 기존 데이터 충돌 방지를 위해 `clear_all_contacts()` 호출 추가

## 생성 파일 목록
- `/home/jay/workspace/teams/dev3/contacts.py` — 메인 프로그램 + 테스트 코드 (단일 파일)
- `/home/jay/workspace/teams/dev3/contacts.json` — 데이터 저장 파일 (자동 생성)

## 구현 기능
- `add_contact(name, phone)` — 연락처 추가 (중복 이름 방지)
- `search_contact(name=, phone=)` — 부분 검색 지원
- `delete_contact(name)` — 이름으로 삭제
- `list_contacts()` — 전체 목록 조회
- `get_contact_count()` — 연락처 개수 조회
- `clear_all_contacts()` — 전체 삭제
- JSON 파일 자동 저장/로드

## 테스트 결과
- **통과**: 6/6
- **실패**: 0/6
- 테스트 항목: 추가/검색, 삭제, 존재여부, 중복방지, 개수조회, 전체삭제

## 버그 유무
- GLM 원본 코드에서 **버그 2건** 발견 및 수정 완료
  1. 영문 이름으로 한글 연락처 검색하는 테스트 (assertion 오류)
  2. 삭제 후 추가 시 ID 중복 가능성 (ID 할당 로직)
- 수정 후 전체 테스트 통과 확인
