피드로 돌아가기
graphlens: a polyglot code-analysis framework that turns your repo into a typed graph
Dev.toDev.to
Infrastructure

Polyglot Repo를 Typed Graph IR로 통합하여 정밀한 코드 분석 구현

graphlens: a polyglot code-analysis framework that turns your repo into a typed graph

Nikita Rybalchenko2026년 6월 22일8advanced

Context

단순 텍스트 검색 기반의 분석 루프와 단일 언어 중심 도구의 한계로 인한 다중 언어 프로젝트 분석 효율 저하 발생. 서로 다른 언어 간의 호출 관계를 파악하지 못하는 단절된 분석 환경을 해결하기 위한 통합 모델 필요.

Technical Solution

  • Language Adapter를 통한 소스 코드의 정규화 및 공통 Graph IR(Intermediate Representation) 생성 구조 설계
  • Tree-sitter를 활용한 Concrete Syntax Tree 분석과 타입 인식 Resolver를 결합한 정밀한 Edge 생성 방식 채택
  • Deterministic ID 생성을 위해 project, kind, qualified_name 기반의 SHA-256 해싱 기법 적용으로 증분 업데이트 및 캐싱 최적화
  • HTTP, gRPC 등 인터페이스 기반의 BOUNDARY 노드 설계를 통한 언어 간 경계를 넘는 Cross-language 분석 지원
  • Resolver 상태를 metadata에 기록하는 전략을 통해 타입 분석 실패 시의 무결성 검증 및 CI 빌드 실패 제어 구현
  • 데이터 생산자인 Adapter와 데이터 저장소인 Backend를 분리한 Pure Function 기반 파이프라인 설계로 테스트 용이성 확보

1. 다중 언어 환경의 의존성 분석 시 단순 이름 매칭 대신 타입 기반의 Resolver 도입 검토

2. 정적 분석 결과의 일관성을 위해 파일 위치가 아닌 식별자 기반의 Deterministic ID 체계 구축

3. 분석 도구 설계 시 데이터 생성과 저장을 분리하여 파이프라인의 직렬화 및 캐싱 효율 증대

원문 읽기