728x90
클로드를 두뇌로, 제미니 CLI를 데이터 스펀지로 활용
- Claude가 Gemini를 부리는 법?
- "Claude야, Gemini 불러줘"
- Claude에서 Gemini CLI를 연결하는 방법
300x250
클로드(Claude)와 제미니 CLI(Gemini CLI)를 효과적으로 조합하면 각 도구의 장점을 극대화할 수 있습니다. 클로드는 뛰어난 추론 능력과 코드 작성 능력을, 제미니는 대용량 컨텍스트 처리 능력을 제공합니다.
핵심 전략
- 클로드: 복잡한 로직 설계, 코드 작성, 문제 해결 (두뇌 역할)
- 제미니 CLI: 대규모 코드베이스 분석, 정보 수집 (데이터 스펀지 역할)
🔧 기본 설정
1. CLAUDE.md 파일 설정
# Using Gemini CLI for Large Codebase Analysis
When analyzing large codebases or multiple files that might exceed context limits,
use the Gemini CLI with its massive context window. Use `gemini -p` to leverage
Google Gemini's large context capacity.
## File and Directory Inclusion Syntax
Use the `@` syntax to include files and directories in your Gemini prompts.
The paths should be relative to WHERE you run the gemini command.
2. 제미니 CLI 기본 사용법
# 단일 파일 분석
gemini -p "@src/main.py 이 파일의 목적과 구조를 설명해줘"
# 여러 파일 분석
gemini -p "@package.json @src/index.js 코드에서 사용된 의존성을 분석해줘"
# 전체 디렉토리 분석
gemini -p "@src/ 이 코드베이스의 아키텍처를 요약해줘"
# 현재 디렉토리 전체 분석
gemini -p "@./ 이 전체 프로젝트에 대한 개요를 제공해줘"
# --all_files 플래그 사용
gemini --all_files -p "프로젝트 구조와 의존성을 분석해줘"
🎯 활용 시나리오별 예시
1. 기능 구현 확인
# 다크 모드 구현 확인
gemini -p "@src/ @lib/ 이 코드베이스에 다크 모드가 구현되어 있나요?
관련 파일과 함수를 보여주세요"
# JWT 인증 구현 확인
gemini -p "@src/ @middleware/ JWT 인증이 구현되어 있나요?
모든 인증 관련 엔드포인트와 미들웨어를 나열해주세요"
# React 훅 패턴 검색
gemini -p "@src/ WebSocket 연결을 처리하는 React 훅이 있나요?
파일 경로와 함께 나열해주세요"
2. 보안 및 성능 검토
# 에러 처리 검토
gemini -p "@src/ @api/ 모든 API 엔드포인트에 적절한 에러 처리가
구현되어 있나요? try-catch 블록의 예시를 보여주세요"
# 레이트 리미팅 확인
gemini -p "@backend/ @middleware/ API에 레이트 리미팅이 구현되어 있나요?
구현 세부사항을 보여주세요"
# 캐싱 전략 검토
gemini -p "@src/ @lib/ @services/ Redis 캐싱이 구현되어 있나요?
모든 캐시 관련 함수와 사용법을 나열해주세요"
# SQL 인젝션 보호 확인
gemini -p "@src/ @api/ SQL 인젝션 보호가 구현되어 있나요?
사용자 입력이 어떻게 살균되는지 보여주세요"
3. 테스트 커버리지 확인
# 특정 모듈 테스트 확인
gemini -p "@src/payment/ @tests/ 결제 처리 모듈이 완전히 테스트되었나요?
모든 테스트 케이스를 나열해주세요"
# 전체 테스트 커버리지 분석
gemini -p "@src/ @tests/ 소스 코드에 대한 테스트 커버리지를 분석해주세요"
🚀 고급 활용법
1. 자동화된 워크플로우 (Reddit 사용자 제안)
Reddit 사용자가 제안한 bash 함수를 활용한 자동화 예시
#!/bin/bash
# Claude와 Gemini를 연결하는 함수
claude_gemini_bridge() {
local claude_output="$1"
# Claude의 /tools 블록 파싱
tools_block=$(echo "$claude_output" | grep -A 100 "/tools")
# @ 경로를 절대 경로로 변환
absolute_paths=$(echo "$tools_block" | sed 's/@/$(pwd)\//g')
# Gemini에 전달하여 분석
gemini_result=$(echo "$absolute_paths" | gemini -p -)
# 결과를 Claude에 다시 전달
echo "$gemini_result" | claude --hidden-system-message
}
# 파일 변경 감지 및 자동 분석
watch_and_analyze() {
inotifywait -m -r -e modify,create,delete ./src |
while read path action file; do
echo "파일 변경 감지: $file"
# 대규모 리팩토링 시 자동 동기화
gemini -p "@src/ 최근 변경사항을 분석하고 영향받는 부분을 찾아주세요" |
claude_gemini_bridge
done
}
2. 토큰 절약을 위한 전처리
# ripgrep을 사용한 사전 필터링
search_and_analyze() {
local pattern="$1"
local analysis_request="$2"
# ripgrep으로 패턴 매칭
rg_results=$(rg -A 3 -B 3 "$pattern" --json)
# 매칭 결과만 Gemini로 전송
echo "$rg_results" | gemini -p "$analysis_request"
}
# 사용 예시
search_and_analyze "useEffect" "@결과 React 훅 사용 패턴을 분석해주세요"
3. 프로젝트별 맞춤 설정
# 프로젝트 설정 파일 (.gemini-claude-config)
cat > .gemini-claude-config << EOF
{
"large_analysis_threshold": 100000, # 100KB 이상일 때 Gemini 사용
"auto_delegate_patterns": [
"전체.*분석",
"아키텍처.*검토",
"보안.*감사"
],
"claude_preferred_tasks": [
"리팩토링",
"버그 수정",
"코드 작성"
]
}
EOF
📊 사용 시나리오별 도구 선택 가이드
작업 유형 | 권장 도구 | 이유 |
---|---|---|
전체 코드베이스 분석 | Gemini CLI | 대용량 컨텍스트 처리 가능 |
복잡한 버그 수정 | Claude | 뛰어난 추론 능력 |
아키텍처 문서화 | Gemini → Claude | Gemini로 수집, Claude로 정리 |
코드 리팩토링 | Claude | 정밀한 코드 수정 능력 |
보안 감사 | Gemini CLI | 전체 코드베이스 스캔 |
새 기능 구현 | Claude | 창의적 문제 해결 |
💡 실전 팁
1. 효율적인 프롬프트 작성
# 비효율적 (너무 광범위함)
gemini -p "@src/ 코드를 분석해줘"
# 효율적 (구체적이고 목적이 명확함)
gemini -p "@src/ @lib/ 이 프로젝트에서 사용하는 상태 관리 패턴을 찾아서
각 패턴의 장단점을 분석해주세요. Redux, Context API, 또는
다른 상태 관리 라이브러리 사용 여부를 확인해주세요"
2. 결과 후처리
# Gemini 결과를 Claude에 전달하여 개선
gemini_analysis=$(gemini -p "@src/ 컴포넌트 구조 분석")
echo "$gemini_analysis" | claude --prompt "
위 분석 결과를 바탕으로:
1. 개선이 필요한 부분을 찾아주세요
2. 리팩토링 계획을 수립해주세요
3. 구체적인 코드 예시를 제공해주세요
"
3. 컨텍스트 관리 전략
# 대규모 분석은 Gemini로
gemini -p "@./ 프로젝트 전체 의존성 트리를 분석해주세요" > deps_analysis.txt
# 상세한 작업은 Claude로 (필요한 부분만 전달)
cat deps_analysis.txt | grep "security" | claude --prompt "
보안 관련 의존성 중 업데이트가 필요한 것들을 찾고
업데이트 계획을 수립해주세요
"
🎓 베스트 프랙티스
- 역할 분담 명확화
- Gemini: 정보 수집, 패턴 검색, 대규모 분석
- Claude: 의사결정, 코드 작성, 복잡한 문제 해결
- 점진적 분석
- 먼저 Gemini로 전체 구조 파악
- 필요한 부분만 Claude로 심층 분석
- 자동화 우선
- 반복적인 작업은 스크립트로 자동화
- Git hooks, CI/CD와 연동
- 토큰 효율성
- 대용량 파일은 Gemini로 요약 후 Claude에 전달
- 불필요한 코드는 사전 필터링
- 버전 관리 통합
# Git pre-commit hook 예시 #!/bin/bash gemini -p "@staged 커밋될 변경사항이 코딩 표준을 따르나요?" || exit 1
이러한 방식으로 Claude와 Gemini CLI를 조합하면, 대규모 프로젝트에서도 효율적으로 작업할 수 있으며, 각 도구의 강점을 최대한 활용할 수 있습니다.
Claude에서 Gemini CLI를 MCP 방식으로 활용하는 방법
MCP는 AI 어시스턴트가 외부 도구와 상호작용할 수 있게 하는 프로토콜입니다. Claude가 Gemini CLI의 강력한 분석 능력을 직접 활용할 수 있게 해줍니다.
MCP의 장점
- 통합된 워크플로우: Claude 내에서 직접 Gemini 호출
- 자동화된 컨텍스트 전달: 수동 복사/붙여넣기 불필요
- 토큰 절약: 대용량 파일 분석을 Gemini에 위임
- 실시간 상호작용: Claude와 Gemini 간 즉각적인 데이터 교환
🚀 Gemini MCP Tool 설치 및 설정
1. 원라인 설치 (권장)
claude mcp add gemini-cli -- npx -y gemini-mcp-tool
2. 설치 확인
Claude Code 내에서 /mcp
입력하여 gemini-cli MCP가 활성화되었는지 확인
3. 대체 설치 방법
Claude Desktop에서 가져오기
이미 Claude Desktop에 설정이 있다면
claude mcp add-from-claude-desktop
전역 설치
npm install -g gemini-mcp-tool
⚙️ 상세 설정
1. Claude Desktop 설정 파일 위치
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/claude/claude_desktop_config.json
2. NPX 사용 설정 (권장)
{
"mcpServers": {
"gemini-cli": {
"command": "npx",
"args": ["-y", "gemini-mcp-tool"]
}
}
}
3. 전역 설치 사용 설정
{
"mcpServers": {
"gemini-cli": {
"command": "gemini-mcp"
}
}
}
🛠️ 사용 가능한 명령어
1. AI 도구 (Claude가 사용)
ask-gemini
기능: Google Gemini에 분석 요청
매개변수:
- prompt (필수): 분석 요청 내용
- model (선택): Gemini 모델 선택 (기본: gemini-2.5-flash)
- sandbox (선택): 안전한 코드 실행을 위한 샌드박스 모드
sandbox-test
기능: Gemini 샌드박스에서 안전하게 코드 실행
매개변수:
- prompt (필수): 코드 테스트 요청
- model (선택): Gemini 모델 선택
2. 사용자 슬래시 명령어
/analyze
파일이나 디렉토리 분석, 일반 질문
/analyze prompt:@src/ 이 디렉토리를 요약해줘
/analyze prompt:최신 기술 뉴스를 검색해줘
/sandbox
안전한 코드 테스트
/sandbox prompt:CSV 데이터를 처리하는 Python 스크립트 만들고 실행해줘
/sandbox prompt:@script.py 이 스크립트를 안전하게 테스트해줘
📚 실전 활용 예시
1. 파일 참조를 통한 분석 (@ 구문)
# 단일 파일 분석
"gemini를 사용해서 @src/main.js를 분석하고 무엇을 하는지 설명해줘"
# 현재 디렉토리 요약
"gemini로 @. 현재 디렉토리를 요약해줘"
# package.json 의존성 분석
"@package.json을 분석하고 의존성에 대해 알려줘"
# 여러 파일 동시 분석
"gemini로 @src/components/ @src/hooks/ 이 두 디렉토리의 관계를 분석해줘"
2. 일반 질문 (파일 참조 없이)
# 최신 뉴스 검색
"gemini에게 최신 기술 뉴스를 검색해달라고 해줘"
# 개념 설명
"gemini를 사용해서 양자 컴퓨팅을 설명해줘"
# 베스트 프랙티스 조언
"gemini에게 React 개발 베스트 프랙티스에 대해 물어봐"
3. 샌드박스 모드 활용
# 안전한 스크립트 생성 및 실행
"gemini 샌드박스를 사용해서 데이터를 처리하는 Python 스크립트를 만들고 실행해줘"
# 기존 스크립트 안전하게 테스트
"gemini에게 @script.py를 안전하게 테스트하고 무엇을 하는지 설명해달라고 해줘"
# 패키지 설치 및 시각화
"gemini 샌드박스를 사용해서 numpy를 설치하고 데이터 시각화를 만들어줘"
# API 호출 스크립트 테스트
"이 코드를 안전하게 테스트해줘: API에 HTTP 요청을 하는 스크립트 만들기"
🔄 워크플로우 통합 패턴
1. 대규모 코드베이스 분석 워크플로우
graph LR
A[Claude에서 작업 시작] --> B{컨텍스트 크기 확인}
B -->|대용량| C[Gemini MCP로 분석 요청]
B -->|소용량| D[Claude가 직접 처리]
C --> E[Gemini가 분석 수행]
E --> F[결과를 Claude에 반환]
F --> G[Claude가 결과 기반 작업 수행]
2. 실시간 분석 예시
# Claude 내에서 실행
"""
1. 먼저 전체 프로젝트 구조를 파악해보겠습니다.
gemini를 사용해서 @./ 프로젝트 전체 구조를 분석해줘
2. [Gemini 결과 수신 후]
특정 모듈에 집중해보겠습니다.
gemini로 @src/auth/ 인증 모듈의 보안 취약점을 검사해줘
3. [분석 결과 기반]
이제 개선사항을 구현하겠습니다.
[Claude가 직접 코드 작성]
"""
3. 점진적 리팩토링 워크플로우
# 1단계: 현재 상태 분석
"gemini를 사용해서 @src/ 코드 품질과 개선이 필요한 부분을 찾아줘"
# 2단계: 영향 범위 파악
"gemini로 @src/components/UserProfile.js를 리팩토링하면 영향받는 파일들을 찾아줘"
# 3단계: Claude가 리팩토링 수행
"위 분석을 바탕으로 UserProfile 컴포넌트를 리팩토링하겠습니다"
# 4단계: 검증
"gemini 샌드박스로 리팩토링된 코드가 제대로 작동하는지 테스트해줘"
🎯 고급 활용 기법
1. 컨텍스트 최적화 전략
// Claude 내부 로직 (의사코드)
function analyzeWithOptimalTool(files) {
const totalSize = calculateTotalSize(files);
if (totalSize > CLAUDE_CONTEXT_LIMIT) {
// Gemini MCP 자동 호출
return callGeminiMCP({
prompt: `@${files.join(' @')} 분석해줘`,
model: 'gemini-2.5-flash'
});
} else {
// Claude가 직접 처리
return claudeDirectAnalysis(files);
}
}
2. 병렬 분석 패턴
# 여러 측면을 동시에 분석
parallel_analysis() {
# 보안 분석
"gemini로 @backend/ 보안 취약점을 찾아줘" &
# 성능 분석
"gemini로 @src/ 성능 병목 지점을 찾아줘" &
# 코드 품질 분석
"gemini로 @./ 코드 스멜과 안티패턴을 찾아줘" &
wait # 모든 분석 완료 대기
}
3. 템플릿 기반 분석
# 프로젝트 분석 템플릿
project_analysis_template:
architecture:
prompt: "gemini로 @src/ 전체 아키텍처를 다이어그램으로 설명해줘"
dependencies:
prompt: "gemini로 @package.json @yarn.lock 의존성 트리와 보안 이슈를 분석해줘"
performance:
prompt: "gemini로 @src/ 성능 최적화가 필요한 부분을 찾아줘"
security:
prompt: "gemini로 @./ OWASP Top 10 기준으로 보안 검사를 수행해줘"
💡 베스트 프랙티스
1. 효과적인 프롬프트 작성
# ❌ 비효율적
"gemini로 코드 봐줘"
# ✅ 효율적
"gemini를 사용해서 @src/api/ REST API 엔드포인트의 에러 처리 패턴을 분석하고,
일관성 없는 부분을 찾아서 개선 방안을 제시해줘"
2. 모델 선택 전략
// 작업별 최적 모델 선택
const modelSelection = {
quickAnalysis: 'gemini-2.5-flash', // 빠른 분석
deepAnalysis: 'gemini-2.5-pro', // 심층 분석
codeGeneration: 'gemini-2.5-flash', // 코드 생성
securityAudit: 'gemini-2.5-pro' // 보안 감사
};
3. 에러 처리 및 폴백
# 에러 처리 패턴
try_gemini_analysis() {
# 1차 시도: Gemini MCP
result=$(claude_command "gemini로 @large_file.js 분석해줘")
if [ $? -ne 0 ]; then
# 폴백: 파일을 청크로 나누어 분석
split_and_analyze "large_file.js"
fi
}
🔧 문제 해결 가이드
일반적인 문제와 해결법
문제 | 원인 | 해결 방법 |
---|---|---|
MCP가 인식되지 않음 | 설정 파일 오류 | 설정 파일 경로와 JSON 구문 확인 |
Gemini 응답 없음 | API 한도 초과 | 일일/분당 요청 제한 확인 |
@ 구문 작동 안 함 | 상대 경로 문제 | 현재 작업 디렉토리 확인 |
샌드박스 오류 | 권한 문제 | 샌드박스 모드 명시적 활성화 |
디버깅 명령어
# MCP 상태 확인
/mcp
# 연결 테스트
/ping message:"MCP 연결 테스트"
# 도움말 확인
/help
📊 성능 비교 및 사용 지침
작업별 도구 선택 매트릭스
작업 유형 | Claude 직접 | Gemini MCP | 이유 |
---|---|---|---|
100KB 이하 파일 | ✅ | ❌ | 오버헤드 없이 빠른 처리 |
1MB 이상 파일 | ❌ | ✅ | 컨텍스트 한계 초과 |
창의적 코드 작성 | ✅ | ❌ | Claude의 추론 능력 활용 |
패턴 검색 | ❌ | ✅ | 대규모 검색에 효율적 |
실시간 상호작용 | ✅ | ❌ | 낮은 지연시간 필요 |
보안 감사 | ❌ | ✅ | 전체 코드베이스 스캔 |
🚀 실전 활용 시나리오
시나리오 1: 레거시 코드 현대화
# 1. 현재 상태 파악
"gemini를 사용해서 @legacy/ 폴더의 코드 연령과 기술 스택을 분석해줘"
# 2. 의존성 분석
"gemini로 @legacy/ 코드가 사용하는 모든 외부 의존성과 버전을 찾아줘"
# 3. 마이그레이션 계획
"위 분석을 바탕으로 단계별 현대화 계획을 수립해주세요" # Claude가 처리
# 4. 영향 범위 확인
"gemini로 @legacy/core.js를 수정하면 영향받는 모든 파일을 찾아줘"
시나리오 2: 성능 최적화
# 1. 병목 지점 찾기
"gemini를 사용해서 @src/ 에서 O(n²) 이상의 시간 복잡도를 가진 함수들을 찾아줘"
# 2. 메모리 사용 분석
"gemini로 @src/ 메모리 누수 가능성이 있는 패턴을 찾아줘"
# 3. 최적화 구현
# Claude가 직접 최적화된 코드 작성
# 4. 검증
"gemini 샌드박스로 최적화 전후 성능을 비교 테스트해줘"
이러한 MCP 통합 방식을 통해 Claude와 Gemini CLI의 장점을 최대한 활용하면서, 효율적이고 강력한 개발 워크플로우를 구축할 수 있습니다.
728x90
그리드형(광고전용)
댓글