Skip to content

chore(server): 내가 푼 문제 히스토리 API 제거 (#293) - #296

Merged
eil-you merged 1 commit into
mainfrom
chore/293-remove-attempt-history-server
Aug 13, 2026
Merged

chore(server): 내가 푼 문제 히스토리 API 제거 (#293)#296
eil-you merged 1 commit into
mainfrom
chore/293-remove-attempt-history-server

Conversation

@eil-you

@eil-you eil-you commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

무엇을 / 왜

"내가 푼 문제" 풀이 기록 조회 API(#261)를 없애기로 결정했다. FE 쪽(#294, PR #295)이 먼저 머지·배포된 뒤 이 PR을 머지한다 — 순서가 바뀌면 배포된 앱이 죽은 API를 호출하게 된다.

변경 사항

  • GET /quizzes/attempts(QuizController.getAttemptHistory) 엔드포인트 제거
  • QuizService.getAttemptHistory·fetchAttemptPage 제거, submitAnswer는 3-arg QuizAttempt.create(selectedAnswer 없이)를 쓰도록 변경
  • QuizAttemptRepository에서 커서 페이지네이션 쿼리(findPageByUserId·findPageByUserIdBeforeId)만 제거 — findByUserIdAndQuiz_StepOrder(핵심 학습 흐름용)는 그대로 유지
  • QuizAttempt.selectedAnswer 필드/컬럼 매핑과 4-arg create 오버로드 제거 (3-arg create만 유지)
  • dto/QuizAttemptHistoryResponse.java 삭제
  • 테스트: 이 기능 전용 파일 4개 삭제(QuizAttemptHistoryAcceptanceTest·QuizAttemptHistoryControllerTest·QuizAttemptHistoryServiceTest·QuizAttemptRepositoryTest), QuizServiceSubmitAnswerTest에서 selectedAnswer 전용 테스트 2개 제거

selected_answer 컬럼 자체는 이번에 안 지운다(DB에 orphan 컬럼으로 남지만 아무도 읽지도 쓰지도 않아 무해함) — 이슈 #293에서 이 컬럼 삭제는 선택 사항으로 명시했고, 최소 변경으로 유지하는 게 안전하다고 판단.

선행 / 후행

API 계약

  • GET /api/v1/quizzes/attempts 제거 (breaking change, 단 FE가 먼저 호출을 끊은 뒤 배포하므로 실사용 영향 없음)
  • 나머지 5개 quiz 엔드포인트는 변경 없음

회귀 영향

없음 — 근거:

  • findByUserIdAndQuiz_StepOrder(다음 문제 판정·스텝 완료 처리에 쓰임)와 quizAttemptRepository.save(...) 호출은 그대로 유지, 3번째 인자(selectedAnswer)만 빠짐
  • QuizAttempt 엔티티·quiz_attempt 테이블 구조 그대로

DB 변경

없음 — selected_answer 컬럼은 JPA 매핑만 제거하고 컬럼 자체는 남겨둠(orphan, 무해)

테스트 증거

  • ./gradlew build 통과
  • 동적 검증(로컬 기동 + curl):
    • GET /quizzes/attempts → 404 확인
    • POST /quizzes/{id}/answers 정상 동작, quiz_attemptis_correct 채워지고 selected_answer는 NULL로 저장됨 확인
    • GET /quizzes/next 정상 동작 확인
    • /v3/api-docs에서 attempts 0건 확인(Swagger에서도 사라짐)

관련 이슈

Closes #293

체크리스트

  • 제목이 커밋 컨벤션을 따른다
  • 로컬에서 동작 확인
  • 하나의 관심사만 담았다

Summary by CodeRabbit

  • 변경 사항

    • 퀴즈 풀이 기록 조회 기능이 제거되었습니다.
    • 풀이 기록에는 문제, 사용자, 정답 여부만 저장되며 선택한 답안 정보는 더 이상 저장되지 않습니다.
    • 기존 풀이 기록 조회 및 페이지네이션 관련 응답과 동작이 제공되지 않습니다.
  • 영향

    • 풀이 이력 목록을 확인하거나 선택 답안을 조회하던 기능은 사용할 수 없습니다.
    • 관련 API를 사용하는 클라이언트는 호출 및 응답 처리를 업데이트해야 합니다.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 182c522f-bbc8-4ed9-9179-bde07f6b438e

📥 Commits

Reviewing files that changed from the base of the PR and between c55df8a and 9e1bfdd.

📒 Files selected for processing (10)
  • server/src/main/java/studio/thumbsup/server/quiz/QuizAttempt.java
  • server/src/main/java/studio/thumbsup/server/quiz/QuizAttemptRepository.java
  • server/src/main/java/studio/thumbsup/server/quiz/QuizController.java
  • server/src/main/java/studio/thumbsup/server/quiz/QuizService.java
  • server/src/main/java/studio/thumbsup/server/quiz/dto/QuizAttemptHistoryResponse.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryAcceptanceTest.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryControllerTest.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryServiceTest.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptRepositoryTest.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizServiceSubmitAnswerTest.java
💤 Files with no reviewable changes (8)
  • server/src/test/java/studio/thumbsup/server/quiz/QuizServiceSubmitAnswerTest.java
  • server/src/main/java/studio/thumbsup/server/quiz/QuizAttemptRepository.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptRepositoryTest.java
  • server/src/main/java/studio/thumbsup/server/quiz/dto/QuizAttemptHistoryResponse.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryServiceTest.java
  • server/src/main/java/studio/thumbsup/server/quiz/QuizController.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryControllerTest.java
  • server/src/test/java/studio/thumbsup/server/quiz/QuizAttemptHistoryAcceptanceTest.java

📝 Walkthrough

Walkthrough

퀴즈 풀이 이력 조회 API와 관련 DTO, 저장소 페이지네이션 메서드, 테스트를 제거했습니다. QuizAttempt는 선택 답안을 저장하지 않으며, 답안 제출은 문제·사용자·정답 여부만 기록합니다.

Changes

퀴즈 풀이 이력 기능 제거

Layer / File(s) Summary
시도 기록 계약 정리
server/src/main/java/studio/thumbsup/server/quiz/QuizAttempt.java
selectedAnswer 필드와 관련 생성자 및 create 오버로드를 제거했습니다.
답안 제출 및 저장소 경로 정리
server/src/main/java/studio/thumbsup/server/quiz/QuizService.java, server/src/main/java/studio/thumbsup/server/quiz/QuizAttemptRepository.java
답안 제출에서 선택 답안 문자열 저장을 제거했습니다. 커서 기반 풀이 이력 조회 메서드와 관련 페이지네이션 메서드를 제거했습니다.
조회 API와 검증 코드 제거
server/src/main/java/studio/thumbsup/server/quiz/QuizController.java, server/src/main/java/studio/thumbsup/server/quiz/dto/QuizAttemptHistoryResponse.java, server/src/test/java/studio/thumbsup/server/quiz/*
getAttemptHistory 엔드포인트와 이력 응답 DTO를 삭제했습니다. 풀이 이력 조회 및 선택 답안 저장 테스트를 삭제했습니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Mergeability Score: ⚪ Minimal · up to 9e1bf

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: kmjnnhyk, leejisuu, byeongbumseo

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning 히스토리 API 코드는 제거했지만, 갱신해야 할 기존 테스트 파일 전체를 삭제해 #293의 테스트 범위를 충족하지 못합니다. QuizServiceSubmitAnswerTest와 QuizAttemptRepositoryTest에서 히스토리 관련 검증만 제거하고, 핵심 학습 흐름과 저장 동작을 검증하는 테스트는 유지하십시오.
Out of Scope Changes check ⚠️ Warning 페이지 조회와 무관한 답안 제출 및 저장소 핵심 동작 테스트까지 전체 삭제한 변경은 #293의 범위를 벗어납니다. QuizServiceSubmitAnswerTest와 QuizAttemptRepositoryTest의 비히스토리 테스트를 복원하고, 히스토리 관련 테스트만 삭제 또는 수정하십시오.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 서버의 ‘내가 푼 문제’ 히스토리 API 제거라는 주요 변경을 정확하고 간결하게 설명합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/293-remove-attempt-history-server

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@eil-you
eil-you merged commit c9e2655 into main Aug 13, 2026
4 checks passed
@eil-you
eil-you deleted the chore/293-remove-attempt-history-server branch August 13, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(server): 내가 푼 문제 히스토리 API 제거 (#261 되돌림) (S6)

1 participant