작성일: 2026년 4월 7일 진행 단계: Phase 8 (테스트 및 버그 수정) — 계속 이전 일지: Day 10 (Upsert 지원 + 전체 테스트 스위트)
| 작업 | 내용 | 상태 |
|---|---|---|
| 백엔드 Upsert 검증 | confirm/skip upsert 동작 확인 | ✅ 완료 |
| Weekly 스케줄 저장 수정 | PATCH 요청이 schedules 테이블도 업데이트하도록 수정 | ✅ 완료 |
| Weekly 홈 화면 필터 | 해당 요일에만 약 표시 | ✅ 완료 |
| 편집 화면 요일 강조 | 편집 진입 시 선택된 요일 하이라이트 | ✅ 완료 |
| 히스토리 날짜 탭 상세 보기 | 날짜 탭으로 개별 복약 로그 확인 | ✅ 완료 |
| 히스토리 통계 정확도 수정 | total 카운트 오류 수정 (비활성 스케줄 포함 버그) | ✅ 완료 |
| 히스토리 로그 정렬 순서 | 복용 → 스킵 → 미복용 순 정렬 | ✅ 완료 |
| 히스토리 즉시 동기화 | confirm/skip 후 히스토리 즉시 갱신 | ✅ 완료 |
| 회원가입 리다이렉트 수정 | 회원가입 후 로그인 화면으로 이동 | ✅ 완료 |
| DB 초기화 | 테스트 유저 및 데이터 전체 삭제 | ✅ 완료 |
dose_service.py confirm / skip 메서드가 upsert를 정상적으로 수행하는지 확인:
update (status 및 taken_at 갱신)insertALREADY_LOGGED 400 에러 더 이상 발생 안 함medication_service.update()가 medications 테이블만 업데이트하고 스케줄 변경을 완전히 무시했음. 요일 선택이 저장되지 않음.
MedicationUpdate 스키마에 schedules 필드 없음update() 메서드 주석에 "except schedules"라고 명시되어 있었음schemas/medication.pyScheduleUpdate 모델 추가 및 MedicationUpdate에 schedules 필드 추가:
class ScheduleUpdate(BaseModel):
scheduled_time: str
cycle_type: str
cycle_value: Optional[dict | list] = None
class MedicationUpdate(BaseModel):
name: Optional[str] = None
dosage: Optional[str] = None
color_tag: Optional[str] = None
memo: Optional[str] = None
schedules: Optional[list[ScheduleUpdate]] = None # 추가