저자는 GitHub Data Challenge II 참가를 위해 오픈소스 코드의 코딩 컨벤션(예: 콤마 위치, 공백 사용 등)을 분석하는 'Popular Convention' 프로젝트를 진행했다. GitHub Archive의 타임라인 데이터와 GitHub API를 활용해 인기 저장소의 커밋 패치 내용을 수집·분석했으며, Node.js, CoffeeScript, MongoDB, D3.js를 사용하여 결과를 시각화했다. API…
7 min read
Popular Convention on Github 프로젝트 회고
Source
Evernote/Inbox/Github Data Challenge용 개인 프로젝트 Popular Convention.md
Summary
저자는 GitHub Data Challenge II 참가를 위해 오픈소스 코드의 코딩 컨벤션(예: 콤마 위치, 공백 사용 등)을 분석하는 ‘Popular Convention’ 프로젝트를 진행했다. GitHub Archive의 타임라인 데이터와 GitHub API를 활용해 인기 저장소의 커밋 패치 내용을 수집·분석했으며, Node.js, CoffeeScript, MongoDB, D3.js를 사용하여 결과를 시각화했다. API 호출 한계로 인해 인기 저장소만 표본으로 삼았고, 패치 기반 텍스트 분석의 한계와 비동기 처리/데이터 구조 설계의 어려움 등 기술적 시행착오를 경험했다.
Key Points
GitHub Data Challenge II 참가를 위해 오픈소스 코드의 코딩 컨벤션 사용 빈도를 분석하는 프로젝트를 기획
GitHub Archive(JSON 타임라인)와 GitHub API(커밋 패치 내용)를 연동하여 데이터 수집
API 호출 한계(시간당 5,000회)로 인해 Watch/Fork 수가 많은 인기 저장소만 분석 대상으로 제한
Node.js, CoffeeScript, MongoDB, D3.js 스택을 사용하여 프로토타입 구현 및 시각화
패치된 코드만 분석하여 의미론적 분석이 불가능했고, 언어별 특성 반영이 어려웠음
비동기 콜백 지옥, MongoDB 임베딩 설계 부재, 테스트 코드 부재로 인한 유지보수 및 디버깅 어려움 경험