Skip to content

fix: 기수 프로젝트 기반으로 학습 현황 집계 범위 수정 (재적용)#32

Merged
soobing merged 1 commit intomainfrom
fix/10-cohort-based-learning-status-v2
Apr 20, 2026
Merged

fix: 기수 프로젝트 기반으로 학습 현황 집계 범위 수정 (재적용)#32
soobing merged 1 commit intomainfrom
fix/10-cohort-based-learning-status-v2

Conversation

@soobing
Copy link
Copy Markdown
Contributor

@soobing soobing commented Apr 20, 2026

문제

재참여자(여러 기수 참여자)의 경우, 이전 기수에서 제출한 풀이가 현재 기수의 학습 현황에 포함되어 누적 풀이 수와 카테고리 진행도가 부정확하게 표시됨.

원인: fetchUserSolutions 가 레포 전체 트리를 스캔하여 파일 존재 여부만 확인하므로, 기수와 무관하게 모든 풀이를 카운팅.

이전에 #13 에서 해결되었으나 #18 에서 원복됨 (원복 사유가 PR/이슈에 기록되지 않음). 본 PR 은 #13 과 동일한 접근으로 재구현.

해결

열린 "리트코드 스터디X기" GitHub Projects 를 기수 경계로 활용.

  • 현재 진행 중인 기수 프로젝트(closed: false) 자동 탐지
  • 해당 프로젝트에 연결된 유저의 머지된 PR만 대상으로 풀이 집계
  • 기수 프로젝트를 찾지 못할 경우 기존 전체 트리 스캔으로 폴백

변경 사항

  • utils/learningData.js: fetchCohortUserSolutions 함수 추가 (내부적으로 fetchActiveCohortProjectId, fetchUserMergedPRsInProject 사용)
  • handlers/learning-status.js: fetchUserSolutionsfetchCohortUserSolutions 교체
  • tests/subrequest-budget.test.js: 새 호출 패턴에 맞춰 mock 갱신. cohort 당 최대 15개 PR 시나리오 반영 — 예상 subrequest 31회 (여전히 50회 제한 이하)

Subrequest 영향

단계 Before (tree scan) After (cohort-based, cohort PR 15개 가정)
풀이 목록 조회 tree 1 GraphQL projectsV2 1 + GraphQL items 1 + cohort PR files 15
총 호출 15 31

Test plan

  • bun test — 54/54 통과
  • Preview 환경에서 실제 기수 프로젝트로 학습 현황 댓글 검증
  • 재수 참여자 계정으로 이전 기수 풀이가 카운트되지 않는지 확인

Closes #10

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 20, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
github 5c7063e Commit Preview URL

Branch Preview URL
Apr 20 2026, 12:36 PM

@soobing soobing requested a review from sounmind April 20, 2026 12:34
@soobing soobing self-assigned this Apr 20, 2026
재참여자의 이전 기수 풀이가 현재 기수 누적 학습 현황에 포함되던 문제를
수정한다. 레포 전체 트리 스캔 대신, 열린 "리트코드 스터디X기" GitHub
프로젝트에 연결된 머지된 PR만을 기준으로 집계하도록 변경한다.

subrequest 회귀 테스트는 새 호출 패턴(GraphQL project lookup + cohort PR
files)에 맞춰 mock 과 예상 카운트를 31 로 갱신했다 (cohort 당 최대 15개 PR 가정).

Closes #10

Co-Authored-By: sounmind <37020415+sounmind@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@soobing soobing force-pushed the fix/10-cohort-based-learning-status-v2 branch from 369222d to 5c7063e Compare April 20, 2026 12:36
@soobing soobing merged commit 57ec681 into main Apr 20, 2026
2 checks passed
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.

리트코드 스터디 재수하시는 분들 풀이한 문제 카운팅 해결

2 participants