Skip to content

Conversation

@hyesngy
Copy link
Member

@hyesngy hyesngy commented Dec 1, 2025

✨ 작업 개요

퀴즈 오답노트 스크랩 안되는 문제 해결

📌 관련 이슈

✅ 작업 내용

  • 퀴즈 오답노트 스크랩 문제 해결
  • 대시보드 내 스크랩 리스트 최신순 정렬 수정

📷 UI 스크린샷 (해당 시)

💬 기타 사항

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 퀴즈 결과에서 여러 단어를 한 번에 스크랩할 수 있는 기능이 추가되었습니다.
  • 성능 개선

    • 스크랩 작업의 효율성이 개선되어 더 빠른 처리가 가능해졌습니다.
    • 관련 용어 검색 로직이 최적화되었습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@hyesngy hyesngy self-assigned this Dec 1, 2025
@hyesngy hyesngy requested a review from a team as a code owner December 1, 2025 10:04
@hyesngy hyesngy added the 🛠 Fix 버그 수정 label Dec 1, 2025
@hyesngy hyesngy linked an issue Dec 1, 2025 that may be closed by this pull request
@vercel
Copy link

vercel bot commented Dec 1, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
gotit Ready Ready Preview Comment Dec 1, 2025 10:04am

@coderabbitai
Copy link

coderabbitai bot commented Dec 1, 2025

Caution

Review failed

The pull request is closed.

개요

이 PR은 퀴즈 오답노트의 스크랩 추가 버그를 수정하고, 스크랩 관련 API를 개선합니다. 기존의 개별 항목 반복 처리 방식을 일괄 처리로 변경하고, 관련 유틸리티 함수들을 최적화합니다.

변경 사항

응집군 / 파일 변경 요약
스크랩 API 구현
src/contexts/auth/ScrapContext.tsx
새로운 공개 메서드 addMultipleToScrap(termIds: number[]) => Promise<number> 추가. 이미 스크랩된 ID 필터링, Firestore 동기화, 새로 추가된 항목 수 반환 기능 포함
스크랩 UI 로직 업데이트
src/app/quiz/components/QuizResult.tsx
개별 문제마다 스크랩 토글하는 방식에서 일괄 스크랩 API 호출로 변경. 모든 용어 ID 수집 후 addMultipleToScrap() 호출, 토스트 메시지에 스크랩된 항목 수 표시
정렬 유틸리티 리팩토링
src/app/dashboard/utils/order.ts
"latest" 정렬 경로에서 sortByDateDesc 의존성 제거, 배열 역순 정렬로 단순화. 다른 정렬 방식은 sortByKorean 유지
용어 조회 최적화
src/lib/terms.ts
getRelatedTerms 구현 변경: 인덱스맵을 통한 ID 기반 조회로 순서 보존 및 누락된 항목 필터링 개선

시퀀스 다이어그램

sequenceDiagram
    participant QuizResult as QuizResult<br/>(컴포넌트)
    participant ScrapContext as ScrapContext<br/>(Provider)
    participant Firestore as Firestore<br/>(DB)
    
    QuizResult->>QuizResult: 틀린 문제 모두 수집<br/>(용어 ID 배열)
    QuizResult->>ScrapContext: addMultipleToScrap(termIds)
    
    activate ScrapContext
    ScrapContext->>ScrapContext: 이미 스크랩된 ID 필터링
    
    alt 새로 추가할 항목 있음
        ScrapContext->>Firestore: 업데이트된 스크랩 목록 저장
        activate Firestore
        Firestore-->>ScrapContext: 저장 완료
        deactivate Firestore
        ScrapContext->>ScrapContext: 로컬 상태 업데이트
        ScrapContext-->>QuizResult: 추가된 항목 수 반환
    else 이미 모두 스크랩됨
        ScrapContext-->>QuizResult: 0 반환
    end
    deactivate ScrapContext
    
    QuizResult->>QuizResult: 토스트 메시지 표시<br/>(결과에 따라 다름)
Loading

코드 리뷰 예상 소요 시간

🎯 3 (Moderate) | ⏱️ ~20 분

추가 검토 항목:

  • ScrapContext.tsx: 새로운 addMultipleToScrap 메서드의 필터링 로직과 에러 처리 (Firestore 동기화 보장)
  • QuizResult.tsx: 스크랩 API 호출 시 올바른 용어 ID 수집 및 토스트 메시지 조건 분기 검증
  • terms.ts: 인덱스맵 구성 시 기존 정렬 순서 보존 여부 확인
  • order.ts: "latest" 정렬 시 역순 처리가 기존 날짜 정렬과 동일한 결과 제공하는지 확인

관련 가능성 있는 PR

  • PR #70: 동일 파일(src/app/dashboard/utils/order.ts)의 정렬 기능 추가 PR — 이 PR에서 sortByDateDesc 의존성 제거와 직접 관련
  • PR #88: 동일한 QuizResult 컴포넌트와 ScrapContext 수정 — 이 PR에서 새로 추가된 API를 활용하는 변경과 직접 관련
  • PR #36: 동일 파일(src/lib/terms.ts)의 getRelatedTerms 구현 변경 — 함수의 조회 로직 최적화와 직접 관련

🐰 한 번에 쓸어담는 스크랩들,
일괄 처리의 매력에 빠져
버그는 사라지고 속도만 쌩쌩~
더 이상 헤매지 않는 오답노트,
토끼가 짝짝짝 박수를 쳐! 🥕✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/107-quiz-scrap

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a80f7a2 and 094f82c.

📒 Files selected for processing (4)
  • src/app/dashboard/utils/order.ts (2 hunks)
  • src/app/quiz/components/QuizResult.tsx (2 hunks)
  • src/contexts/auth/ScrapContext.tsx (2 hunks)
  • src/lib/terms.ts (1 hunks)

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 and usage tips.

@hyesngy hyesngy merged commit 210ad77 into develop Dec 1, 2025
3 of 4 checks passed
@hyesngy hyesngy deleted the fix/107-quiz-scrap branch December 1, 2025 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🛠 Fix 버그 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 퀴즈 오답노트 스크랩 추가

2 participants