# Gemini CLI를 활용한 에이전틱 코딩 팁과 트릭

> Clean Markdown view of GeekNews topic #24661. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24661](https://news.hada.io/topic?id=24661)
- GeekNews Markdown: [https://news.hada.io/topic/24661.md](https://news.hada.io/topic/24661.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-28T01:33:39+09:00
- Updated: 2025-11-28T01:33:39+09:00
- Original source: [github.com/addyosmani](https://github.com/addyosmani/gemini-cli-tips)
- Points: 26
- Comments: 1

## Summary

Google의 **Gemini CLI**는 단순한 AI 채팅 도구를 넘어, 터미널에서 코드 작성·디버깅·자동화를 수행하는 **에이전틱 개발 플랫폼**으로 진화하고 있습니다. `GEMINI.md`를 통한 **지속적 컨텍스트 관리**, **사용자 정의 명령**과 **MCP 서버 확장**, **VS Code 통합** 등으로 개발 환경 전반을 하나의 대화형 인터페이스로 묶어내죠. 특히 GitHub Action, 텔레메트리, 확장 모듈까지 지원하며 **AI 중심의 워크플로우 자동화**를 현실화하고 있습니다. 지난주에 말씀 드렸듯이, 이제 개발자에게는 Gemini도 주요 선택지가 되었습니다.

## Topic Body

- **Gemini CLI**는 Google의 Gemini 모델을 터미널에서 직접 활용할 수 있는 오픈소스 AI 도우미로, 자연어 명령을 통해 코드 작성, 디버깅, 자동화 작업을 수행하는 **대화형 명령줄 도구**  
- 약 30개의 **전문가용 팁**을 통해 지속적 컨텍스트 관리(`GEMINI.md`), 사용자 정의 명령, MCP 서버 확장, 메모리 기능, 체크포인트 복원 등 고급 기능을 다룸  
- 파일·이미지 참조(`@`), YOLO 모드(자동 승인), 헤드리스 실행, 다중 디렉터리 작업, IDE 통합(VS Code) 등 **개발 워크플로우 최적화 기능** 제공  
- GitHub Action, 확장(Extensions), 텔레메트리, 토큰 캐싱 등 **자동화·관찰·확장성** 중심의 최신 기능 포함  
- Gemini CLI는 단순한 AI 채팅이 아닌 **개발 환경 전반을 통합 제어하는 에이전틱 개발 플랫폼**으로 진화 중  

---

### Gemini CLI 개요
- Gemini CLI는 Google Gemini 모델을 터미널에서 직접 사용할 수 있는 **AI 기반 명령줄 인터페이스**
  - Node.js/TypeScript 기반으로 모든 주요 OS에서 동작
  - 자연어로 명령을 입력하면 코드 생성, 디버깅, 시스템 설정 등 다단계 작업 수행
- 설치는 `npm install -g @google/gemini-cli` 또는 `npx @google/gemini-cli`로 가능  
- 인증은 **Google 계정 로그인(무료)** 또는 **API 키(유료/엔터프라이즈)** 방식 지원  
  - 무료 계정은 분당 약 60회, 하루 1,000회 요청 가능  
  - API 키 사용 시 데이터 보호 강화 및 로그 보존 정책 적용  
- 기본 실행은 `gemini` 명령으로 시작하며, `/` 명령(세션 제어)과 `!` 명령(셸 실행)을 지원  
  - 시스템 변경 시 사용자 승인(Y/n)을 요청하는 **안전 모드** 기본 활성화  

### Tip 1 — `GEMINI.md`를 통한 지속적 컨텍스트 관리
- 프로젝트별 지침이나 배경 정보를 `GEMINI.md` 파일에 저장해 **AI가 항상 동일한 컨텍스트로 응답**  
  - 예: 코딩 스타일, 아키텍처, 함수 규칙 등  
- 전역(`~/.gemini/GEMINI.md`)과 프로젝트별 `.gemini/GEMINI.md`를 계층적으로 병합  
- `/memory show`로 현재 로드된 컨텍스트 확인, `/memory refresh`로 갱신  
- `/init` 명령으로 기본 템플릿 생성 가능, `@include`로 다중 파일 불러오기 지원  

### Tip 2 — 사용자 정의 슬래시 명령 생성
- 반복 작업을 자동화하는 **커스텀 명령**을 TOML 파일로 정의  
  - 예: `/test:gen` → 요구사항 기반 Jest 테스트 생성  
- 전역(`~/.gemini/commands/`) 또는 프로젝트별(`.gemini/commands/`)로 등록 가능  
- 명령은 프롬프트 템플릿 기반으로 작동하며, 팀 간 공유 가능  
- 일관된 포맷팅, 역할 지정(예: `/review:security`) 등 **워크플로우 표준화**에 유용  

### Tip 3 — MCP 서버로 Gemini 확장
- **Model Context Protocol(MCP)** 서버를 통해 외부 시스템과 연동  
  - 예: Figma, Google Docs, Clipboard, 사내 DB 등  
- `gemini mcp add` 명령으로 서버 등록, `settings.json`에 구성 저장  
- `/mcp` 명령으로 등록된 서버와 도구 목록 확인  
- OAuth 2.0 지원으로 안전한 API 연결 가능  

### Tip 4 — 메모리 추가 및 호출
- `/memory add "&lt;text&gt;"`로 중요한 정보를 장기 메모리에 저장  
  - 예: “RabbitMQ 포트는 5673”  
- `/memory show`로 전체 메모리 확인, `/memory refresh`로 갱신  
- 결정 로그나 개인 설정(예: 말투, 이름 등) 저장에 유용  

### Tip 5 — 체크포인트 및 `/restore` 복원 기능
- 파일 변경 전 자동 스냅샷 생성, `/restore`로 이전 상태로 복귀  
- `--checkpointing` 옵션 또는 설정 파일에서 활성화  
- `/restore list`로 체크포인트 목록 확인, `/restore &lt;id&gt;`로 복원  
- Git과 병행 사용 시 **AI 작업의 안전망** 역할  

### Tip 6 — Google Docs·Sheets 읽기
- Workspace MCP 서버 설정 시 Google Docs/Sheets 링크를 직접 읽어 요약 가능  
- OAuth 인증 필요, `/read_google_doc` 등 명령으로 접근  
- 문서·시트·Drive 파일을 링크로 참조하여 **복사 없이 컨텍스트 주입**  

### Tip 7 — `@` 문법으로 파일·이미지 참조
- `@파일경로`로 코드·문서·이미지를 직접 프롬프트에 첨부  
  - 예: `Explain this code: @./src/main.js`  
- `.gitignore` 및 `.geminiignore` 규칙을 자동 반영  
- 이미지 인식(OCR 포함) 및 다중 파일 비교 지원  

### Tip 8 — 즉석 도구 생성
- Gemini가 필요 시 **임시 스크립트나 MCP 서버를 직접 생성**  
  - 예: JSON 파서, 로그 분석기 등  
- 생성된 코드는 diff로 검토 후 승인 가능  
- 유용한 스크립트는 커스텀 명령으로 승격 가능  

### Tip 9 — 시스템 문제 해결 및 설정
- 프로젝트 외부에서도 사용 가능, **개발 환경 관리 도우미** 역할  
  - 예: `.bashrc` 수정, 오류 로그 분석, 도커 설치 자동화  
- 명령 실행 전 항상 승인 요청, 안전한 시스템 조정 지원  

### Tip 10 — YOLO 모드 (자동 승인)
- `--yolo` 또는 `Ctrl+Y`로 모든 도구 실행 자동 승인  
- 반복 작업 속도 향상에 유용하지만 **위험성 존재**  
- 특정 명령만 자동 승인하도록 화이트리스트 설정 가능  

### Tip 11 — 헤드리스 및 스크립트 모드
- `gemini -p "prompt"`로 비대화형 실행  
- `GEMINI_SYSTEM_MD`로 시스템 프롬프트 교체 가능  
- JSON 출력(`--format=json`) 및 세션 요약 파일(`--session-summary`) 지원  
- CI/CD, 자동화 스크립트 통합에 적합  

### Tip 12 — 채팅 세션 저장 및 재개
- `/chat save &lt;name&gt;`으로 세션 저장, `/chat resume &lt;name&gt;`으로 복원  
- `/chat list`로 목록 확인, `/chat share`로 공유 가능  
- 장시간 디버깅이나 다중 프로젝트 병행 시 유용  

### Tip 13 — 다중 디렉터리 워크스페이스
- `--include-directories` 또는 설정 파일로 여러 폴더를 하나의 작업공간으로 통합  
- `/directory show`로 현재 포함 폴더 확인  
- 프런트엔드·백엔드 동시 수정 등 **폴리레포 환경 지원**  

### Tip 14 — AI 기반 파일 정리
- 디렉터리 내 파일을 유형별로 분류·이동  
  - 예: 이미지→Images, PDF→Documents  
- 이미지 내용 기반 자동 이름 변경 가능  
- 실행 전 명령 미리보기로 안전 검토 권장  

### Tip 15 — 대화 압축으로 컨텍스트 유지
- `/compress` 명령으로 긴 대화를 요약해 컨텍스트 공간 확보  
- 핵심 정보만 유지하며 세션 지속 가능  
- 자동 압축 임계값 설정 가능  

### Tip 16 — `!`로 셸 명령 실행
- `!command`로 터미널 명령 직접 실행  
- `!`만 입력 시 셸 모드 진입, 다시 `!`로 종료  
- AI 대화와 시스템 명령을 **한 인터페이스에서 통합**  

### Tip 17 — 모든 CLI 도구를 Gemini 도구로 활용
- `$PATH` 내 모든 명령을 AI가 호출 가능  
  - 예: `convert`, `docker`, `ffmpeg`, `git` 등  
- 환경에 따라 PATH 제한 또는 화이트리스트 설정 권장  

### Tip 18 — 멀티모달 입력 활용
- 이미지·PDF·오디오 파일을 `@`로 첨부해 분석 가능  
  - 예: UI 스크린샷 설명, 오류 이미지 분석, OCR 처리  
- 시각 자료 기반 코드 생성·데이터 추출 지원  

### Tip 19 — `$PATH` 및 도구 접근 제어
- 제한된 PATH로 실행해 **안정성과 보안 강화**  
- `settings.json`의 `excludeTools`로 위험 명령 차단 가능  
- `--sandbox` 옵션으로 Docker 격리 환경 실행 지원  

### Tip 20 — 토큰 캐싱 및 사용량 추적
- API 키 또는 Vertex 인증 시 **토큰 재사용으로 비용 절감**  
- `/stats` 명령으로 캐시 적중률과 토큰 사용량 확인  
- `--session-summary`로 세션별 JSON 리포트 저장 가능  

### Tip 21 — `/copy`로 클립보드 복사
- 마지막 출력(코드 등)을 즉시 클립보드에 복사  
- macOS(`pbcopy`), Windows(`clip`), Linux(`xclip`) 지원  

### Tip 22 — `Ctrl+C` 단축키 제어
- 한 번 누르면 작업 중단, 두 번 누르면 CLI 종료  
- 셸 모드에서는 `Ctrl+C` 또는 `Esc`로 빠져나오기 가능  

### Tip 23 — `settings.json`으로 사용자 설정
- 테마, 샌드박스, 자동 승인, Vim 모드 등 세부 설정 가능  
- `/settings` 명령으로 인터랙티브 편집 지원  
- 전역(`~/.gemini/`)과 프로젝트별 설정 병합  

### Tip 24 — VS Code 통합
- VS Code 확장(Companion Extension)으로 **파일·커서·선택 영역 자동 인식**  
- 코드 변경 제안 시 VS Code diff 뷰어 자동 표시  
- `/ide install`, `/ide enable`, `/ide status`로 관리  

### Tip 25 — GitHub Action 자동화
- **Gemini CLI GitHub Action**으로 이슈 분류, PR 리뷰 자동화  
- `@gemini-cli` 멘션으로 테스트 코드 생성 등 요청 가능  
- `/setup-github` 명령으로 워크플로우 파일 자동 생성  

### Tip 26 — 텔레메트리(Observability)
- OpenTelemetry 기반으로 **세션 메트릭·로그·트레이스 수집**  
- `"telemetry.enabled": true` 설정 또는 `--telemetry` 플래그로 활성화  
- 로컬 파일, GCP, Prometheus 등 다양한 백엔드로 전송 가능  

### Tip 27 — 로드맵 모니터링
- GitHub 공개 **Gemini CLI 로드맵**에서 향후 기능 확인  
  - 예: 백그라운드 에이전트, 모델 확장, UI 개선 등  
- 커뮤니티 피드백 및 기능 제안 참여 가능  

### Tip 28 — 확장(Extensions)
- `gemini extensions install &lt;URL&gt;`로 외부 서비스 통합  
  - 예: Cloud Run, BigQuery, Figma, Stripe 등  
- 확장은 MCP 도구·명령·컨텍스트를 추가하는 모듈형 구조  
- `/extensions` 명령으로 활성 확장 목록 확인  

### 추가 기능 — Corgi Mode 🐕
- `/corgi` 명령으로 터미널에 **코기 애니메이션** 실행  
- 단순한 이스터에그 기능으로 CLI 사용 중 휴식 제공  

---

### 결론
- Gemini CLI는 코드 작성부터 시스템 관리, 자동화, 협업까지 아우르는 **AI 기반 개발 인터페이스**  
- `GEMINI.md`, MCP, 확장, IDE 연동 등으로 **지속적 컨텍스트와 도구 확장성** 확보  
- 오픈소스 생태계와 빠른 업데이트를 통해 **개발자 워크플로우의 중심 AI 플랫폼**으로 발전 중

## Comments



### Comment 46887

- Author: neo
- Created: 2025-11-28T01:33:40+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=46060508) 
- 나는 이런 세팅들을 전혀 하지 않음  
  이유는 너무 **빠르게 구식이 되고**, 80%는 제대로 작동하지 않기 때문임  
  LLM이 신뢰성 있게 호출할지도 모르는 상황에서 굳이 MCP 서버를 짤 필요가 없다고 생각함  
  내 규칙은 단순함 — 스스로를 위한 **문서화(템플릿, 체크리스트 등)** 를 직접 작성하고, AI에게 한 번 시도할 기회를 줌  
  한 번에 제대로 못 하면 문서를 수정하거나 그냥 내가 직접 처리함
  - LLM을 **통계적 문서 생성기**로 보는 관점이 도움이 되었음  
    결국 유용성은 학습 데이터와 모델 진화에 달려 있고, **형식 문법이 없는 제약 프로그래밍**처럼 다루는 게 맞다고 생각함  
    자연어의 주관성을 고려하면, 제약 문장을 반복적으로 다듬는 빠른 반복(iteration)이 최선임  
    예시로 Gemini를 4번 반복해 완전 자동으로 동작하는 bash 스크립트를 얻은 적이 있음  
    관련 개념은 [Constraint programming](https://en.wikipedia.org/wiki/Constraint_programming) 참고
  - 최근 에이전트들이 **빌드-테스트-수정 사이클**을 스스로 수행하는 능력이 생겨서 큰 도움이 되었음  
    주니어 개발자 수준의 작업을 맡기고 나는 다른 일을 할 수 있게 됨
  - AI 에이전트를 팀의 **신입 개발자**처럼 대하는 접근이 효과적임  
    한 번에 실패하면 문서(.md 파일)를 개선하고 다시 시도함  
    MCP는 보안 리스크 때문에 잘 안 쓰지만, 이 반복 루프가 꽤 효율적임  
    반대로 “한 번에 안 되면 내가 직접 한다”는 건 신입을 바로 해고하는 것과 같음
  - 지금은 소프트웨어 개발이 새로운 **플래토(plateau)** 로 향하는 중이라고 느낌  
    아직 그 지점에 도달하지는 않았고, 지금 쌓는 기술은 경사면 위에 세우는 것과 같음
  - 나는 두 접근 모두 유용하다고 봄  
    1) **새 세션으로 시작**해 문맥 오염을 피하고,  
    2) 다양한 도구를 연결해 작업을 쉽게 함 (Anthropic의 최근 글 참고)  
    현재 프롬프트 평가 방법이 신뢰할 만하지 않아, 이를 개선하는 **agentic 세팅**을 직접 만들고 있음  
    어제는 Dagger 기반의 세션 **타임 트래블 기능**을 추가했고, 오늘은 포크·클론·레지스트리 기능을 넣을 예정임

- **Gemini CLI**는 아직 복잡한 코딩 작업에는 약함  
  단순한 ReAct 루프와 약한 **도구 호출 능력** 때문임  
  그래도 오픈소스로 활발히 개발 중이라 잠재력이 큼  
  1M 컨텍스트 윈도(곧 2M 예정)와 넉넉한 무료 쿼터 덕분에 “**마구 써야 한다(ABUSE IT)** ”고 생각함  
  나는 이를 TUI/CLI 오케스트레이션 도구로 사용 중이며, 다른 툴이 생성한 코드를 평가하는 데도 꽤 유용했음  
  최근에는 Homebrew와 MCP를 연결하고, 로컬 LLM 기반 **Knowledge Manager**(Nowledge Mem)와 연동함  
  재미있게도 Gemini CLI를 **SubAgent**로 써서 메인 컨텍스트 오염을 피한 사례도 봤음  
  [관련 트윗](https://x.com/goon_nguyen/status/1987720058504982561)
  - Gemini CLI는 정말 **야생의 짐승** 같음  
    “코드 수정하지 말고 제안만 해”라고 해도 바로 파일을 수정해버림  
    Pro 3는 똑똑하지만 **지시 따르기**는 여전히 불안정함
  - Gemini 3 Pro를 간단히 테스트했는데, **기초 코딩 작업조차 어려워함**  
    Antigravity를 통해 시도했지만, 제한된 쿼터 때문에 복잡한 테스트는 힘들었음  
    자세한 인상은 [이 글](https://dev.amitgawande.com/2025/antigravity-problem) 참고

- Addy Osmani는 Google Chrome과 Gemini를 담당하는 **아일랜드 출신 소프트웨어 엔지니어**로, 25년 경력의 베테랑임  
  웹 성능 개선과 AI 보조 개발 도구에 열정을 가지고 있으며, 『Learning JavaScript Design Patterns』 등 여러 저서를 냈음
  - Patrick Collison보다 2년 먼저 **Irish Young Scientist 대회**에서 수상한 경력이 있음  
    [대회 링크](https://en.wikipedia.org/wiki/Young_Scientist_and_Technology_Exhibition)
  - 웹 성능 커뮤니티에서 **매우 높은 평판**을 얻고 있음
  - 최근 5년간 11권의 책을 냈다는데, 혹시 **AI 보조 집필**을 쓰는지 궁금함

- 나는 **LLM 비종속적(agnostic)** 코딩 에이전트가 표준으로 자리 잡길 바람  
  Codex나 Gemini CLI처럼 각자 휠을 다시 만드는 대신, LLM 공급자를 **플러그인 형태로 교체**할 수 있으면 좋겠음  
  지금은 Claude Code가 최고지만, Anthropic이 그 방향으로 가지는 않을 듯함  
  결국 다음 세대의 **오픈소스 코딩 에이전트**를 기다려야 할 것 같음
  - 이미 그런 툴로 **Aider**(aider.chat)가 있음  
    다만 이런 CLI들은 실제 도구보다 **구독형 모델**을 위한 인터페이스에 가까움  
    최신 모델은 토큰 소모가 너무 커서 API 과금보다 월 구독이 현실적임
  - **Opencode**(SST 제작)는 그런 비전을 잘 구현한 예임  
    최근 며칠 써봤는데 꽤 만족스러웠음  
    [GitHub 링크](https://github.com/sst/opencode)  
    Crush, Aider, Amp Code, Emacs+gptel, Editor Code Assistant 등 다양한 대안도 존재함  
    다만 LLM과 코딩 에이전트의 **공진화(co-design)** 가 중요하기 때문에 완전한 분리는 아직 비현실적임
  - 나는 Claude Code가 최고인 이유가 바로 **비종속적이지 않기 때문**이라고 생각함
  - Cursor도 좋은 대안임  
    아이러니하게도 이제 자체 LLM을 도입했음  
    [Cursor Composer 소개](https://cursor.com/blog/composer)
  - 모델 비종속 툴로는 **Roo Code**나 그 포크인 **Kilo**를 추천함

- 나는 몇 달째 Gemini CLI를 사용 중임  
  회사에서 무료 구독이 있어서 계속 써봄  
  GEMINI.md 파일을 인식한다고 하지만 실제로는 무시하는 경우가 많음  
  그래도 Tip 12, Tip 16 같은 팁은 유용했음  
  AI의 **환각(hallucination)** 문제는 여전하지만, 처음으로 AI를 진짜 ‘재미있게’ 느끼게 해준 경험이었음  
  특히 K8s PoC 클러스터를 **자율적으로 디버깅**하게 했을 때, 로그를 가져오고 오류를 찾아내는 과정이 정말 놀라웠음  
  가끔 너무 멍청하게 굴면 `/quit` 치고 내가 직접 하지만, 여전히 즐겁게 쓰고 있음
  - Gemini CLI가 K8s 클러스터를 실시간으로 디버깅한다니 정말 **초현실적**임  
    나도 RKE2 클러스터를 막 만들었는데 꼭 시도해보고 싶음

- 나는 AI를 매우 좋아함  
  인터넷이나 아이폰처럼 나를 더 **효율적인 인간**으로 만들어주는 필수 도구라고 느낌  
  다만 “AI 사용법”을 알려주는 **튜토리얼 피로감**이 심함  
  대부분 품질이 낮고, 이번 글은 그나마 나은 편임  
  마치 JS 개발자들이 매주 새로운 프레임워크를 소개하는 느낌임
  - 요즘 “LLM을 이렇게 써라” 류의 글은 정말 **지루함**  
    누가 쓰든, 진심이든, 단순한 참여 유도든 이제 흥미가 없음

- 솔직히 이런 복잡한 세팅은 과함  
  나는 그냥 **AI에게 소리 지르는 수준의 프롬프트**로도 충분히 잘 됨  
  LazyVim과 몇 가지 툴(git, ask, ripgrep)만으로도 충분히 생산적임  
  특히 **Gemini 3**는 토큰 밀도가 높고 컨텍스트가 커서 매우 유용함  
  컨텍스트가 과도해지면 README.MD에 요약을 쓰게 하고 새 에이전트를 시작함  
  [ask 도구 링크](https://github.com/kagisearch/ask)
  - 나도 비슷한 방식으로 쓰는데, **Gemini 3가 압도적으로 잘함**  
    다른 모델로는 생산성이 안 나왔는데, 지금은 복잡한 작업도 80%는 한 번에 성공함

- 수동 스크립팅과 LLM 보조 워크플로의 **대조**가 흥미로움  
  제약 조건이 명확하지 않으면 둘 다 실패하지만, 명확하면 LLM이 놀라울 정도로 신뢰성 있게 작동함

- 요즘 AI/Agentic/Vibe 코딩의 문제는 **너무 빠른 진화 속도**임  
  베스트 프랙티스가 자리 잡기도 전에 구식이 되어버림  
  언어와 프레임워크는 바뀌어도 문제를 쪼개고 코드베이스를 이해하는 방식은 비교적 안정적이었는데,  
  지금은 그 균형점이 어디일지 모르겠음

- 나는 **Gemini CLI가 별로**라고 느낌  
  써야 한다면 Opencode를 추천함  
  Google도 Codex처럼 CLI를 **처음부터 다시 만들어야 함**
  - 사람마다 다르겠지만, 내 경우 Gemini CLI는 **빠르고 안정적**이라 주력 도구로 씀
  - Opencode도 최근 **TUI를 완전히 교체**했음  
    참고로 Gemini 3는 현재 Copilot을 통해 Opencode에서 작동하지 않음  
    [이슈 링크](https://github.com/sst/opencode/issues/4468)
  - Opencode를 쓰려면 특정 **터미널 에뮬레이터(WezTerm, Alacritty, Ghostty, Kitty)** 가 필요하다고 되어 있음  
    단순 TUI에 이런 제약이 필요한지 의문이었음  
    [공식 문서](https://opencode.ai/docs/providers/)를 보면 Gemini는 직접 언급되지 않고,  
    [Google Vertex AI](https://opencode.ai/docs/providers/#google-vertex-ai)를 통해 제공되는 듯함  
    아마 Google Workspace 구독을 통해 Gemini를 연결할 수 있을지도 모르겠음
  - Codex는 어떻게 된 건지 궁금함 — **정말 다시 만든 건가**?
