73. Github Archive에서 JSON 파일 다운로드
JSON 파일 MongoDB에 임포트
작업 목록 컬렉션에 추가
배치로 작업목록에 있는 타임라인을 처리
74. Github Archive에서 JSON 파일 다운로드
JSON 파일 MongoDB에 임포트
작업 목록 컬렉션에 추가
배치로 작업목록에 있는 타임라인을 처리
Commits API로 지원하는 언어이면 파싱
75. Github Archive에서 JSON 파일 다운로드
JSON 파일 MongoDB에 임포트
작업 목록 컬렉션에 추가
배치로 작업목록에 있는 타임라인을 처리
Commits API로 지원하는 언어이면 파싱
커밋별로 관례의 점수를 매긴 후 디비에 저장
76. Github Archive에서 JSON 파일 다운로드
JSON 파일 MongoDB에 임포트
작업 목록 컬렉션에 추가
배치로 작업목록에 있는 타임라인을 처리
Commits API로 지원하는 언어이면 파싱
커밋별로 관례의 점수를 매긴 후 디비에 저장
한시간의 데이터를 언어별로 합산
77. 핵심만 간단히 구현
코딩관례 분석은
커밋에서 추가된
라인을 기준으로
파일 전체 소스 분석을 하
면 커밋마다 관리해야 한다
전체 소스의 파싱은 작업이
너무 크다
삭제된 라인은 의미없음
JSON
다운로드/타임라인
처리등은
수동으로 시작
78. 파서 구현
언어별로 별도로 구성
정규식으로 단순 비교
해당 패턴에 맞으면 +1
파서만 테스트 코드 작성
전체 완성후 다른 언어를 추가
Java
Scala
Python
80. API 갯수 제한 문제
Github는 인증한 경우 시간당 5,000 API 요청
한시간에 PushEvent가 2~3,000개
하나의 PushEvent에 다수의 commit이 존재
파일 종류라도 알아내려면 commits API 필요
Star, fork 기준으로 정렬해서 API 갯수 만큼만 처리
81. 실 데이터로 인한 오류
오류의 원인을 찾기 어려움
API 제한 갯수를 초과하면 갱신을 기다려야 함
파싱에서 오류 발견되면 데이터를 리셋해야 함
서비스 로직이 너무 복잡해짐