공부한 내용
GitHub API 사용해 대시보드 만들기
live-study 대시 보드 Requirements https://github.com/whiteship/live-study/issues
- 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것.
- 참여율을 계산. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리까지 보여줄 것.
- Github 자바 라이브러리를 사용하면 좋음.
- GitHub API란
- 정의) GitHub가 제공하는 다양한 정보와 기능을 개발자의 응용 프로그램에서 사용할 수 있도록 제공하는 GitHub의 인터페이스
- 특징) 해당 라이브러리에는
GHUser(깃허브유저),GHRepository(깃허브리포지토리)GHOrganization(깃허브그룹)등 깃허브에서 사용되는 각각의 도메인 모델들을 제어하기 위한 클래스가 존재하며, 각 클래스의 메서드를 통해서 깃허브 사이트에서 사용할 수 있는 다양한 기능을 프로그램 내에서 사용할 수 있다.
- 구현 과정
- build.gradle에 아래 코드 추가
- 토큰 발급 & 저장
- 깃허브 접속을 위한 아래와 같은 방법들이 있는데 나는 두 번째 방법 사용함
- Personal Access Token 발급받기
- 환경변수로 토큰 저장
- IntelliJ에서 환경 변수 설정
- 화면 오른쪽 상단에 뜨는 현재 실행할 클래스 이름을 오른쪽 클릭해서 구성 편집 선택
- 환경변수 오른쪽 끝에 네모 박스 클릭
- 사용자 환경변수에 + 아이콘 클릭해서 토큰값 저장
Stringtoken= System.getenv("token");처럼 사용할 수 있음- 메인 코드
- 결과





리팩토링 1) 병렬 처리, 증분 연산 통해 실행 시간 2m44s에서 24s로 감소
- userMap을 ConcurrentHashMap으로 변경하여 동시성 문제를 방지
- issues 리스트를 병렬 스트림으로 변환하여 병렬 처리하도록 수정
- issue.getComments()를 issue.listComments().toList()로 변경하여 한 번에 여러 코멘트를 가져오게 수정
- userMap.put() 대신 userMap.compute()를 사용하여 증분 연산을 수행
- 참고
하루 정리
TIL 작성하기
자바 스터디 2번 하기
