[GitHub 레포 평가 ②] RVS — Repo Vitality Score
Repo Vitality Score — 더 나은 기준
1편에서 Star의 한계를 봤다. 이제 대안을 제시한다.
📐 RVS 5대 축
| 지표 | 비중 | 뜻 |
|---|---|---|
| Momentum | 30% | 하루 평균 Star 증가량 — 현재 인기도 |
| Freshness | 20% | 가장 최근 푸시 — 살아있는 프로젝트인가 |
| Health | 25% | Open Issues / Stars 비율 — 관리 상태 |
| Engagement | 15% | Forks / Stars 비율 — 커뮤니티 참여도 |
| Contemporary | 10% | 생성된 지 얼마나 됐나 — 시대성 |
왜 이 5가지인가
Momentum (30%)
Star 총합은 과거의 유산. 하루 평균 증가량이 현재의 온도다. 핫한 신규 프로젝트를 잡아내는 핵심 지표.
Freshness (20%)
마지막 커밋이 1년 전인 프로젝트는 죽었다. 7일 이내 푸시된 프로젝트만 살아있다.
Health (25%)
쌓인 이슈는 기술 부채. ratio가 낮을수록 관리가 잘 되는 프로젝트.
Engagement (15%)
Fork는 '써보겠다'는 의지. Fork/Star 비율이 높을수록 커뮤니티가 실질적으로 참여한다.
Contemporary (10%)
2025년 이후 생성된 프로젝트에 가산점. 너무 오래된 프로젝트는 기술 스택이 낡았을 가능성이 높다.
Python 구현
def rvs(stars, forks, open_issues, pushed, created):
# momentum = min(하루평균스타/10, 30)
# freshness = ≤7d=20, ≤30d=18, ≤90d=14...
# health = open_issues/stars 비율 기준
# engagement = min(forks/stars*150, 15)
# contemporary = 2025+=10, 2024+=7...
return sum([momentum,freshness,health,engagement,contemporary])