Gemini CLI¶
Gemini CLI는 개발자의 터미널 환경에 상주하며 소프트웨어 엔지니어링 작업을 돕는 AI 에이전트입니다. 단순한 코드 자동 완성을 넘어, 프로젝트의 맥락을 이해하고 복잡한 리팩토링, 디버깅, 문서화 작업을 자율적으로 수행할 수 있습니다.
🚀 설치 및 시작 (Installation)¶
Gemini CLI는 Node.js 환경에서 동작합니다. npm을 사용하여 전역으로 설치할 수 있습니다.
설치 후 터미널에서 gemini 명령어로 실행합니다.
⚙️ 설정 및 환경 구성 (Configuration)¶
Gemini CLI는 전역 설정과 프로젝트별 설정을 모두 지원하여, 개인의 작업 스타일과 프로젝트의 컨벤션을 유연하게 맞출 수 있습니다.
1. 폴더 구조 (Folder Structure)¶
Gemini CLI는 작동 시 다음의 경로들을 참조합니다.
~/.gemini/(홈 디렉토리)- 전역 설정을 저장하는 곳입니다. 모든 프로젝트에 공통으로 적용되는 규칙이나 기억을 저장합니다.
GEMINI.md: 사용자에 대한 정보, 선호하는 코딩 스타일, 전역적으로 기억해야 할 사실들을 기록합니다. (Long-term Memory)
./.gemini/(프로젝트 루트)- 현재 작업 중인 프로젝트에 특화된 설정을 저장합니다.
GEMINI.md: 프로젝트의 아키텍처, 코딩 컨벤션, 특별한 빌드 규칙 등을 자연어로 기록해두면 에이전트가 이를 읽고 작업에 반영합니다.
.geminiignore.gitignore와 유사하게, Gemini가 읽거나 분석하지 말아야 할 파일이나 디렉토리를 지정합니다. (예:node_modules,dist, 비밀 키가 포함된 파일 등)
2. 컨텍스트 설정 (GEMINI.md)¶
GEMINI.md 파일은 Gemini에게 "이 프로젝트는 어떻게 다뤄야 하는지"를 알려주는 지침서 역할을 합니다.
작성 예시 (.gemini/GEMINI.md):
# Project Context
이 프로젝트는 Python FastAPI 기반의 백엔드 서버입니다.
## Coding Convention
- 변수명은 snake_case를 사용합니다.
- 모든 함수에는 Type Hint를 반드시 작성해야 합니다.
- Docstring은 Google Style을 따릅니다.
## Git Workflow
- 커밋 메시지는 Conventional Commits 규격을 따릅니다 (feat, fix, docs, ...).
- 문서를 수정할 때는 반드시 `scripts/validate_pages.py`를 실행하여 무결성을 검증해야 합니다.
이렇게 작성해두면, Gemini는 코드 수정 시 Type Hint를 자동으로 추가하고, 커밋 메시지를 작성할 때 규격을 준수하며, 문서 작업 후 검증 스크립트를 실행하려 할 것입니다.
💡 사용 가이드 (Usage Guide)¶
명령 프롬프트 예시¶
Gemini는 자연어를 잘 이해하지만, 명확한 컨텍스트를 제공할수록 더 정확한 결과를 얻을 수 있습니다.
- Bad: "이거 고쳐줘" (무엇을, 어떻게 고쳐야 할지 모호함)
- Good: "현재 열려있는
auth.py파일에서login함수가 비동기로 동작하지 않는 버그가 있어.async/await패턴으로 변경하고 관련된 테스트 코드도 수정해줘."
유용한 프롬프트 패턴¶
-
코드 분석 및 설명 요청 > "지금
src/utils폴더에 있는 파일들이 어떤 역할을 하는지 요약해줘." > "PaymentService클래스의 구조를 다이어그램으로 그려줄 수 있어?" -
리팩토링 > "이 함수의 복잡도가 너무 높아. 역할을 분리해서 가독성을 높여줘. 기존 로직은 유지해야 해."
-
테스트 작성 > "
user_controller.ts에 대한 단위 테스트를tests/unit폴더에 작성해줘. Jest를 사용해." -
에러 디버깅 > (에러 로그를 복사해 붙여넣은 후) "이 에러가 왜 발생하는지 분석하고 해결책을 제안해줘."
슬래시 명령어 (Slash Commands)¶
대화 중에 사용할 수 있는 특수 명령어들입니다.
/help: 도움말을 확인합니다./bug: 버그를 신고하거나 피드백을 전송합니다./clear: 현재 대화 세션의 컨텍스트를 초기화합니다 (새로운 주제로 넘어갈 때 유용)./exit또는/quit: CLI를 종료합니다.
🧠 메모리 기능 (Memory)¶
Gemini는 대화 중 중요한 정보를 기억할 수 있습니다.
- 사용자: "내 이름은 Rudy이고, 리눅스 환경에서 개발해. 이 사실을 기억해."
- Gemini: (내부적으로
save_memory도구를 사용하여~/.gemini/GEMINI.md등에 저장)
이후 대화부터는 사용자가 리눅스 환경임을 인지하고 그에 맞는 쉘 명령어를 제안하게 됩니다.