홈으로 돌아가기

기술 부채 없는 AI 코딩을 위한 CPG 파이프라인

이 기사는 Claude에서 AI 생성 코드의 자동 검사용 CPG 파이프라인을 설명합니다. 훅이 커밋을 분석하고, 그래프 컨텍스트를 제공하며 위험을 평가합니다. 사례는 버그 수정과 품질 지표를 보여줍니다.

Claude에서 바이브 코딩을 위한 CPG 보험
Advertisement 728x90

안전한 AI 코드 작성 위한 자동화된 CPG 파이프라인

클로드는 단 38분 만에 47개 파일, 1,900줄의 코드를 생성하며 리팩터링과 마이그레이션까지 완료했습니다. 하지만 AI의 빠른 생성 속도는 인간의 검토 능력을 뛰어넘으며, 자동화된 보호장치 없이는 기술적 부채가 누적되기 쉽습니다.

CPG 파이프라인은 이를 해결합니다. 모든 커밋을 분석하고, 코드 그래프의 맥락을 제공하며, 풀리퀘스트에서 위험 요소를 평가함으로써 무분별한 AI 코딩을 통제 가능한 프로세스로 전환합니다.

무분별한 AI 코딩의 핵심 문제점

검증되지 않은 AI 생성 코드는 반복적인 문제를 야기합니다:

Google AdInline article slot
  • 공통 모듈 대신 로직 중복 → 코드 양 증가 및 분기 복잡성 증대.
  • 숨겨진 호출 그래프: 한 파일 수정이 수십 개의 종속성에 영향을 미칩니다.
  • 문서와 코드 간 불일치: 감사 과정에서 14건의 오류 발견 (예: 설명서의 수치와 실제 코드 값 불일치).

CPG 파이프라인 아키텍처

이 파이프라인은 클로드 코드 훅을 다섯 단계에서 활용합니다:

  • 세션 시작: 프로젝트 스냅샷 — 메서드 수, 파일 수, 평균 순환 복잡도.
  • 프롬프트 처리: 클래스별 맥락 추출 (위치, 메서드 복잡도, 내부/외부 호출 관계).
  • 편집 전 경고: 높은 복잡도, 파일 내 TODO 항목, 공개 엔드포인트.
  • 커밋 후 분석: 품질 평가 및 변경 범위 측정.
  • 세션 종료: 복잡도 및 코드량 변화의 후분석.

커밋 분석 세부사항: commit_analysis.py

핵심 훅 commit_analysis.pygit commit 이후 실행됩니다:

  • 커밋 해시와 HEAD 비교를 통해 CPG의 최신 여부 확인.
  • 증분 업데이트: gocpg update 명령 실행.
  • 품질 분석: 순환 복잡도, TODO/FIXME, 디버그 코드, 폐기된 메서드.
  • 영향 분석: 호출하는 메서드, 접근 인터페이스.

모델은 다음과 같은 보고서를 받습니다: «4개 파일 변경, 12개 메서드 영향, 복잡도 8→12로 상승, 8개 호출자 위험».

Google AdInline article slot

생성 전 맥락의 이점

CPG 맥락이 프롬프트 전에 제공되면 모델의 행동이 달라집니다. 맥락 없이 작업하면 '눈먼 편집'이 됩니다. 그러나 맥락이 있으면 복잡도(8), 호출자(8개 직접), TODO 항목, 인터페이스(CLI, REST 아님)를 인지하게 되며, 이는 호환성 리스크 감소와 생성 정확도 향상으로 이어집니다.

그래프 최신성 유지 위한 Git 훅

CPG는 커밋마다 점차 노후화됩니다. post-commit, post-merge, post-checkout 훅을 통해 gocpg update를 비동기로 실행합니다:

  • 전체 파싱: 85초.
  • 2개 파일 증분 업데이트: 2~5초.
  • 10~20개 파일: 5~12초.

개발자는 기다릴 필요 없이 백그라운드에서 그래프가 자동 업데이트됩니다.

Google AdInline article slot

CI/CD 통합

CI 단계에서는 GoCPG 빌드, 캐시 복원, 기본 브랜치 동기화 후, PR 댓글에 결과 게시 + SARIF 주석 추가.

리뷰어는 다음과 같은 정보를 확인할 수 있습니다:

  • 변경된 파일 수 및 그래프 노드 수.
  • 캐시 히트 여부.
  • 위험 요소 및 보안 발견 사항.

문서 정합성 검증: claims_validator.py

검증기는 마크다운에서 숫자형 주장(예: «95개 핸들러»)을 스캔하고, CPG 기반 SQL 쿼리와 비교하여 초당 차이를 탐지합니다.

사례 연구: 사용자 스토리 검증

과제: 5개 인터페이스(CLI, REST, TUI, MCP, ACP)에서 83개 스토리의 커버리지를 검증.

AI는 StoryValidationRunner(450줄, 39개 테스트, 모두 그린)를 생성했습니다.

첫 번째 실행: 버그로 인해 0% 커버리지 (윈도우/유닉스 경로 처리 문제, 인터랙티브 vs 배치 모드 혼동).

수정 후: 46개 완전 커버, 32개 부분 커버, 2개 미발견, 3개 적용 불가.

다음 단계: 정규식 오진(경로 첫 번째 세그먼트, 정지어 누락). 정확도 향상 → «완전 커버리지» 지표는 49에서 46으로 하락 — 더 정교한 정밀도의 징후입니다.

단위 테스트는 실제 그래프 문제를 놓쳤습니다.

코드 리뷰에서의 고급 검사

파이프라인은 13개 검사 항목으로 확장되었습니다:

  • 공개 메서드(_CLI/REST/MCP)에 대한 경고.
  • 새로운 핸들러 등록.
  • 모듈 간 의존성.
  • Git diff 분석.
  • 전용 Go CPG.
  • 새 파일에 대한 테스트 검증.
  • 전이 호출 분석.
  • 스토리 커버리지 차이 분석.

품질 기록은 덱드비에 저장

분석 후 스냅샷: 메서드 수, 복잡도, TODO 항목, 죽은 코드. 주간 기준:

  • +46개 메서드.
  • 복잡도 안정.
  • 고부하 메서드 감소.

핵심 교훈

  • 생성 전 CPG 맥락은 AI 작성이 시작되기 전 오류를 줄입니다.
  • 증분 그래프 업데이트는 몇 초면 충분합니다.
  • 자동화된 PR 리포트는 리뷰를 리스크 중심으로 집중시킵니다.
  • 문서 내 숫자 검증은 사실 오류를 방지합니다.
  • 덱드비 품질 지표는 프로젝트 트렌드를 드러냅니다.

— Editorial Team

Advertisement 728x90

다음 읽기