AI 기반 코드베이스 분석 및 리팩토링 계획 CLI 도구
gemini-refactor는 Google Gemini LLM을 활용하여 Node.js 프로젝트의 코드베이스를 자동으로 분석하고, 구조적 개선점과 구체적인 리팩토링 계획을 제안하는 CLI 도구입니다.
- 📊 자동 코드베이스 분석: 프로젝트 구조, 의존성, 핵심 로직을 AI가 분석
- 🎯 상세 평가: Over-engineering, Modularity, Clean Code 관점에서 0-100점 평가
- 🏗️ 구조 개선 제안: DDD/Feature-based 구조로 디렉토리 재구성 제안
- 📋 실행 계획 생성: 구체적인 리팩토링 작업 단계별 계획
- 🧪 TDD 지원: Kent Beck의 RED/GREEN/REFACTOR 사이클 적용 계획
- 🚫
.gitignore반영: 분석 대상에서 불필요한 파일 자동 제외
npm install -g gemini-refactorGoogle Gemini API 키가 필요합니다:
# .env 파일 생성 또는 환경변수 설정
echo "GEMINI_API_KEY=your_api_key_here" > .env프로젝트 루트에서 실행:
gemini-refactor# 상세 분석 (더 많은 파일 분석, 비용 증가 가능)
gemini-refactor --ultrathink
# TDD 최적화 계획 생성
gemini-refactor --tdd
# 출력 디렉토리 지정
gemini-refactor --output-dir ./analysis-results
# 모든 옵션 조합
gemini-refactor --ultrathink --tdd --output-dir ./reports분석 완료 후 다음 파일들이 생성됩니다:
gemini-refactor-report.xml: 상세 분석 리포트gemini-refactor-plan.xml: 실행 계획
<?xml version="1.0"?>
<gemini-refactor-report>
<summary>
<projectContext>Express.js 기반 REST API 서버...</projectContext>
<overallScore modularity="65" cleanCode="78" overEngineering="85"/>
<keyFindings>
src/services/api.js: 단일 서비스 파일이 너무 많은 책임을 가짐
src/controllers/user.js: processUserData 함수가 150줄 이상으로 복잡함
</keyFindings>
</summary>
<directoryStructureAnalysis>
<current><![CDATA[
src/
├── controllers/
├── models/
└── services/
]]></current>
<proposed><![CDATA[
src/
├── features/
│ ├── auth/
│ ├── user/
│ └── payment/
└── core/
├── middleware/
└── config/
]]></proposed>
</directoryStructureAnalysis>
<improvementPoints>
<category name="Modularity">
<point>
<location>src/services/api.js</location>
<issue>단일 파일이 인증, 결제, 사용자 로직을 모두 처리</issue>
<suggestion>도메인별로 auth.service.js, payment.service.js로 분리</suggestion>
</point>
</category>
</improvementPoints>
</gemini-refactor-report>TDD 옵션 사용 시:
<?xml version="1.0"?>
<plan basedOnReport="gemini-refactor-report.xml">
<task id="1" priority="high">
<title>services/api.js를 도메인별 서비스로 분리</title>
<description>모놀리식 api.js를 auth, user, payment 서비스로 분리하여 응집도 향상</description>
<tddCycle>
<step type="RED">기존 API 엔드포인트에 대한 통합 테스트 작성 후 실패 확인</step>
<step type="GREEN">auth.service.js 생성 및 인증 관련 메서드 이동, 테스트 통과</step>
<step type="REFACTOR">코드 정리, 중복 제거, 문서화 추가</step>
</tddCycle>
</task>
</plan>- Node.js: >= 18.0.0
- Google Gemini API Key: 필수
- 지원 프로젝트: Node.js (package.json 필요)
- Gemini API 사용량에 따라 비용 발생
--ultrathink옵션 사용 시 더 많은 토큰 소모- 분석 전 예상 비용이 표시되며 사용자 확인 후 진행
ISC
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Q: "GEMINI_API_KEY가 없다" 오류
A: .env 파일에 GEMINI_API_KEY=your_key 추가 또는 환경변수 설정
Q: 분석 대상 파일이 너무 많아 비용이 걱정됨
A: .gitignore에 제외할 디렉토리 추가 또는 --ultrathink 옵션 제거
Q: 특정 파일이 분석되지 않음
A: .gitignore 규칙 확인, 파일이 실제로 존재하는지 확인
gemini-refactor로 더 나은 코드 구조를 만들어보세요! 🚀