idea_world_labDEV JOURNAL
2026년 6월 25일 목요일

Godot 소스 분석 점수화 아키텍처

작성일: 2026년 6월 25일

목적

Godot 공식문서 RAG를 이용해 GitHub 소스코드를 프로젝트 단위로 분류하고, 이후 SFT/DPO 데이터 생성으로 이어지는 흐름을 정리한다.

이번 정리의 핵심은 docs_chunks, api_mapping, label_prototypes를 모두 같은 공식문서 Markdown -> JSONL 분류 대상으로 두는 것이다. 문서 성격에 따라 설명 청크는 docs_chunks, 함수명/클래스명/심볼명 변경은 api_mapping, 함수 사용 방식/인자 구성/호출 패턴 변경은 label_prototypes로 보낸다.

현재 결론

초기 공식문서 수집 단계에서 준비할 핵심 테이블은 다음 세 개다.

테이블 역할
docs_chunks 공식문서 설명 본문, 튜토리얼, class reference 청크 저장 대상
api_mapping Godot 3 -> Godot 4에서 함수명, 클래스명, 심볼명이 어떻게 바뀌었는지 저장하는 대상
label_prototypes 함수 사용 방식, 인자 구성, 호출 패턴이 통째로 바뀐 경우 어떻게 써야 하는지 저장하는 대상
항목 정리
기존 혼란 처음에는 세 테이블이 서로 다른 동작 흐름을 갖는 것처럼 생각했다.
새 경계 세 테이블은 모두 공식문서 Markdown을 JSONL로 분류할 때 쓰는 저장 대상이다.
현재 우선순위 원래 계획대로 세 테이블을 유지하고, 문서 성격에 따라 하나 이상의 JSONL로 분류 저장한다.

최종 분석 단위

입력은 GitHub 프로젝트 또는 로컬 프로젝트 디렉터리다.

분석기는 파일시스템을 훑고, Godot 관련 파일을 AST 또는 코드 조각 단위로 쪼갠다.

초기 대상:

파일 용도
.gd GDScript AST/라인/함수 단위 분석
.tscn, .tres 씬/리소스 안의 class, script, node type 단서 추출
project.godot 프로젝트 버전, feature, renderer, autoload 등 프로젝트 단서 추출
README/문서 프로젝트 설명과 Godot 버전 힌트 보조

On-demand LLM 호출 흐름

LLM은 상시 켜두는 것이 아니라, 필요한 AST/코드 조각마다 온디맨드로 호출한다.

각 AST 조각은 다음 근거와 함께 LLM에 전달된다.

AST/code chunk
+ 필요한 공식문서 JSONL 검색 결과
+ 출력 JSONL 스키마
+ 프로젝트/파일 식별 정보

LLM 응답 스키마와 score DB 저장 컬럼은 아직 확정하지 않는다. 현재 문서에서는 어떤 테이블을 어떤 흐름에서 검색하고, 그 결과가 파일시스템 분류에 어떻게 쓰이는지만 기록한다.

코드 설명 생성 데이터 흐름

코드 설명 생성 데이터 흐름

코드 설명 생성에서는 docs_chunks가 핵심 근거다.

흐름:

  1. 사용자가 “이거 뭔 뜻이야?”와 소스코드를 입력한다.
  2. AST Parser가 코드를 조각으로 나눈다.
  3. Retriever가 docs_chunks에서 관련 공식문서를 검색한다.
  4. Qwen 3.6이 프롬프트, 소스코드 조각, 검색 근거가 서로 관련 있는지 검증한다.
  5. 관련 없는 검색 결과는 폐기한다.
  6. 관련 있는 근거와 코드 조각을 다시 Qwen 3.6에 전달해 설명 JSONL을 생성한다.
  7. Validator가 응답을 검증한다.
  8. 검증된 결과를 score DB에 저장한다.
  9. score DB 결과로 파일시스템을 분류한다.

Godot 3 -> Godot 4 함수명 변환 흐름

Godot 3에서 Godot 4 함수명 변환 흐름

마이그레이션에서는 api_mapping이 핵심 근거다.

흐름:

  1. 사용자가 “이거 변환 필요해?”와 소스코드를 입력한다.
  2. AST Parser가 Godot API 후보 심볼을 추출한다.
  3. Retriever가 api_mapping에서 source API, target API, change type을 검색한다.
  4. Qwen 3.6이 검색 결과가 해당 코드 조각과 실제로 관련 있는지 검증한다.
  5. 관련 없는 mapping은 폐기한다.
  6. 관련 있는 mapping만 이용해 Godot 3 -> 4 마이그레이션 JSONL을 생성한다.
  7. Validator가 변환 응답을 검증한다.
  8. 검증된 결과를 score DB에 저장한다.
  9. score DB 결과로 파일시스템을 분류한다.

Godot 3 -> Godot 4 사용 패턴 변환 흐름

Godot 3에서 Godot 4 사용 패턴 변환 흐름

사용 패턴 변환에서는 label_prototypes가 핵심 근거다.

흐름:

  1. 사용자가 “이거 변환 필요해?”와 소스코드를 입력한다.
  2. AST Parser가 함수 호출, 인자 구성, 호출 패턴 후보를 추출한다.
  3. Retriever가 label_prototypes에서 사용 방식/인자/호출 패턴 변환 근거를 검색한다.
  4. Qwen 3.6이 검색 결과가 해당 코드 조각과 실제로 관련 있는지 검증한다.
  5. 관련 없는 prototype은 폐기한다.
  6. 관련 있는 prototype만 이용해 Godot 3 -> 4 사용 패턴 변환 JSONL을 생성한다.
  7. Validator가 변환 응답을 검증한다.
  8. 검증된 결과를 score DB에 저장한다.
  9. score DB 결과로 파일시스템을 분류한다.

Score DB

AST 조각별 Retriever 검색 결과, LLM 검증 결과, Validator 통과 결과는 최종적으로 score DB에 저장한다.

score DB는 학습 데이터 원본이 아니라 파일시스템을 분류하기 위한 판단 결과 저장소다. 소스 분석 과정에서 나온 Retriever/LLM/Validator 결과를 기록한다.

  • docs_chunks 검색 결과: 코드 설명 요청에서 공식문서 근거가 실제 코드와 관련 있는지 검증한 결과
  • api_mapping 검색 결과: Godot 3 -> Godot 4 함수명/심볼 변환 근거가 실제 코드와 관련 있는지 검증한 결과
  • label_prototypes 검색 결과: 함수 사용 방식, 인자 구성, 호출 패턴 변환 근거가 실제 코드와 관련 있는지 검증한 결과

score DB의 컬럼, 집계 방식, 분류 라벨은 아직 정하지 않는다. 이 문서에서는 score DB가 “분류 전 판단 결과를 모으는 저장소”라는 역할만 고정한다.

최종 파일시스템 분류:

project source
  -> AST/code chunks
  -> official docs JSONL retrieval
  -> on-demand LLM verification
  -> score DB
  -> classified filesystem

SFT와 DPO 생성

SFT와 DPO의 세부 설계는 아직 정하지 않는다. 현재 확정한 것은 score DB 자체가 학습 데이터 소스가 아니라는 점이다. 먼저 파일시스템을 분류하고, 이후에는 분류된 파일시스템을 기반으로 SFT와 DPO를 설계할 소스로 만들 예정이다.

Git 업로드 안전 기준

이번 문서화에서는 웹 UI, 로컬 변환 스크립트, AST 분석 스크립트, API 키, JSONL 산출물, 테스트 소스코드는 올리지 않는다.

업로드 허용:

  • 아키텍처 문서
  • 흐름도 이미지
  • 공개해도 되는 회고/로드맵 텍스트

업로드 금지:

  • Streamlit 웹앱 코드
  • Markdown -> JSONL 변환 실험 스크립트
  • Retriever/AST 분석 실험 스크립트
  • API key, endpoint, .env
  • 수집한 전체 Markdown 원본 zip
  • AST/code chunk 분석 결과
  • JSONL 중간 산출물
  • 테스트용으로 클론한 외부 Godot 프로젝트 소스