Gitstar Ranking 기여 가이드: 코드 기여 및 랭킹 기능 확장 방법

Gitstar Ranking 개발자 참여 매뉴얼

Gitstar Ranking은 사용자, 조직, 저장소의 GitHub 스타 수를 기반으로 한 오픈소스 랭킹 시스템입니다. 이 프로젝트는 데이터 시각화와 분석 기능을 제공하며, 다양한 측면에서 오픈소스 생태계의 인기 트렌드를 파악할 수 있도록 돕습니다.

핵심 구성 요소 살펴보기

프로젝트는 모듈식 구조로 설계되어 있으며, 주요 폴더 역할은 다음과 같습니다:

  • 애플리케이션 계층: app/ 디렉터리에는 컨트롤러, 모델, 뷰 등 핵심 컴포넌트가 포함됨
  • 설정 파일: config/ 폴더 내부에 환경 설정 및 라우팅 정의 파일 존재
  • 데이터베이스 스키마: db/ 폴더에 마이그레이션 파일과 스키마 정의 포함
  • 백그라운드 작업 처리: worker/ 폴더는 Kotlin 기반의 비동기 작업 엔진을 담당

그림: 프로젝트 메인 화면 예시 – 사용자, 조직, 저장소별 스타 수 기반 랭킹 표시


개발 환경 설정

1. 저장소 클론

다음 명령어로 프로젝트 소스를 로컬에 복제합니다:

git clone https://gitcode.com/gh_mirrors/gi/gitstar-ranking
cd gitstar-ranking

2. 의존성 설치

프로젝트는 Ruby on Rails와 Kotlin 기반 백그라운드 워커를 사용하므로, 각각의 종속성 패키지를 설치해야 합니다:

# Ruby 환경 의존성 설치
bundle install

# Kotlin 워커 의존성 다운로드
cd worker
./gradlew dependencies

3. 데이터베이스 초기화

config/database.yml 파일을 수정하여 데이터베이스 연결 정보를 설정한 후, 스키마를 적용합니다:

rails db:migrate

코드 기여 절차

기여 기회 탐색

다음 경로를 통해 기여할 수 있는 과제를 찾을 수 있습니다:

  • 이슈 목록에서 good first issue 태그가 붙은 항목 확인
  • 기존 코드 리뷰를 통해 성능 향상 또는 구조 개선 가능 여부 분석
  • 사용자 요구에 부합하는 새로운 기능 제안

기여 단계

  1. 작업 브랜치 생성 주요 브랜치에서 새로운 기능용 브랜치를 생성합니다:
git checkout -b feature/custom-rank-algorithm
  1. 코드 개발 요구사항에 맞춰 기능을 구현하고, 프로젝트의 스타일 가이드를 준수합니다.

  2. 테스트 작성 새 기능이나 수정 사항에 대한 테스트를 추가합니다:

rspec spec/
  1. PR 요청 변경 사항을 원격 저장소에 푸시하고, Pull Request를 생성합니다.

랭킹 알고리즘 확장

기존 랭킹 로직 분석

랭킹 생성 로직은 app/controllers/concerns/rank_builder.rb 파일에 정의되어 있으며, 스타 수 수집, 정렬, 필터링 등의 처리 흐름을 포함합니다.

사용자 정의 랭킹 규칙 추가

새로운 랭킹 기준을 도입하려면 다음 단계를 따릅니다:

  1. 새 빌더 클래스 생성 app/controllers/concerns/ 디렉터리에 custom_rank_builder.rb 파일을 생성합니다.

  2. 알고리즘 구현 예: 일간 스타 증가율, 커밋 빈도, 피드백 반영률 등을 기준으로 순위 산정

  3. API 엔드포인트 등록 config/routes.rb에 새로운 라우트를 추가하여 외부 접근 가능하게 합니다:

get '/api/ranks/speed', to: 'ranks#speed'
  1. 프론트엔드 통합 app/views/ranks/ 폴더 내 해당 뷰 파일을 수정해 새로 추가된 랭킹을 표시합니다.

백그라운드 작업 개발 (Kotlin 기반)

백그라운드 작업은 worker/src/main/kotlin/com/github/k0kubun/gitstar_ranking/workers/ 폴더에서 관리됩니다.

새로운 작업 생성

  1. 워커 클래스 상속 Worker 클래스를 확장하여 특정 작업 로직을 정의합니다:
class StarGrowthAnalyzer : Worker() {
    override fun execute() {
        // 스타 수 변화 추적 로직
    }
}
  1. 스케줄링 설정 WorkerManager.kt 파일에서 작업 실행 주기를 지정합니다.

  2. 테스트 수행 test/ 폴더에 적절한 테스트 케이스를 작성하여 동작 검증


코드 품질 유지 가이드

스타일 규칙

커밋 메시지 형식

다음 양식을 따라 명확한 커밋 메시지를 작성하세요:

[feat] 새로운 스타 증가율 랭킹 기능 추가

- 스타 수 변화량 기반 순위 계산 로직 구현
- API 엔드포인트 및 문서 추가

지원 가능한 타입:

  • feat: 새로운 기능
  • fix: 버그 수정
  • docs: 문서 갱신
  • style: 스타일 변경
  • refactor: 리팩토링
  • test: 테스트 관련 변경
  • chore: 빌드/의존성 관리

함께 성장하는 커뮤니티

이 가이드를 통해 Gitstar Ranking의 코드 기여 및 기능 확장 방법을 이해하셨다면, 이제 당신의 실력이 프로젝트 발전에 기여할 수 있습니다. 작은 수정부터 큰 기능까지, 모든 기여는 의미가 있습니다.

문제 발생 시 LICENSE.md를 참조하거나, 이슈 시스템에서 도움을 요청하세요. 함께 더 나은 오픈소스 랭킹 플랫폼을 만들어 보겠습니다.

태그: Gitstar Ranking Ruby on Rails Kotlin GitHub API ranking algorithm

9월 3일 01:37에 게시됨