깃헙 프로젝트가 언제 성장했는지 궁금하신가요? 비슷한 두 프로젝트의 흥망성쇠를 알고 싶으신가요? 그런 당신을 위한 스타히스토리가 있습니다. 깃헙 주소만 붙여 넣으면 프로젝트의 시작부터 현재까지 스타(인기도)를 알 수 있습니다. 스타히스토리 역시 깃헙 프로젝트이구요. 대부분의 프로젝트가 우상향을 가리킵니다. 최근에 주목받고 있다면 아주 가파른 형태를 가지기에 트랜드 파악에 매우 좋은 도구입니다. 이 블로그에서는 스타히스토리를 활용하는 방법을 소개합니다 ✨✨.
star-history.com, the missing GitHub star history graph of GitHub repos.
- 공식 리포지토리
✨ 소개
가끔 깃헙을 여행하시다가 아래와 같은 차트를 보신 적이 있나요? 이건 스타 히스토리라는 도구인데요. 깃헙의 데이터베이스에 저장된 별의 기록을 차트로 만들어주는 도구입니다. 일종인 BI (Business Intelligence) 도구이죠.
이 차트는 다음과 같은 목적으로 유용합니다.
- 누가 추천해준 깃헙 리포지토리가 언제부터 유명해지기 시작한 지 알 수 있다.
- 별의 수가 급격히 오른 시기가 있다면, 그 때 아주 가파른 형태를 가지기에 당시에 유명했던 기술임을 알 수 있다.
- 별의 수가 많지만 최근 들어 변화가 없다면, 기술 발전 혹은 기술 수요가 정체된 것을 알 수 있다.
좀 복잡하게 적긴 했습니다. 한마디로 요약하면 '쓸 만한가? 기여할 만한가?' 를 알 수 있는 도구 라는 목적에 좋다고 생각합니다. 그런 관점에서 보면 스타 히스토리는 과거 기간과 비교하 2023-2024년 2년 만에 3k에서 6k로 엄청나게 성장한 프로젝트임을 알 수 있습니다.
🧑🔧 사용법
사용법은 아주 간단합니다. 보고 싶은 깃헙 리포지토리의 주소를 복사하여 스타 히스토리에 붙여넣습니다. 이 때 특별히 주소를 다듬을 필요는 없습니다. 예시는 다음과 같습니다.
- 대상 리포지토리의 하위 주소: https://github.com/star-history/star-history/blob/main/src/helpers/storage.ts
- 스타 히스토리: https://star-history.com
이렇게 붙여넣으면 'org/repo' 형태로 적절히 추출하여 표시해 줍니다. 결과는 다음과 같습니다.
사이트 주소를 공유하여 사용할 수 있습니다. 이미지를 다운받아 사용하거나, 마크다운으로 임베드해서 사용할 수도 있습니다. 마크다운으로 임베드하면 스타 히스토리 API를 이용해 항상 최신의 별 기록을 유지할 수 있습니다. 하단의 'Copy to GitHub README.md' 를 눌러볼까요? 그리고 마크다운 편집기를 실행시켜서 붙여넣어 봅시다.
🔑 깃헙 API 키 등록하기
사용하다보면 'GitHub API rate limit exceeded' 라는 메시지를 볼 수 있습니다. 이는 공개 상태에서 깃헙 API 사용량이 '60회/1시간' 으로 제한되어 있기 떄문입니다. 제 경험으로는 15회 정도 조회하면 제한이 걸렸던 것 같습니다.
- 스타 히스토리 사이트에서 직접 조회할 때
- 마크다운으로 임베드된 차트를 조회할 때
이 두가지 경우로 사용처를 예상할 수 있습니다. 제한에 대한 자세한 내용은 깃헙 공식문서에서 읽을 수 있습니다.
이 때는 깃헙에서 개인 토큰을 발급하여 스타 히스토리에 등록하면, 계속 사용할 수 있습니다. '5000회/1시간' 개인에게는 정도의 사용량을 제공하는 것 같아요. 제 계산이 맞다면 '1000조회/시간' 을 사용해도 무리가 없을 것 같습니다. 이 정도면 봇을 돌리지 않으면 넘기기 힘든 넉넉한 사용량 같아요 😅.
이 링크에 접속해서 개인 엑세스 토큰을 발급받아 보겠습니다.
그리고 다음과 같이 토큰 설정을 추천합니다.
- Token name: star-history.com
- Resource owner: 본인
- Expiration: 1년 후 (만료기간 없음은 권장하지 않습니다)
- Description: To get star history of public repositories (적당한 설명)
- Repository access: Public Repositories [기본값, 필수]
동일한 설정은 다음 캡처와 같습니다.
생성이 끝나면 다음과 같이 토큰을 복사할 수 있습니다.
이제 스타 히스토리에 돌아가서 'Edit GitHub Access Token' 에 토큰을 붙여넣습니다. 토큰은 브라우저 캐시에 저장되어서 다음에 방문할 때도 개인 토큰으로 조회할 수 있습니다.
토큰을 등록한 이후에는 거의 제한없이 차트를 볼 수 있습니다.
🚀 크롬 확장도구 설정하기
스타 히스토리를 정말 잘 쓰는 방법은 브라우저 확장도구를 설치하여 사용하는 것 인데요. 현재 접속 중인 깃헙 페이지에서 확장도구 버튼만 누르면 바로 차트를 볼 수 있습니다!
확장 도구 설치는 여기에서 할 수 있습니다.
다른 크로미움 브라우저를 사용하시는 분들은 'Star History'를 직접 검색해서 설치하시면 됩니다. 그리고 이미 깃헙 엑세스 토큰을 등록하신 분이라면, 캐시에 저장된 토큰을 확장도구도 함께 사용하기 때문에 토큰을 다시 등록할 필요없이 바로 사용하실 수 있습니다!
🧐 리포지토리 비교하기
스타 히스토리의 더 좋은 기능은 프로젝트를 비교할 수 있다는 건데요
AI 분야에서 유명한 오픈소스인 LangChain(랭체인)과 LlamaIndex(라마 인덱스)를 비교해보겠습니다. 각 도구의 깃헙 주소는 다음과 같습니다.
위 주소를 스타 히스토리 페이지에 등록합니다. 모두 등록하면 다음 화면처럼 나옵니다.
리포지토리를 추가, 삭제할 수 있습니다. 결과는 주소, 이미지, 임베드 방식으로 사용할 수 있습니다. 이미지는 다음과 같습니다.
위 두 프로젝트는 시작한 시기가 비슷합니다. 그런데 다른 시기에 출발한 프로젝트도 함께 비교해보면 어떨까요? 여기서 모델 서빙 도구인 Ollama를 추가해보겠습니다.
- Ollama: https://github.com/ollama/ollama
그럼 차트는 이 링크처럼 구성됩니다. 그림으로 첨부하면 다음과 같습니다.
새로 추가된 내용에 따르면 ollama는 2023년 6월에 공개한 뒤 11월 부터 엄청나게 성장하였습니다. 그리고 아주 최근인 2024년 10월에 ollama가 langchain을 추월했습니다! 그래프의 기울기를 비교해보면 ollama의 성장은 더 빠를 것으로 예상되는데요. 스타 히스토리는 이런 인사이트를 얻기에 매우 좋은 도구입니다.
여기서 한 걸음 더 나아가서 'Align timeline'을 활성화 해보겠습니다. 그럼 프로젝트의 시간축을 개발 기간으로 정렬해줍니다. 이 기능으로 '프로젝트 시작 몇 개월 동안 얼마나 성장'했는지 알 수 있습니다. 이 링크에 설정된 것 처럼 'Align timeline'을 체크하시면 됩니다.
이미지로 출력하면 다음과 같습니다.
🧑💻 개선이 필요한 점
간단한 도구인 만큼, 커스텀 기능이 부족합니다.
- API에 커서 기능이 있어서 특정 시점의 별의 수를 표시할 수 있으면 좋겠습니다.
- API에 범주 및 축을 커스텀 기능이 있어서 테마, 위치, 기타속성을 변경할 수 있으면 좋겠습니다.
각 경우에 대해서 간단한 예시로 집어보겠습니다.
커서의 경우
특정 시점의 별의 수를 표시할 수 없습니다. 이 링크에서 ollama의 마지막 별의 수를 알고 싶으면 웹에서 마지막 버블을 마우스오버하여 볼 수 있습니다. 하지만 이걸 유지한 상태로 이미지로 출력할 수 없습니다. 따라서 마우스를 올린 상태에서 캡처해야 합니다.
이렇게 커서 기능을 지원한다면 정말 좋을 것 같네요.
범주의 경우
이 이슈를 보면 범주(legends)가 항상 왼쪽 상단에 위치하기 때문에 보기 불편할 수 있습니다. 이미지는 다음과 같습니다.
제가 좀 더 극적인 예시를 보여드리면 다음과 같습니다. 위에서 다루었던 차트에 kubernetes 프로젝트를 추가했습니다. 이 링크의 이미지는 다음과 같습니다.
데이터가 범주와 많이 겹쳐서 정보를 보기 볼편한 경우가 있습니다. 이런 경우에는 범주는 오른쪽 아래로 바꿀 수 있게 API에 'legends-loc=right-bottom'과 같은 파라미터를 쓸 수 있으면 좋을 것 같습니다.
여기까지 스타 히스토리에 대해서 알아봤는데요. 위 기능을 직접 구현하려면 깃헙 API를 복잡하게 사용해야하지만, 스타 히스토리를 통해서 편하고 빠르게 차트를 생성할 수 있습니다. 예상 활용처는 다음과 같습니다:
- 트랜드 파악: 대중성을 파악하여 오픈소스 프로젝트 도입 여부 결정에 도움이 됩니다.
- 프로젝트 홍보: 개발 중인 리포지토리의 README.MD에 차트 첨부하여 관심 유도할 수 있습니다.
- 발표자료 제작: 발표 자료에 BI 자료가 필요할 때 차트를 빠르게 생성할 수 있습니다.
여러분은 어떻게 스타 히스토리를 사용하고 계신가요? 이 블로그를 흥미롭게 보셨다면 댓글로 여러분의 경험을 공유해주시길 부탁드립니다. 감사합니다.
'Dev' 카테고리의 다른 글
🏭 Icon Maker by Raycast: 쉽게 벡터 아이콘을 만드는 방법을 소개합니다 (0) | 2024.11.24 |
---|---|
🔎 QR: Adobe Express 무료 웹을 이용해서 깔끔한 QR 코드 생성하기 (1) | 2024.11.13 |
어제보다 오늘 더 공부 잘하는 코딩냥이. 어제보다 오늘 더 일 잘하는 코딩냥이.
포스팅이 좋았다면, 오류를 발견했다면, 더 좋은 아이디어가 있다면 댓글 부탁드립니다!