RepoBuddy: GitHub 레포지토리를 붙여넣고 몇 분 만에 첫 기여를 하세요 (Gemma 4 + Graphify)
요약
RepoBuddy는 GitHub 레포지토리 URL을 입력하면, Graphify를 이용해 지식 그래프로 매핑하고 Gemma 4 모델에게 질문할 수 있게 하는 도구입니다. 이를 통해 사용자는 복잡한 코드베이스의 아키텍처 이해나 첫 기여 지점 등을 쉽게 파악할 수 있습니다. 이 도구는 프리랜서, 소규모 개발팀, 오픈소스 유지 관리자 등 코드를 빠르게 습득해야 하는 모든 사람에게 유용합니다.
핵심 포인트
- 레포지토리를 지식 그래프로 매핑하여 구조적 이해를 돕습니다.
- Gemma 4가 파일 이름을 언급하며 구체적인 기여 포인트를 제안합니다.
- 신규 참여자의 온보딩 시간을 획기적으로 단축시킵니다.
- 프리랜서 및 개발팀의 코드베이스 분석 효율을 높입니다.
이 글은 Hacktoberfest Open-Source AI Challenge: Week 2에 제출하는 내용입니다.
내가 만든 것
RepoBuddy는 생소한 GitHub 레포지토리를 질문할 수 있는 무언가로 변환합니다.
레포지토리 URL을 붙여넣으세요. RepoBuddy가 이를 shallow-clone하고, Graphify를 사용하여 지식 그래프(knowledge graph)로 매핑하며, 다음과 같은 질문을 Gemma 4에게 할 수 있게 합니다:
- "어디서부터 시작해야 하나요?"
- "아키텍처를 설명해 주세요."
- "좋은 첫 기여(contribution)를 제안해 주세요."
답변은 실제 파일 이름을 언급합니다. 왜냐하면 Gemma는 레포지토리가 아마 어떻게 생겼을지에 대한 추측이 아니라, 질문에 중요한 그래프의 조각(slice)만을 보기 때문입니다. 또한 사용자가 직접 인터랙티브한 그래프를 탐색할 수도 있습니다.
누가 비용을 지불할까요? 구독료보다 시간이 더 비싼 사람이라면 누구나:
- 프리랜서 및 에이전시: 클라이언트의 코드베이스를 물려받는 경우. 새로운 레포지토리를 처음 접하는 날은 보통 청구할 수 없는 고고학 작업입니다. RepoBuddy는 이를 1시간으로 만듭니다.
- 소규모 개발팀: 시니어 개발자가 일주일 동안 폴더를 가리키며 설명하지 않아도 신입 사원이나 계약직원을 온보딩(onboarding)할 수 있습니다.
- 오픈 소스 유지 관리자: 신규 참여자가 "어디서부터 시작해야 하나요?"라는 같은 질문을 20번 받을 필요 없이 좋은 첫 PR(Pull Request)을 올리기를 바라는 경우.
이들 모두에게 문제가 같습니다. 코드를 읽는 것은 느리고, 일반적인 챗봇은 한 번도 본 적 없는 레포지토리에 대해 답변합니다.
데모
🔗 실시간 시연(Live): repobuddy.pages.dev
공개된 모든 GitHub 레포지토리를 붙여넣고, 매핑되기를 기다린 다음, 미리 설정된 질문 중 하나를 입력하세요.
참고 사항: 이 API는 무료 Render 인스턴스에서 실행되므로, 유휴 상태였다가 첫 요청을 보낼 경우 깨어나는 데 30~60초가 걸릴 수 있습니다.
코드
GitHub logo omsenjalia / repobuddy
GitHub 레포지토리를 붙여넣으면 Graphify가 매핑하고, Gemma 4가 기여를 시작할 곳을 알려줍니다.
🧭 RepoBuddy
GitHub 레포지토리를 붙여넣으면 → Graphify가 이를 지식 그래프(knowledge graph)로 매핑하고 → Gemma 4가 어디서부터 시작해야 할지, 어떻게 구축되었는지, 그리고 무엇을 먼저 기여할 수 있는지 알려줍니다.
Hacktoberfest Hack Day Vadodara × NavraCommunity (2026년 10월 17일)에서 제작됨.
사용된 기술 스택(Built with)
- Gemma 4 (open-weight): Gemini API를 통해 사용했으며, 폴백(fallback)으로는 Ollama Cloud (
gemma4:31b)를 사용했습니다. - Graphify (OSS): 레포지토리 매핑 및 그래프 쿼리용으로 사용되었습니다.
- Next.js: 정적 사이트(static site)로 구성되었으며, Cloudflare Pages의 Pages Functions와 Render에 배포된 FastAPI 서버를 활용했습니다.
작동 방식(How it works)
RepoBuddy는 두 가지 백엔드를 가지고 있으며, 웹사이트는 빌드 시점에 NEXT_PUBLIC_BACKEND을 통해 하나를 선택합니다.
서버 (기본값). server/에 있는 FastAPI 앱은 모든 공개 레포지토리를 얕게 클론(shallow-clone)하고, 로컬에서 graphify extract를 실행합니다(tree-sitter 사용으로 API 비용 없음). 이후 graphify query 서브그래프로부터 Gemma 4가 답변을 얻어 인터랙티브 그래프를 제공합니다. 이 과정은 git과 실제 프로세스를 필요로 하므로 Render(또는 모든 VPS)에서 실행되며, 웹사이트 자체는 정적으로…
제작 과정(How I Built It)
RepoBuddy는 세 부분으로 구성되어 있습니다:
flowchart LR
U[브라우저<br/>Cloudflare Pages의 Next.js] -->|레포 URL| M[/map]
M --> C[git clone --depth 1]
...
- 매핑(Mapping) (Graphify, 오픈 소스). FastAPI 서버가 레포지토리를 얕게 클론하고
graphify extract를 실행합니다. 이는 로컬에서 수행되는 tree-sitter 파싱이며 API 비용이 들지 않습니다. 파일, 함수, 임포트 및 호출에 대한 그래프를 얻을 수 있습니다. - 검색(Retrieval) (Graphify 재사용). 각 질문마다
graphify query가 관련 서브그래프만 추출합니다. 이렇게 하면 프롬프트가 작고 근거 기반(grounded)으로 유지되어 Gemma 4가 실제로 존재하는 파일에 대해 이야기할 수 있게 됩니다. - 답변 생성(Answering) (Gemma 4, 오픈 웨이트). 서브그래프와 질문은 기본적으로 Ollama Cloud의 Gemma 4 (
gemma4:31b)로 전송됩니다. Gemini API도 선택적 옵션으로 지원되며, Ollama가 폴백 역할을 하므로 한 제공업체의 서비스 문제로 앱 전체가 중단되는 것을 막아줍니다.
웹사이트는 Cloudflare Pages에서 배포된 정적 Next.js 내보내기(export) 형태입니다. API는 git과 실제 프로세스가 필요하므로, one-file render.yaml 청사진을 통해 Render의 Docker 서비스로 실행됩니다.
저는 Hacktoberfest Hack Day Vadodara × NavraCommunity (10월 17일)에서 하루 만에 이것을 구축했습니다. Streamlit 프로토타입으로 시작했지만, 배포하고 싶어지면서 Next.js + FastAPI가 되었습니다.
Open Innovation이 중요한 이유?
RepoBuddy에게 '오픈'은 선택 사항이 아닙니다. 그것이 비즈니스를 작동하게 만드는 핵심입니다:
- 비용이 많이 드는 부분이 비용을 발생시키지 않습니다. Graphify는 tree-sitter를 사용하여 레포지토리를 로컬에서 매핑합니다. 임베딩 API나 파일당 토큰 청구액이 없습니다. 오직 최종적이고 작으며 그래프 범위로 한정된 프롬프트만이 모델에 접촉합니다. 이것이 몇 달 동안 몇 달러에 판매할 수 있는 도구와 모든 대형 레포지토리를 처리할 때 돈을 잃는 도구를 구분하는 차이입니다.
- 프라이빗 코드는 프라이빗하게 유지될 수 있습니다. Gemma 4는 오픈 웨이트(open-weight) 모델입니다. 독점 코드를 제3자 API로 보내고 싶지 않은 팀도 Ollama를 사용하여 자체 머신이나 VPC에서 동일한 모델을 실행할 수 있으며, RepoBuddy는 같은 방식으로 작동합니다. 폐쇄형 API로는 이것을 제공할 수 없습니다.
- 종속성(lock-in)이 없습니다. 모델 교체는 환경 변수(
OLLAMA_MODEL,GEMMA_MODEL)를 통해 이루어집니다. 가격이 변경되거나 더 나은 오픈 모델이 출시되면, 아무것도 다시 작성하지 않고 전환할 수 있습니다. - 그래프가 더 큰 컨텍스트 창보다 낫습니다. Graphify는 구조화된 관계(누가 무엇을 호출하는지, 무엇이 무엇을 가져오는지)를 제공하기 때문에, 중급 규모의 오픈 모델도
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기