droidknights / DroidKnightsApp

국내 최대 규모 안드로이드 컨퍼런스 드로이드나이츠 앱
https://www.droidknights.dev
264 stars 71 forks source link

[Feat: 298] 2024년도의 컨트리뷰터 필터링 #305

Closed rhkrwngud445 closed 5 months ago

rhkrwngud445 commented 5 months ago

Issue

Overview (Required)

안녕하세요! 좋은 기회 주셔서 감사합니다. 구현을 해보았으나, API 활용에 있어 어려운 점이 있어 좋은 방법이 있는지 궁금합니다!

현재 구현방식

Contributer의 이름을 가지고 Commit Api를 호출합니다 여기서 마지막 커밋 날짜(Author 기준)가 2024년이 넘어갔을 때 UI에 보여줄 리스트로 담았습니다.

구현의 문제점

Rate Limit 정책에 걸려, 시간내 60번 연속 호출시 IP 블로킹 당합니다..😂

생각한 해결 방안

  1. API 호출을 로컬에 캐싱하여, 데이터가 있을 시 로컬 데이터를 불러옵니다 + OAuth Token Header를 사용하여 Rate Limit를 늘립니다..
  2. /commit API를 통해 2024년 Commit 데이터 전체를 순회합니다. 이를 앱단에서 필터링을 합니다. (API에 페이징 적용되어있는데, 한 번에 100개까지 호출 가능합니다)

우회적으로 구현한 것 같아 개인적으로 조금 아쉬운 방안입니다. 혹시 추가적인 개선 방법이나, 다른 좋은 방안이 있는지 궁금합니다..!

Ref API Link

Github Commits API Github Contributor API


Update On 05/29 16:57

Json 파일에 연도별로 기여자를 분류하여 필터링 기능을 구현하였습니다!


Lastest Update

Usecase에서 필터 로직 구현

github-actions[bot] commented 5 months ago

Test Results

18 tests   18 :white_check_mark:  5s :stopwatch: 11 suites   0 :zzz: 11 files     0 :x:

Results for commit 34cbacba.

:recycle: This comment has been updated with latest results.

taehwandev commented 5 months ago

이 구현 부분은 이렇게 생각했습니다. 2023/2024 둘다에 참여한 분들도 있을거구요. 앱은 년도별로 앞으로 지속 관리 예정입니다. 별도의 json 리스트를 하나 더 추가하고, 2023/2024 타겟을 관리합니다.(고유값만), 이와 API를 조합해서 클라에 노출하는 정도로 생각했습니다.

cc. @laco-dev @wisemuji @KimReady

rhkrwngud445 commented 5 months ago

의견 주셔서 감사합니다 가장 좋은 방법인 것 같습니다! 2023 기여자만 필터링을 하고 else로 올해 기여자를 구분해보겠습니다! (contributor API 실시간성 반영)

말씀주신 단점으로, 현재 수작업으로 가능한정도이고 ,추후 API Json 추출 도구를 만들어 어느정도 자동화를 할 수 있을 것 같습니다!