피드로 돌아가기
Dev.toAI/ML
원문 읽기
Raw Diff를 넘어 Code Analysis 기반 AI 커밋 메시지 생성
Your Commit Tool Doesn't Read Your Code. Mine Does.
AI 요약
Context
기존 AI 커밋 도구는 단순 git diff 텍스트를 LLM에 전달하는 구조. 코드의 문법적 맥락을 무시한 텍스트 완성 방식의 한계. 의미 없는 일반적 메시지 생성으로 인한 정보 가치 상실.
Technical Solution
- tree-sitter를 활용해 staged 및 HEAD 버전의 코드를 추상 구문 트리로 분석하는 사전 처리 단계 도입
- CPU 멀티코어를 활용해 10개 언어의 소스 코드를 병렬로 파싱하여 분석 속도 최적화
- 단순 diff 대신 파라미터 추가, 반환 타입 변경, 가시성 변경 등 구조적 변경 사항을 정의한 Structured Changes 포맷 생성
- 파일 간 관계 분석을 통해 소스 파일과 테스트 파일의 연결성 및 심볼 참조 관계 추적
- 분석 결과 기반의 자동 타입 분류(test, docs, chore)로 LLM의 환각 현상 방지
- 생성된 메시지를 7가지 규칙으로 검증하고 최대 3회까지 타겟팅된 수정 요청을 수행하는 Validator 설계
Key Takeaway
LLM을 단순한 처리기가 아닌 최종 출력 단계로 배치하고, 정밀한 정적 분석 결과를 입력값으로 제공함으로써 결과물의 신뢰성과 정확도를 극대화하는 파이프라인 설계 원칙.
실천 포인트
AI 도구 도입 시 원시 데이터(Raw Data)를 그대로 전달하기보다, 도메인 특화 분석 도구(Parser, Linter 등)를 통해 정제된 구조적 데이터를 제공하여 결과 품질을 높일 것