피드로 돌아가기
I had a folder full of dead repos. So I built a graveyard — and a way to raise them.
Dev.toDev.to
Frontend

Pure Function 기반의 결정론적 스코어링 엔진을 통한 GitHub 레포지토리 분석 툴 구현

I had a folder full of dead repos. So I built a graveyard — and a way to raise them.

chintanonweb2026년 6월 3일6intermediate

Context

방치된 프로젝트의 복구 진입장벽을 낮추기 위해 단순 리스트업 수준의 기존 스크립트를 고도화한 사례임. UI 부재와 정량적 분석 로직의 결여로 인해 프로젝트 재개 시점의 컨텍스트 파악이 어려웠던 한계를 해결하고자 함.

Technical Solution

  • GitHub REST API 기반의 클라이언트 사이드 전용 아키텍처 설계를 통한 Zero-Backend 및 No-Login 환경 구현
  • Push 간격, README/License 유무, Open Issue 수 등을 조합한 정량적 스코어링 엔진 구축으로 프로젝트 방치도 측정
  • FNV-1a 해시와 mulberry32 PRNG를 결합하여 Repo ID 기반의 결정론적(Deterministic) Epitaph 생성 로직 구현
  • 비즈니스 로직을 UI 및 네트워크 계층과 완전히 분리한 Pure Function 구조 설계로 Vitest를 활용한 25개의 단위 테스트 확보
  • copilot-instructions.md 자동 생성 기능을 통한 LLM 컨텍스트 최적화 및 맞춤형 프롬프트 워크플로우 제공
  • GitHub Actions CI 파이프라인 구축을 통한 빌드 및 테스트 자동화로 릴리즈 안정성 확보

1. LLM 활용 시 `instructions.md`와 같은 프로젝트 가이드라인 파일을 정의하여 일관된 코드 스타일과 아키텍처 준수 유도

2. 복잡한 도메인 로직은 Pure Function으로 분리하여 네트워크/UI 의존성 없이 독립적인 단위 테스트 가능 구조로 설계

3. 사용자 경험의 일관성을 위해 무작위 값 생성 시 단순 Random 함수 대신 고유 ID 기반의 Seeded PRNG 검토

원문 읽기