chore(server): 내가 푼 문제 히스토리 API 제거 (#293) - #296
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
💤 Files with no reviewable changes (8)
📝 WalkthroughWalkthrough퀴즈 풀이 이력 조회 API와 관련 DTO, 저장소 페이지네이션 메서드, 테스트를 제거했습니다. Changes퀴즈 풀이 이력 기능 제거
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: ⚪ Minimal · up to The PR removes the deprecated attempt-history API and its server-side implementation while preserving the remaining quiz flow; based on the supplied checks, no actionable merge-blocking risk remains after normal review. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
무엇을 / 왜
"내가 푼 문제" 풀이 기록 조회 API(#261)를 없애기로 결정했다. FE 쪽(#294, PR #295)이 먼저 머지·배포된 뒤 이 PR을 머지한다 — 순서가 바뀌면 배포된 앱이 죽은 API를 호출하게 된다.
변경 사항
GET /quizzes/attempts(QuizController.getAttemptHistory) 엔드포인트 제거QuizService.getAttemptHistory·fetchAttemptPage제거,submitAnswer는 3-argQuizAttempt.create(selectedAnswer 없이)를 쓰도록 변경QuizAttemptRepository에서 커서 페이지네이션 쿼리(findPageByUserId·findPageByUserIdBeforeId)만 제거 —findByUserIdAndQuiz_StepOrder(핵심 학습 흐름용)는 그대로 유지QuizAttempt.selectedAnswer필드/컬럼 매핑과 4-argcreate오버로드 제거 (3-argcreate만 유지)dto/QuizAttemptHistoryResponse.java삭제QuizAttemptHistoryAcceptanceTest·QuizAttemptHistoryControllerTest·QuizAttemptHistoryServiceTest·QuizAttemptRepositoryTest),QuizServiceSubmitAnswerTest에서 selectedAnswer 전용 테스트 2개 제거selected_answer컬럼 자체는 이번에 안 지운다(DB에 orphan 컬럼으로 남지만 아무도 읽지도 쓰지도 않아 무해함) — 이슈 #293에서 이 컬럼 삭제는 선택 사항으로 명시했고, 최소 변경으로 유지하는 게 안전하다고 판단.선행 / 후행
API 계약
GET /api/v1/quizzes/attempts제거 (breaking change, 단 FE가 먼저 호출을 끊은 뒤 배포하므로 실사용 영향 없음)회귀 영향
없음 — 근거:
findByUserIdAndQuiz_StepOrder(다음 문제 판정·스텝 완료 처리에 쓰임)와quizAttemptRepository.save(...)호출은 그대로 유지, 3번째 인자(selectedAnswer)만 빠짐QuizAttempt엔티티·quiz_attempt테이블 구조 그대로DB 변경
없음 —
selected_answer컬럼은 JPA 매핑만 제거하고 컬럼 자체는 남겨둠(orphan, 무해)테스트 증거
./gradlew build통과GET /quizzes/attempts→ 404 확인POST /quizzes/{id}/answers정상 동작,quiz_attempt에is_correct채워지고selected_answer는 NULL로 저장됨 확인GET /quizzes/next정상 동작 확인/v3/api-docs에서attempts0건 확인(Swagger에서도 사라짐)관련 이슈
Closes #293
체크리스트
Summary by CodeRabbit
변경 사항
영향