업데이트로 돌아가기
UpdatedAug 7, 2026

gitgalaxy — Updated!

AST 없는 휴리스틱 지식 그래프 엔진으로, 심층 리포지토리 인텔리전스와 제로 트러스트 보안 스캐닝을 제공합니다. GitLab CI/CD 구성 요소로 통합되어 악성 코드를 차단하고 SARIF 텔레메트리를 GitLab Security Dashboard로 내보냅니다.

공유

GitGalaxy

컴파일 없이 수행하는 저장소 규모의 구조적 인텔리전스.

Docs · Visualizer · Language Crucible · Raw Output

1회 스캔 · 97가지 구조적 시그널 · 50개 이상의 언어 · 컴파일 불필요 · 19가지 위험 노출 범주 · 6가지 출력

요약

GitGalaxy는 소스 텍스트에서 직접 언어에 구애받지 않는 전체 저장소의 구조적 그래프를 구축합니다.

폴리글랏, 부분적으로 손상된, 레거시, 벤더 의존도가 높은, 또는 빌드 우선 워크플로우로 분석하기 어려운 저장소를 위해 설계되었습니다.

모든 언어에 대해 성공적인 빌드와 별도의 파서/툴체인을 요구하는 대신, GitGalaxy는 구조적 시그널의 공통 어휘(함수, 클래스, 인자, 제어 흐름, 상태 변경, I/O, API, 의존성 및 기타 시그널)를 추출하고 이러한 관찰 결과를 하나의 저장소 모델로 정규화합니다.

동일한 그래프는 다음에 활용될 수 있습니다:

  • 아키텍처 분석
  • 위험 노출 우선순위 지정
  • 의존성/SBOM 분석
  • 리팩토링 및 소유권 분석
  • 레거시 코드 분석
  • AI 지향 코드베이스 컨텍스트
  • CI/CD 워크플로우
  • 이력 위험 분석

핵심 명제: 저장소 규모에서 매우 유용한 구조적 정보를 복구하는 데 완전한 언어 파싱이 항상 필요한 것은 아닙니다.


문제

대규모 저장소에는 일반적으로 다음이 포함됩니다:``` text Go + C++ + Python + Java + Bash + YAML

  • generated code + vendored code + legacy code
  • half-migrated modules + broken dependencies
전통적인 언어 도구는 의도된 범위 내에서는 훌륭할 수 있지만, 저장소가 언어별 표현으로 분산된 채 남아 있게 할 수 있습니다.

GitGalaxy는 다른 선택을 합니다:``` text
Source repository
       |
       v
Structural signatures
       |
       v
Normalized entities + risk signals
       |
       v
Deterministic repository graph
       |
       +---- Architecture
       +---- Risk exposure
       +---- Dependencies / SBOM
       +---- AI context
       +---- Refactoring
       +---- Git-history analysis

GitGalaxy의 핵심 출력물은 저장소의 결정적 구조 표현입니다.


소비자 질문


아키텍처 이 저장소는 무엇으로 구성되어 있나?

구조 분석 함수, 클래스, API, 의존성 및 제어 구조는 어디에 있나?

위험 노출 잠재적으로 중요한 위험 패턴은 어디에 집중되어 있나?

리팩토링 어떤 파일이 복잡하거나, 변경이 잦거나, 핵심 부하를 담당하나?

공급망 디스크에 실제로 존재하는 의존성은 무엇인가?

AI 컨텍스트 에이전트가 알아야 할 아키텍처와 관계는 무엇인가?

레거시 마이그레이션 변환해야 할 구조 단위는 어디에 있나?

이력 분석 저장소가 진화함에 따라 측정된 노출은 어떻게 변화하나?

GitGalaxy 아키텍처 파이프라인


구조 추출 논제

GitGalaxy는 의도적으로 모든 언어에 대한 완전한 AST를 구축하는 것부터 시작하지 않습니다.

약 97개의 구조 신호 범주를 사용하여 다음과 같은 것들을 식별합니다:

  • 함수 및 메서드 경계
  • 클래스 및 선언
  • 인자
  • 분기 및 제어 흐름
  • 상태 변이
  • I/O
  • API 및 라우트
  • 임포트 및 의존성
  • 안전하지 않은 연산
  • 리플렉션 및 동적 실행
  • 동시성
  • 클로저
  • 전역 변수
  • 엔트로피 및 물리적 파일 이상

이는 구체적이고 검증 가능한 가설을 만듭니다:

저장소 규모의 인텔리전스를 위해, 대상화된 구조 추출은 모든 파일에 대한 완전한 언어 파서 없이도 유용한 코드 인텔리전스에 필요한 엔티티를 복구할 수 있다.

이 가설은 경험적으로 테스트되고 있습니다.


구조 검증: GitGalaxy vs Tree-sitter vs Ctags

이것은 현재 프로젝트에서 가장 중요한 검증 프로그램 중 하나입니다.

GitGalaxy는 동일한 Language Crucible 코퍼스에서 Tree-sitter 및 Universal Ctags와 비교 평가되고 있습니다.

첫 번째 구조 대상은 다음과 같습니다:

  • 함수
  • 클래스
  • 인자

벤치마크는 의도적으로 세 도구 간의 인기 경쟁으로 취급되지 않습니다.

도구 간에 불일치가 발생하면:

  1. 불일치가 기록됩니다;
  2. 소스가 검사됩니다;
  3. 각 도구의 동작이 조사됩니다;
  4. GitGalaxy가 잘못된 경우 GitGalaxy가 수정됩니다;
  5. 비교기/어댑터 코드가 잘못된 경우 비교기가 수정됩니다;
  6. 실제 도구 한계가 문서화됩니다;
  7. 결과가 다시 측정됩니다.

45개 언어 중 24개 언어는 세 도구 모두 비교되고, 16개 언어는 두 도구로 비교되며, 5개 GitGalaxy 전용 언어 (abap, dockerfile, jcl, livecode, yaml)는 교차 도구 합의 대신 수동 검토를 통한 수동 검증을 받습니다. 지금까지 기록된 180개의 불일치 형태 중 87개가 검증되었습니다 (48%) — 단순히 집계된 것이 아니라 읽고, 조사하고, 판정과 함께 기록되었습니다.

목표는 감사를 완료하고, 남은 GitGalaxy 결함을 해결하고, 필요한 경우 독립적인 기준 진실을 확립한 다음, 최종 정밀도/재현율 측정값을 게시하는 것입니다. 매칭, 원장 수명 주기 및 CI 적용이 어떻게 작동하는지에 대한 자세한 내용은 삼중 비교 방법론 문서를 참조하세요.

삼중 비교

참조:

벤치마크가 실제로 묻는 것

다음이 아닙니다:

"GitGalaxy가 Tree-sitter보다 더 나은 파서인가?"

하지만:

"GitGalaxy가 저장소 그래프를 구축하는 데 필요한 구조 엔티티에 대해, 기존 파싱 및 인덱싱 시스템과 비교하여 대상화된 구조 추출이 얼마나 정확하게 이를 복구할 수 있는가?"

이것이 실험이 뒷받침할 수 있는 더 좁은 주장입니다.

적절한 비교기 적용 범위가 없는 언어

일부 언어에는 현재 적절한 독립적인 Tree-sitter/Ctags 비교 경로가 없습니다.

이들은 별도의 증거 범주로 유지되며, 교차 도구 합의가 존재하는 것처럼 가장하는 대신 커밋된 수동 검증을 사용합니다.

현재 여기에는 다음과 같은 언어가 포함됩니다:

  • ABAP
  • Dockerfile
  • JCL
  • LiveCode
  • YAML

가능한 경우, 다음 단계는 독립적인 어휘, 문법 기반 또는 도메인별 비교기를 추가하는 것입니다. 신뢰할 수 있는 독립 비교기가 존재하지 않는 경우, 인간이 검증한 기준 진실이 적절한 범주로 남습니다.


검증은 사다리입니다

GitGalaxy의 증거는 점진적으로 더 강력한 질문을 중심으로 구성되고 있습니다.

1. 구조적 타당성

GitGalaxy가 코드 구조를 올바르게 식별하는가?

Tree-sitter + Ctags + 독립적으로 조사된 불일치. 위의 "구조 검증"을 참조하세요.

2. 회귀 타당성

구현이 실제 코드에서 안정적으로 유지되는가?

Language Crucible에 대한 골든 마스터 테스트.

3. 규모 타당성

실제 저장소에서 작동하는가?

수백 개의 저장소에서 나온 편집되지 않은 원시 스캔 출력.

4. 모델 타당성

구조 신호가 표현하려는 노출 범주와 일치하는가?

GitGalaxy 자체의 방정식에만 의존하지 않고, 독립적으로 관찰 가능한 결과에 대한 통계 분석.

5. 시간적 타당성

소프트웨어가 변경됨에 따라 노출이 합리적으로 작동하는가?

실제 변경 전후의 저장소 상태를 비교하는 Git 이력 분석.

6. 외부 타당성

노출 변화가 독립적으로 문서화된 보안 또는 유지보수 결과와 일치하는가?

향후 작업: 보안 수정, 회귀, 권고, 결함 및 기타 외부 이벤트 데이터셋.

이 구분은 중요합니다: 점수는 외부적으로 의미가 없더라도 내부적으로 일관될 수 있습니다.


위험 노출: GitGalaxy가 주장하는 것

GitGalaxy는 위험 노출 측정값을 생성하며, 취약성 판정이 아닙니다.

높은 노출은 다음을 의미합니다:

이 위치는 저장소의 나머지 부분에 비해 주목할 가치가 있습니다.

다음을 의미하지는 않습니다:

"이 코드는 확실히 취약합니다."

현재 시스템은 저장소 전반에 걸쳐 정규화된 노출 범주를 생성하고 구조 엔티티의 정보를 파일, 폴더 및 저장소 수준 보기를 통해 롤업합니다.

기본 신호는 다음과 같은 영역과 관련된 패턴을 다룹니다:

  • 비밀
  • 주입 표면
  • 안전하지 않은/메모리 연산
  • 동적 실행
  • I/O
  • 동시성
  • 상태 변이
  • 리플렉션
  • API
  • 의존성
  • 엔트로피
  • 기타 구조적/보안 특성

중요한 연구 질문은 이러한 신호가 GitGalaxy 자체가 수학적으로 구성한 점수와 단순히 상관관계가 있는 것이 아니라, 의미 있는 소프트웨어 위험 클래스와 경험적으로 연관되어 있는지 여부입니다.

그 구분이 다음 단계를 추진합니다.


다음 검증: Git 이력에 걸친 위험

구조 검증이 충분히 성숙해지면, GitGalaxy는 노출 모델을 종단적으로 테스트할 수 있습니다.``` text Git history | v security-relevant event | +-------------------+ | | v v parent state changed state | | v v GitGalaxy scan GitGalaxy scan | | +---------+---------+ | v exposure delta | v independent event class

핵심 실험은 다음과 같습니다:

> **보안 수정으로 독립적으로 식별된 커밋이 일반적으로 해당 GitGalaxy 노출도를 줄이는가?**

음성 대조군도 그만큼 중요합니다:

> 일반적인 개발 커밋도 동일한 동작을 보이는가?

결국:

> 보안 회귀가 노출도를 증가시키는가?

계획된 하네스는 커밋 SHA, 부모 상태, 변경된 파일/함수, 전후 노출도, 노출 델타, 구조적 변경 및 이벤트 분류를 보존합니다.

이것은 다음을 검증합니다:

**구조 → 노출도 → 실제 소프트웨어 진화**

노출 모델의 내부 수학만 테스트하는 것이 아니라 실제 소프트웨어 진화를 검증합니다.

------------------------------------------------------------------------

# 증거, 단순한 주장이 아닌

### 언어 도가니(Language Crucible)

Godot, Roslyn, curl, Kubernetes 및 Apollo 11 비행 소프트웨어와 같은 프로젝트를 포함한 실제 소스의 고정 코퍼스입니다.

[Language Crucible](https://github.com/squid-protocol/language-crucible)

### 골든 마스터 회귀 테스트

실제 소스가 다시 스캔되어 체크인된 예상 출력과 비교되므로 파서 변경 사항이 관찰 가능한 diff를 갖습니다. [`tests/tools/update_golden_master.py`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/tools/update_golden_master.py)로 재생성되며, 수동 편집은 절대 하지 않습니다.

### 삼중 비교

동일한 코퍼스가 GitGalaxy, Tree-sitter 및 Ctags에 대해 분석됩니다(커버리지가 존재하는 경우). 45개 언어 중 24개 언어가 세 도구 모두를 지원하며, 지금까지 기록된 180개의 불일치 중 87개가 검증되었습니다. 전체 내용은 [방법론](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/self_scan/tri_comparison_README.md)과 [위의 "구조적 검증" 섹션](#structural-validation-gitgalaxy-vs-tree-sitter-vs-ctags)을 참조하세요.

### 원시 저장소 출력

수백 개의 독립적으로 선정된 저장소에 대해 편집되지 않은 GitGalaxy 출력이 보존됩니다.

[원시 출력](https://github.com/squid-protocol/gitgalaxy-raw-output)

### 회귀 테스트 스위트

기본 스위트(`python -m pytest tests/`)에 **7,043개의 테스트**가 있으며, 그중 **6,165개**는 45개 구조적 시그니처 언어 전반에 걸친 시그니처별 테스트입니다 — 양성 매치, 명시적 제외 및 적대적/ReDoS 입력을 포함합니다. 세부 내역은 [`tests/README.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/README.md)를, 이 추출이 AST 판독보다 우수한 구체적이고 입증된 사례는 [`docs/why_gitgalaxy_beats_ast_here.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/why_gitgalaxy_beats_ast_here.md)를 참조하세요.

### 역사적 검증

다음 연구 계층은 노출도 측정이 Git 기록상의 실제 보안 및 유지보수 이벤트와 일치하는지 테스트할 것입니다.

------------------------------------------------------------------------

# GitGalaxy가 무엇인가 — 그리고 무엇이 아닌가

### GitGalaxy는

-   저장소 규모의 구조적 인텔리전스
-   언어에 구애받지 않는 소스 분석
-   이기종 코드 전반에 걸친 공통 구조적 표현
-   위험 노출도 우선순위 지정
-   아키텍처 매핑
-   CI 네이티브 증거 생성
-   손상되었거나 컴파일되지 않은 저장소에서도 유용
-   로컬/오프라인 운영용으로 설계

### GitGalaxy는 아님

-   CodeQL의 심층 데이터플로우 분석을 대체하지 않음
-   Semgrep의 규칙 생태계를 대체하지 않음
-   의존성 CVE 데이터베이스를 대체하지 않음
-   악용 가능성의 증명이 아님
-   런타임 분석기가 아님
-   완전한 언어 파서가 아님
-   높은 노출도가 취약점임을 보장하지 않음

  -----------------------------------------------------------------------
  도구                                주요 질문
  ----------------------------------- -----------------------------------
  **GitGalaxy**                       이 전체 저장소가 구조적으로 어떻게
                                      보이며, 어디에 먼저 주의를 기울여야
                                      하는가?

  Tree-sitter                         이 소스에 어떤 구문 구조가
                                      포함되어 있는가?

  Ctags                               탐색 가능한 코드 엔티티는
                                      어디에 있는가?

  Semgrep                             이 코드가 지정된 패턴과
                                      일치하는가?

  CodeQL                              더 깊은 분석이 어떤 데이터/제어
                                      관계를 확립할 수 있는가?

  SCA/CVE 도구                        이 의존성/버전이 알려진
                                      권고와 연관되어 있는가?
  -----------------------------------------------------------------------

------------------------------------------------------------------------

# 실제 규모

GitGalaxy는 전통적인 단일 언어 빌드 우선 워크플로우에 너무 이기종이거나 손상된 저장소를 대상으로 합니다.

예: **Kubernetes**

Go, YAML, JSON, Shell 및 Proto에 걸쳐 약 139만 줄.

종단 간 스캔: **50.83초**.

![GitGalaxy 스캔
속도](https://assets.kitploit.com/production/public/readmes/7003/596585161af8eeb861f49e2968927d69059333f145c0e2b6e9bb0cb9c9d7bc36.png)

편집되지 않은 아티팩트는 [원시 출력
저장소](https://github.com/squid-protocol/gitgalaxy-raw-output)를 참조하세요.

------------------------------------------------------------------------

# 출력물

  출력물                       용도
  ---------------------------- ----------------------------------------
  **SARIF**                    CI/보안 대시보드 통합
  **CycloneDX SBOM**           의존성 인벤토리/규정 준수
  **SQLite**                   쿼리 가능한 저장소 지식 그래프
  **LLM 아키텍처 브리프**      간결한 머신/에이전트 지향 컨텍스트
  **JSON 감사 데이터**         포렌식/자동화 워크플로우
  **3D 시각화 데이터**         대화형 저장소 토폴로지

이들은 독립적인 분석 엔진이 아니라 동일한 결정적 스캔의 서로 다른 뷰입니다.

------------------------------------------------------------------------

# Git 기록 및 아키텍처

GitGalaxy는 이미 Git 기록을 다음과 같은 신호에 통합합니다:

-   변경량(churn)
-   기여자 집중도
-   버스 팩터 노출도
-   리팩토링 핫스팟
-   파일 소유권
-   시간적 활동

연구 방향은 이를 **컨텍스트 신호로서의 기록**에서 **노출 모델의 외부 검증 소스로서의 기록**으로 확장하는 것입니다.

------------------------------------------------------------------------

# 개인정보 보호 및 배포

GitGalaxy는 로컬 및 에어갭(air-gapped) 운영용으로 설계되었습니다.

-   소스 코드는 GitGalaxy 클라우드 서비스로 전송되지 않습니다.
-   스캔 및 벡터화는 로컬에서 수행됩니다.
-   스캐너는 런타임 네트워크 요구 사항이 없습니다.
-   CI/CD 실행은 사용자 환경 내에서 유지될 수 있습니다.
-   브라우저 시각화 도구는 로컬에서 제공된 데이터로 작동합니다.

------------------------------------------------------------------------

# 설치``` bash
pip install gitgalaxy

문서를 참조하여 현재 명령어와 구성을 확인하세요.

CI/CD

다음에 대한 템플릿이 제공됩니다:

  • GitHub Actions
  • GitLab CI
  • Bitbucket Pipelines
  • Azure Pipelines
  • 일반적인 셸 호출 가능 CI 환경

templates/CI 통합 가이드를 참조하세요.


증거 살펴보기


리소스 포함 내용


문서 아키텍처, 주장 및 방법론

Language Crucible 교차 언어 벤치마크 및 골든 코퍼스

원시 출력 실제 저장소의 편집되지 않은 스캔

tests/README.md 회귀 및 골든 마스터 방법론

tri_comparison_ledger.json 불일치 항목별 검증 기록

manual_verification.json 비교기 적용 범위가 없는 검토 사례

how_to_investigate_a_discrepancy.md 비교기 불일치 방법론

시각화 도구 로컬 브라우저 기반 저장소 시각화


현재 연구 방향

GitGalaxy는 점점 더 어려워지는 일련의 질문들을 순서대로 진행하고 있습니다:

컴파일하지 않고 이기종 소스를 스캔할 수 있을까?

소스를 이해하는 데 필요한 구조적 엔터티를 안정적으로 복구할 수 있을까?

그러한 구조적 측정값이 의미 있는 위험 노출과 일치할까?

측정된 노출이 실제 소프트웨어가 진화함에 따라 올바르게 작동할까?

Tree-sitter/Ctags 검증은 현재 약 절반 정도 완료되었습니다. 가장 즉각적인 우선순위는 예비 측정값을 더 강력한 주장으로 전환하기 전에 해당 감사를 완료하는 것입니다.

다음 주요 실험은 다음과 같습니다:

Git 히스토리 → 독립적으로 식별된 변경/수정 이벤트 → GitGalaxy 전후 스캔 → 노출 델타 → 통계 분석.

이것이 바로 GitGalaxy가 구조를 보는지 여부뿐만 아니라 구조적 모델이 실제 소프트웨어의 의미 있는 변화를 추적하는지 테스트를 시작할 수 있는 지점입니다.


라이선스

Copyright (c) 2026 Joe Esquibel

GitGalaxy는 PolyForm 비상업적 라이선스 1.0.0에 따라 배포됩니다.

전체 약관은 저장소 라이선스를 참조하세요.

카테고리