피드로 돌아가기
I built an open-source tool that reverse-engineers any GitHub repo in 10 seconds
Dev.toDev.to
Backend

AST 기반 의존성 분석을 통한 10초 내 리포지토리 구조 시각화

I built an open-source tool that reverse-engineers any GitHub repo in 10 seconds

Sidhant Kumar2026년 5월 29일4intermediate

Context

대규모 코드베이스 온보딩 시 파일 간 관계 파악에 과도한 시간이 소요되는 문제 발생. 정적 분석 도구의 부재로 인한 진입점 파악 어려움과 변경 사항에 따른 Blast Radius 예측 불가능성을 해결해야 하는 상황.

Technical Solution

  • 모든 소스 코드를 AST(Abstract Syntax Tree)로 파싱하여 파일 간 Import 관계를 정밀하게 추출하는 구조 설계
  • Vercel Serverless Timeout(504) 회피를 위해 AST 추출용 Fast Extractor와 LLM 추론 전용 Inference Engine으로 엔드포인트 분리
  • Web ReadableStream을 통한 AI 응답 스트리밍 및 Partial JSON Repair 알고리즘 적용으로 실시간 UI 업데이트 구현
  • 역방향 인접 리스트(Reverse Adjacency List) 기반의 BFS Traversal을 통해 특정 파일 수정 시 영향을 받는 전파 범위 산출
  • Edge API를 활용한 SVG Health Badge 생성으로 리팩토링 결과의 실시간 가시성 확보

Impact

  • 기존 수일이 소요되던 코드 분석 시간을 약 10초 수준으로 단축
  • 출시 14일 만에 262건의 Unique Clone 및 66개의 Star 달성

Key Takeaway

Serverless 환경의 실행 시간 제약을 극복하기 위해 무거운 작업을 비동기적 파이프라인으로 분리하고, 스트리밍 데이터를 실시간으로 복구하여 사용자 경험을 최적화하는 전략이 유효함.


1. Serverless Timeout 발생 시 API 경로를 기능별로 분리하고 클라이언트 사이드 트리거링 도입 검토

2. LLM 응답 대기 시간을 줄이기 위해 ReadableStream과 Partial JSON 파싱 로직 적용

3. 영향도 분석 기능 구현 시 역방향 인접 리스트와 BFS 알고리즘을 통한 의존성 추적 고려

원문 읽기