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태그가 붙은 항목 확인 - 기존 코드 리뷰를 통해 성능 향상 또는 구조 개선 가능 여부 분석
- 사용자 요구에 부합하는 새로운 기능 제안
기여 단계
- 작업 브랜치 생성 주요 브랜치에서 새로운 기능용 브랜치를 생성합니다:
git checkout -b feature/custom-rank-algorithm
-
코드 개발 요구사항에 맞춰 기능을 구현하고, 프로젝트의 스타일 가이드를 준수합니다.
-
테스트 작성 새 기능이나 수정 사항에 대한 테스트를 추가합니다:
rspec spec/
- PR 요청 변경 사항을 원격 저장소에 푸시하고, Pull Request를 생성합니다.
랭킹 알고리즘 확장
기존 랭킹 로직 분석
랭킹 생성 로직은 app/controllers/concerns/rank_builder.rb 파일에 정의되어 있으며, 스타 수 수집, 정렬, 필터링 등의 처리 흐름을 포함합니다.
사용자 정의 랭킹 규칙 추가
새로운 랭킹 기준을 도입하려면 다음 단계를 따릅니다:
-
새 빌더 클래스 생성
app/controllers/concerns/디렉터리에custom_rank_builder.rb파일을 생성합니다. -
알고리즘 구현 예: 일간 스타 증가율, 커밋 빈도, 피드백 반영률 등을 기준으로 순위 산정
-
API 엔드포인트 등록
config/routes.rb에 새로운 라우트를 추가하여 외부 접근 가능하게 합니다:
get '/api/ranks/speed', to: 'ranks#speed'
- 프론트엔드 통합
app/views/ranks/폴더 내 해당 뷰 파일을 수정해 새로 추가된 랭킹을 표시합니다.
백그라운드 작업 개발 (Kotlin 기반)
백그라운드 작업은 worker/src/main/kotlin/com/github/k0kubun/gitstar_ranking/workers/ 폴더에서 관리됩니다.
새로운 작업 생성
- 워커 클래스 상속
Worker클래스를 확장하여 특정 작업 로직을 정의합니다:
class StarGrowthAnalyzer : Worker() {
override fun execute() {
// 스타 수 변화 추적 로직
}
}
-
스케줄링 설정
WorkerManager.kt파일에서 작업 실행 주기를 지정합니다. -
테스트 수행
test/폴더에 적절한 테스트 케이스를 작성하여 동작 검증
코드 품질 유지 가이드
스타일 규칙
- Ruby: Ruby Style Guide 준수
- Kotlin: 공식 Kotlin Coding Conventions 적용
- HTML/CSS: W3C 표준 준수, 유효성 검사 통과
커밋 메시지 형식
다음 양식을 따라 명확한 커밋 메시지를 작성하세요:
[feat] 새로운 스타 증가율 랭킹 기능 추가
- 스타 수 변화량 기반 순위 계산 로직 구현
- API 엔드포인트 및 문서 추가
지원 가능한 타입:
feat: 새로운 기능fix: 버그 수정docs: 문서 갱신style: 스타일 변경refactor: 리팩토링test: 테스트 관련 변경chore: 빌드/의존성 관리
함께 성장하는 커뮤니티
이 가이드를 통해 Gitstar Ranking의 코드 기여 및 기능 확장 방법을 이해하셨다면, 이제 당신의 실력이 프로젝트 발전에 기여할 수 있습니다. 작은 수정부터 큰 기능까지, 모든 기여는 의미가 있습니다.
문제 발생 시 LICENSE.md를 참조하거나, 이슈 시스템에서 도움을 요청하세요. 함께 더 나은 오픈소스 랭킹 플랫폼을 만들어 보겠습니다.