Gemini CLI, 터미널 안의 AI 비서
안녕하세요.
오늘은 제가 최근에 써보고 "와, 세상 진짜 좋아졌다"라고 무릎을 탁 친 물건 하나를 소개해 주려고 합니다. 바로 구글에서 만든 Gemini CLI라는 녀석인데요.
검은 화면(터미널)만 보면 머리 아픈 친구들 있죠? 이제 걱정 마세요. 그 검은 화면 안에 엄청 똑똑한 AI 비서를 심어두는 법을 알려줄 테니까요. 이게 그냥 챗봇이랑은 차원이 다릅니다.
자, 이해할 수 있게 아주 쉽게 풀어드릴게요. 따라오세요! 🚀
🤔 Gemini CLI가 대체 뭐죠?
쉽게 말해 "터미널(명령 프롬프트) 안에서 사는 AI 개발자 친구"라고 생각하면 됩니다.
보통 우리가 챗GPT나 Gemini를 쓸 때 웹브라우저를 켜서 물어보죠? "코드가 안 돌아가, 고쳐줘" 하고 코드를 복사해서 붙여넣고요. 그런데 Gemini CLI는 여러분이 코딩하는 그 검은 화면(터미널) 안에 살면서, 여러분의 컴퓨터 파일들을 직접 보고 도와주는 도구입니다.
- 오픈소스: 누구나 코드를 볼 수 있고 공짜로 쓸 수 있어요 (구글 계정만 있으면 하루 1,000회 무료!).
- 직접 행동: 단순히 말만 하는 게 아니라, 파일을 읽고, 수정하고, 터미널 명령어도 실행할 수 있죠.
🧠 핵심 기술: ReAct 루프 (생각하고, 행동하라!)
이게 오늘 가장 중요한 개념입니다. Gemini CLI가 왜 똑똑해 보이냐면, ReAct(Reason + Act)라는 방식을 쓰기 때문이에요.
어려운 영어 같지만, 사실 우리도 매일 하는 겁니다. "생각(Reason)"하고 "행동(Act)"하는 반복 고리거든요.
🍕 피자 주문 예시로 살펴볼까요?
여러분이 친구에게 "배고파, 피자 좀 시켜줘"라고 했다고 칩시다.
- 일반적인 챗봇 (단순 답변)
"네, 피자는 맛있는 음식이죠. 페퍼로니 피자가 인기가 많습니다." (끝. 주문은 안 해줌. 말만 함.) - Gemini CLI (ReAct 루프) 얘는 진짜 비서처럼 움직입니다.
- 1단계: 생각 (Reason) 💭
- '주인이 배고프다고 하네? 피자를 시키려면 전화번호랑 메뉴가 필요해. 일단 검색부터 해보자.'
- 2단계: 행동 (Act - 도구 사용) 🛠️
- GoogleSearch 도구를 써서 근처 피자집 검색.
- 3단계: 관찰 (Observe) 👀
- '아, 도미노피자가 있네. 메뉴판을 확인했어.'
- 4단계: 다시 생각 (Reason) 💭
- '메뉴는 확인했고, 이제 주문 전화를 걸어야지.'
- 5단계: 다시 행동 (Act) 🛠️
- (실제로는 코드를 짜거나 파일을 고치는 행동을 함)
- 1단계: 생각 (Reason) 💭
🌟 왜 Gemini CLI가 쩔(?)까요?
놀라운 점 3가지입니다.
- 뇌 용량이 엄청나요 (100만 토큰)
Gemini CLI는 100만 토큰(1M Context Window)이라는 엄청난 기억력을 가지고 있어요. 이게 무슨 뜻이냐면, 여러분이 만든 프로그램 코드 전체나 두꺼운 전공 서적 한 권을 통째로 입력해도 다 읽고 이해한다는 뜻입니다." @src/ 폴더 안에 있는 코드 다 읽고 버그 좀 찾아줘"라고 명령 한 줄이면 끝납니다. - 구글 검색을 실시간으로! (Grounding)
코딩하다 모르는 게 생기면 구글링하느라 탭 10개씩 띄우죠? Gemini CLI는 자기가 알아서 구글 검색(Google Search)을 해서 최신 정보를 찾아옵니다."최신 리액트 문법으로 이 코드 바꿔줘" 하면, 엣날 지식이 아니라 최신 정보를 검색해서 알려줍니다. - 내 컴퓨터를 직접 제어 (하지만 안전하게)
파일을 만들거나 명령어를 실행할 때, 그냥 막 하지 않고 "이거 실행해도 될까요?"라고 여러분에게 허락을 구합니다. 그러니까 AI가 내 컴퓨터를 망가뜨릴까 봐 걱정할 필요는 없어요.
📝 한마디
라떼는 말이야... 책 찾아가며 밤새 코딩했는데, 이제는 터미널에 AI 에이전트를 심어두고 "이거 해줘, 저거 해줘" 하면서 코딩하는 시대가 왔습니다.
Gemini CLI는 설치도 쉽고(Node.js만 있으면 됨), 무엇보다 여러분에게는 하루 1,000번까지 무료로 쓸 수 있는 혜택이 있어요.
지금 당장 터미널을 열고 미래를 경험해 보세요. 코딩이 훨씬 재밌어질 겁니다! 😎
설치 방법이 궁금하다면? 터미널에
npm install -g @google/gemini-cli만 입력하면 됩니다!
5분 만에 끝내는 Gemini CLI 설치 가이드 (Win/Mac/Linux): npm, Homebrew, npx 총정리
구글의 최신 AI 모델인 Gemini를 터미널에서 직접 사용할 수 있는 Gemini CLI가 개발자들 사이에서 필수 도구로 자리 잡고 있습니다. 웹 브라우저를 켜지 않고도 코드를 분석하거나 쉘 명령어를 자동화할 수 있어 생산성을 크게 높여주기 때문입니다.
특히 개인 구글 계정만 있다면 하루 1,000회 무료 사용과 100만 토큰 컨텍스트를 가진 Gemini 3 모델을 사용할 수 있다는 점이 가장 큰 장점입니다.
복잡한 설정 없이 5분 안에 끝내는 OS별 설치 방법과 초기 설정법을 정리해 드립니다.
✅ 1. 사전 준비: Node.js 확인
Gemini CLI를 설치하기 위해서는 컴퓨터에 Node.js 버전 20 이상이 설치되어 있어야 합니다.
터미널(윈도우는 CMD 또는 PowerShell, 맥/리눅스는 Terminal)을 열고 아래 명령어를 입력해 보세요.
node -v
- 버전이 v20.x.x 이상이라면 준비 완료입니다.
- 설치되어 있지 않거나 버전이 낮다면 Node.js 공식 홈페이지에서 최신 버전을 다운로드하여 설치하세요.
🚀 2. 설치 방법 (3가지 중 택 1)
가장 편한 방법을 선택하세요. 일반적으로는 npm을 이용한 전역 설치를 추천합니다.
방법 A: npm으로 설치하기 (Windows/Mac/Linux 공통)
가장 표준적인 방법입니다. 터미널에 다음 명령어 한 줄만 입력하면 됩니다.
npm install -g @google/gemini-cli
npm: Node.js 패키지 관리 도구-g: 컴퓨터 전체(Global)에 설치하여 어디서든 실행 가능하게 함- 주의: 리눅스나 맥 사용자의 경우 권한 오류가 발생하면 명령어 앞에
sudo를 붙여야 할 수 있습니다 (sudo npm install -g ...).
방법 B: Homebrew로 설치하기 (Mac/Linux 사용자)
맥 사용자라면 Homebrew를 이용하는 것이 더 익숙할 수 있습니다.
brew install gemini-cli
(참고: MacPorts를 사용하신다면 sudo port install gemini-cli를 입력하세요.)
방법 C: 설치 없이 실행하기 (npx)
설치 과정이 귀찮거나, 일회성으로 테스트만 해보고 싶다면 npx를 사용하세요. 별도의 설치 과정 없이 최신 버전을 바로 실행합니다.
npx @google/gemini-cli
🔑 3. 실행 및 인증 (로그인)
설치가 끝났다면 터미널에 gemini를 입력하여 도구를 실행합니다.
gemini
처음 실행하면 인증 방법을 묻는 화면이 나옵니다. 가장 간편하고 혜택이 좋은 구글 로그인 방식을 추천합니다.
- 방향키로 "Login with Google"을 선택하고 엔터(Enter)를 누릅니다.
- 브라우저가 열리면 사용할 구글 계정으로 로그인하고 권한을 허용합니다.
- 인증이 완료되면 터미널로 돌아오세요. 이제 Gemini와 대화할 준비가 끝났습니다.
💡 팁:
- 무료 사용량: 개인 구글 계정으로 로그인 시 분당 60회, 하루 1,000회 요청까지 무료입니다.
- API Key 사용: 만약 구글 로그인이 아닌 API Key를 사용하고 싶다면, Google AI Studio에서 키를 발급받은 뒤
export GEMINI_API_KEY="YOUR_API_KEY"명령어로 환경 변수를 설정할 수 있습니다.
🛠 4. 설치 확인 및 업데이트
설치가 잘 되었는지 확인하려면 다음 명령어를 입력하세요. 현재 설치된 버전을 보여줍니다.
gemini --version
추후에 최신 기능(새로운 모델 등)이 나왔을 때 업데이트하려면 다음 명령어를 사용합니다.
npm install -g @google/gemini-cli@latest
⚠️ 주의사항: 유사품 주의
Python 패키지 관리자(pip)에 gemini-cli라는 이름의 패키지가 있지만, 이는 구글이 만든 공식 도구가 아닙니다.
기능이 제한적이고 업데이트가 다를 수 있으므로, 반드시 @google/gemini-cli (공식 패키지)를 확인하고 설치하시기 바랍니다.
이제 터미널에서 "이 코드를 리팩토링 해줘" 또는 "@src/ 폴더를 읽고 버그를 찾아줘"라고 명령해 보세요. 개발
생산성이 완전히 달라질 것입니다!
무료로 쓰자! Gemini CLI 인증 및 구글 계정 연동법
Gemini CLI의 가장 강력한 무기 중 하나는 바로 압도적인 무료 혜택입니다. 복잡한 API 키 관리나 신용카드 등록 없이, 평소 사용하는 개인 구글 계정만 있다면 매일 1,000회의 쿼리를 무료로 사용할 수 있습니다.
Claude Code와 같은 경쟁 도구가 유료 구독을 요구하는 것과 달리, Gemini CLI는 개인 개발자에게 100만 토큰 컨텍스트를 무료로 제공합니다.
가장 쉽고 혜택이 좋은 구글 계정 연동(Login with Google) 방법을 단계별로 안내해 드립니다.
🎁 왜 "구글 로그인"을 해야 하나요? (혜택 정리)
Gemini CLI는 여러 인증 방식을 지원하지만, 개인 사용자에게는 "Login with Google" 방식이 가장 유리합니다.
- 넉넉한 무료 사용량: 분당 60회, 하루 1,000회 요청 무료 제공.
- 최신 모델 사용: 100만 토큰 컨텍스트 윈도우를 가진 Gemini 3 모델 (Pro/Flash) 사용 가능.
- 관리의 편리함: API 키를 발급받거나 갱신할 필요가 없으며, 최신 모델 업데이트가 자동으로 적용됩니다.
🔑 1. 인증 시작하기 (최초 실행)
Gemini CLI를 설치(npm install -g @google/gemini-cli)한 후, 터미널에서 다음 명령어를 입력하여 실행합니다.
gemini
처음 실행하면 인증 방법을 묻는 화면이 나타납니다.
- 방향키를 사용하여 "Login with Google"을 선택하고 Enter를 누릅니다.
- 브라우저가 자동으로 열리며 구글 로그인 화면이 나타납니다.
- 사용할 개인 구글 계정으로 로그인하고 권한 요청을 승인합니다.
- 인증이 완료되면 브라우저 창을 닫고 터미널로 돌아옵니다.
이제 Gemini CLI가 로그인된 상태로 대기하며, 즉시 대화를 시작할 수 있습니다.
🔄 2. 이미 설치했는데 로그인 방식을 바꾸고 싶다면?
만약 이전에 다른 방식(API Key 등)으로 인증했거나 로그아웃 후 다시 로그인하고 싶다면, 실행 중인 Gemini CLI 안에서 다음 슬래시 명령어를 사용하세요.
/auth
이 명령어를 입력하면 다시 인증 메뉴가 뜨며, 여기서 "Login with Google"을 선택하여 재인증할 수 있습니다.
💳 3. 대안: API Key 방식 (고급 사용자용)
구글 로그인이 가장 간편하지만, CI/CD 파이프라인이나 특정 스크립트에서 자동화 도구로 사용할 때는 API Key가 더 적합할 수 있습니다. API Key 방식도 무료 티어를 제공합니다.
- 키 발급: Google AI Studio에서 무료 API 키를 발급받습니다.
- 환경 변수 설정: 터미널에서 아래와 같이 환경 변수를 설정합니다.
- 실행:
gemini를 실행하면 자동으로 키를 인식하여 시작됩니다.
주의: API Key 방식은 구글 로그인 방식과 무료 쿼리 한도는 비슷하지만(Gemini 3 기준 1,000회/일), 모델 선택이나 세부 설정에서 차이가 있을 수 있습니다. 개인 대화형 사용 목적이라면 구글 로그인을 강력 추천합니다.
✅ 4. 인증 확인 및 모델 체크
로그인이 잘 되었는지, 그리고 어떤 모델을 무료로 쓰고 있는지 확인하려면 Gemini CLI 실행 후 아래 명령어를 입력해보세요.
/model
현재 사용 중인 모델(예: gemini-3-pro)을 확인할 수 있으며, 필요에 따라 Flash 모델 등으로 변경도 가능합니다.
이제 하루 1,000번의 무료 쿼리로 코드 리팩토링, 문서 요약, 버그 찾기 등 100만 토큰의 강력함을 마음껏 누리세요!
API Key vs 구글 로그인: 나에게 맞는 인증 방식은?
Gemini CLI를 사용하기 위해 가장 먼저 해야 할 일은 인증(Authentication)입니다. 인증 방식에 따라 무료 사용량, 사용 가능한 모델, 그리고 설정 난이도가 달라집니다.
나에게 딱 맞는 인증 방식은 무엇인지 비교해 보고, 각 방식을 아주 쉽게 설정하는 방법을 단계별로 알려드리겠습니다.
🆚 1. 한눈에 보는 비교: 나에게 맞는 방식은?
| 특징 | 구글 로그인 (OAuth) | API Key 방식 | Vertex AI (Enterprise) |
|---|---|---|---|
| 추천 대상 | 개인 개발자, 학생, 초보자 | 자동화 스크립트, CI/CD, 파워 유저 | 기업, 팀 단위, 보안 중시 |
| 난이도 | ⭐ (매우 쉬움) | ⭐⭐ (보통) | ⭐⭐⭐ (어려움) |
| 무료 혜택 | 하루 1,000회 무료 (1M 토큰) | 하루 1,000회 무료 (제한적) | 유료 (기업 과금 연동) |
| 장점 | 키 관리 불필요, 최신 모델 자동 적용 | 특정 모델 고정 가능, 자동화 용이 | 기업 보안 준수, 높은 사용량 한도 |
| 단점 | 브라우저 인증 필요 (자동화 불편) | 키 유출 주의 필요 | GCP 설정 필요 |
🔑 2. 인증 방식별 상세 설정 가이드
A. 구글 로그인 (가장 추천! 👍)
개인 프로젝트나 학습용으로 쓴다면 무조건 이 방식입니다. 복잡한 키 발급 없이 구글 아이디만 있으면 됩니다.
설정 방법:
- 터미널에
gemini를 입력하고 엔터를 칩니다. - 화살표 키로 "Login with Google"을 선택하고 엔터를 누릅니다.
- 웹 브라우저가 열리면 사용할 구글 계정을 선택하고 권한 허용을 누릅니다.
- 터미널로 돌아오면 인증 끝! 바로 사용 가능합니다.
혜택: 개인 구글 계정 사용 시 분당 60회, 하루 1,000회까지 무료이며, 100만 토큰 컨텍스트를 가진 Gemini 3 모델을 바로 사용할 수 있습니다.
B. API Key 방식 (자동화/스크립트용)
매번 로그인하기 귀찮거나, 백그라운드에서 자동으로 코드를 짜는 스크립트를 돌릴 때 사용합니다.
설정 방법:
- 키 발급: Google AI Studio에 접속하여 "Get API Key"를 클릭해 키를 복사합니다.
- 환경 변수 등록: 터미널 운영체제에 맞춰 아래 명령어를 입력합니다.
- Mac/Linux 사용자:
(매번 입력하기 싫다면~/.zshrc나~/.bashrc파일 맨 아래에 위 줄을 추가하세요.) - Windows (PowerShell) 사용자:
(영구 등록하려면: 시스템 속성 -> 환경 변수 -> 사용자 변수에GEMINI_API_KEY를 새로 만들기 하세요.)
- Mac/Linux 사용자:
- 이제
gemini를 실행하면 로그인 창 없이 바로 시작됩니다.
C. Vertex AI 방식 (기업용)
회사에서 Google Cloud Platform(GCP)을 사용하고 있고, 보안 규정상 데이터가 안전하게 처리되어야 한다면 이 방식을 씁니다.
설정 방법:
- 구글 클라우드 콘솔에서 프로젝트를 생성하고 Vertex AI API를 활성화합니다.
- 터미널에서 두 가지 환경 변수를 설정합니다.
- 이 방식은 기업의 과금 계정과 연동되므로 사용량 제한이 훨씬 넉넉하지만, 비용이 발생할 수 있습니다.
🔄 3. 인증 방식을 바꾸고 싶다면? (/auth)
이미 로그인을 했는데 다른 방식(예: 구글 로그인 → API Key)으로 바꾸고 싶다면 어떻게 할까요? 터미널에서 Gemini가 실행 중일 때 다음 명령어를 입력하세요.
/auth
이 "슬래시 명령어"를 입력하면 다시 처음처럼 인증 방식을 선택하는 메뉴가 나타납니다. 여기서 원하는 방식을 다시 고르면 됩니다.
💡 요약
- 그냥 코딩 도움받고 싶다? 👉 구글 로그인 (공짜고 쉽습니다).
- 나만의 자동화 툴을 만들고 싶다? 👉 API Key.
- 회사 프로젝트다? 👉 Vertex AI.
초보자도 3분 완성! Gemini API 키 발급받고 설정하는 법 (Google AI Studio)
Gemini CLI에서 자동화 스크립트를 사용하거나 CI/CD 파이프라인에 연동하려면 API 키 방식의 인증이 필요합니다. 구글 로그인보다 과정이 조금 더 있지만, 전혀 어렵지 않습니다. 3분 만에 따라 할 수 있도록 상세히 알려드립니다.
✅ 1단계: Google AI Studio 접속 및 로그인
먼저 API 키를 발급받을 수 있는 Google AI Studio로 이동해야 합니다.
- 웹 브라우저를 열고 aistudio.google.com 주소로 접속합니다.
- 화면 중앙 또는 우측 상단의 버튼을 눌러 평소 사용하는 구글 계정으로 로그인합니다.
🔑 2단계: API 키 생성하기
로그인 후 나타나는 메인 화면에서 API 키를 생성할 수 있습니다.
- 화면 좌측 메뉴에서 "Get API key"를 클릭합니다.
- 새로운 팝업창이나 페이지가 나타나면 "+ Create API key" 버튼을 누릅니다.
- "Create API key in new project" 옵션을 선택하면 새로운 구글 클라우드 프로젝트와 함께 키가 생성됩니다. (기존 프로젝트를 활용해도 무방합니다.)
📋 3단계: 키 복사 및 안전하게 보관하기
API 키는 비밀번호와 같습니다. 절대로 외부에 노출해서는 안 됩니다.
- 생성된 긴 문자열의 API 키 옆에 있는 복사 아이콘을 클릭하여 키를 복사합니다.
- 이 키는 다시 확인할 수 없으므로, 즉시 안전한 곳(비밀번호 관리자 등)에 보관하세요.
- ⚠️ 경고: 이 키를 GitHub과 같은 공개된 장소에 절대로 올리면 안 됩니다. 악의적인 사용자가 내 계정으로 요금을 발생시킬 수 있습니다.
💻 4단계: Gemini CLI에 API 키 설정하기 (환경 변수)
복사한 키를 Gemini CLI가 인식할 수 있도록 컴퓨터에 등록해 주어야 합니다. 이를 '환경 변수 설정'이라고 합니다.
Mac/Linux 사용자 (zsh, bash)
터미널을 열고 아래 명령어를 입력하세요. "YOUR_API_KEY" 부분에 방금 복사한 키를 붙여넣으세요.
export GEMINI_API_KEY="YOUR_API_KEY"
터미널을 껐다 켤 때마다 입력하기 귀찮다면, 셸 설정 파일에 추가하여 영구적으로 등록할 수 있습니다.
# zsh 사용자의 경우
echo 'export GEMINI_API_KEY="YOUR_API_KEY"' >> ~/.zshrc
source ~/.zshrc
# bash 사용자의 경우
echo 'export GEMINI_API_KEY="YOUR_API_KEY"' >> ~/.bashrc
source ~/.bashrc
Windows 사용자 (PowerShell)
PowerShell을 열고 아래 명령어를 입력하세요. "YOUR_API_KEY" 부분에 키를 붙여넣으세요.
$env:GEMINI_API_KEY="YOUR_API_KEY"
컴퓨터를 재부팅해도 계속 사용하려면, PowerShell 프로필에 추가하거나 시스템 환경 변수에 직접 등록해야 합니다.
- '시스템 속성' 검색 → '고급' 탭 → '환경 변수' 클릭
- '사용자 변수' 또는 '시스템 변수' 섹션에서 '새로 만들기' 클릭
- 변수 이름:
GEMINI_API_KEY, 변수 값:복사한 키를 입력하고 확인을 누릅니다.
🚀 5단계: 실행 및 확인
이제 모든 설정이 끝났습니다. 터미널을 새로 열고 gemini를 실행하면, 로그인 과정 없이 바로 시작됩니다.
인증이 잘 되었는지 확인하려면, Gemini CLI 안에서 /model 명령어를 입력하여 현재 사용 중인 모델 정보를 확인해 보세요.
Gemini 3 모델(Pro/Flash) 완벽 해부: 특징 비교 및 CLI 설정 가이드
구글의 최신 AI 모델인 Gemini 3 시리즈가 출시되면서 개발자들의 관심이 뜨겁습니다. 단순히 텍스트를 생성하는 것을 넘어, 스스로 생각하고 계획을 수립하는 '추론(Reasoning)' 능력이 대폭 강화되었기 때문입니다.
이번 포스팅에서는 Gemini CLI 환경에서 사용할 수 있는 Gemini 3 Pro와 Flash 모델의 핵심 차이점을 분석하고, 터미널에서 손쉽게 모델을 변경하는 방법을 정리해 드립니다.
🧠 1. Gemini 3 시리즈: 무엇이 달라졌나?
Gemini 3는 "Agentic Workflow(에이전트 워크플로우)"와 "Autonomous Coding(자율 코딩)"에 최적화된 모델입니다. 가장 큰 특징은 기본적으로 작동하는 동적 사고(Dynamic Thinking) 프로세스입니다. 모델이 답변을 뱉기 전에 내부적으로 추론 과정을 거치기 때문에 복잡한 코딩 작업이나 다단계 문제 해결 능력이 비약적으로 상승했습니다.
주요 공통 스펙
- 컨텍스트 윈도우: 100만 토큰 (1M Context Window) 기본 제공.
- 멀티모달: 텍스트, 이미지, 오디오, 비디오, PDF 등 다양한 입력을 동시에 처리.
- 지식 마감일(Knowledge Cutoff): 2025년 1월.
🆚 2. Pro vs Flash: 나에게 맞는 모델은?
Gemini 3는 크게 고성능의 Pro와 가성비/속도의 Flash 두 가지 라인업으로 나뉩니다.
🦍 Gemini 3 Pro: "압도적인 지능과 창의성"
가장 똑똑한 모델입니다. 복잡한 리팩토링, 아키텍처 설계, 혹은 창의적인 "Vibe Coding"이 필요할 때 사용합니다.
- 강점: 심층적인 추론, 복잡한 지시사항 이행, 미묘한 뉘앙스 파악.
- 가격: 입력 100만 토큰당 $2 (20만 토큰 이하 시).
- 추천 용도: 대규모 코드베이스 분석, 복잡한 버그 디버깅, 고품질 콘텐츠 생성.
⚡ Gemini 3 Flash: "속도와 효율의 밸런스"
Pro 수준의 지능을 유지하면서 속도와 비용 효율성을 극대화한 모델입니다.
- 강점: 빠른 응답 속도, 낮은 대기 시간(Latency), 저렴한 비용.
- 가격: 입력 100만 토큰당 $0.50.
- 추천 용도: 대량의 데이터 처리, 실시간 챗봇, 단순 반복 코딩 작업, 빠른 요약.
- 특이사항: API에서 무료 티어를 제공하기도 합니다.
🧐 한눈에 보는 비교
| 특징 | Gemini 3 Pro | Gemini 3 Flash |
|---|---|---|
| 핵심 가치 | 최고 수준의 추론 및 복잡한 작업 해결 | 빠른 속도와 가성비 |
| 컨텍스트 | 100만 토큰 (1M) | 100만 토큰 (1M) |
| 사고(Thinking) 레벨 | Low, High (기본값) | Minimal, Low, Medium, High |
| 용도 | 아키텍처 설계, 심층 분석 | 반복 작업, 빠른 응답, 챗봇 |
🎛️ 3. Gemini CLI에서 모델 변경하는 법
Gemini CLI는 기본적으로 Gemini 2.5 Pro 또는 최신 설정에 따라 Gemini 3 모델을 사용합니다. 작업의 성격에 따라 모델을 자유롭게 변경할 수 있습니다.
방법 A: 대화 도중 변경하기 (/model)
CLI가 실행 중인 상태에서 모델을 바꾸고 싶다면 슬래시 명령어를 사용하세요.
- 터미널에
/model을 입력하고 엔터를 칩니다. - 화살표 키를 사용하여 원하는 모델(예:
gemini-3-pro-preview또는gemini-3-flash-preview)을 선택합니다. - 선택 즉시 해당 세션의 모델이 변경됩니다.
방법 B: 시작할 때 지정하기 (Flags)
CLI를 실행할 때부터 특정 모델을 지정할 수 있습니다. 스크립트나 자동화 작업에 유용합니다.
# Gemini 3 Flash 모델로 시작하기
gemini -m gemini-3-flash-preview
# 또는 Pro 모델로 시작하기
gemini --model gemini-3-pro-preview
이 명령어는 CLI를 실행함과 동시에 지정된 모델을 로드합니다.
💡 꿀팁: 사고 레벨(Thinking Level) 조절
Gemini 3의 핵심인 '추론 강도'를 조절하여 속도를 높이거나 깊이를 더할 수 있습니다. API 설정을 통해 조절 가능하며, Flash 모델의 경우
minimal(생각 최소화, 속도 최대화)부터 high(깊은 생각)까지 4단계를 지원합니다.
🚀 결론: 어떤 모델을 써야 할까?
- "이 코드가 왜 안 돌아가는지 원인을 모르겠어" 👉 Gemini 3 Pro의 깊은 추론 능력을 빌리세요.
- "이 파일 100개를 읽고 요약해 줘" 👉 Gemini 3 Flash로 빠르고 저렴하게 처리하세요.
개인 구글 계정을 사용하면 하루 1,000회 무료 쿼리 혜택이 있으므로, 두 모델을 번갈아 가며 자신의 작업 스타일에 맞는 최적의 모델을 찾아보시기 바랍니다.
"Hello World!" Gemini CLI와의 첫 대화: 인터랙티브 모드(REPL) 실행 및 기본 사용법
Gemini CLI 설치와 인증을 마쳤다면, 이제 AI와 직접 대화할 시간입니다. 터미널의 검은 화면이 막막해 보일 수 있지만, Gemini CLI의 인터랙티브 모드(Interactive Mode)는 마치 채팅 앱을 쓰듯이 자연스럽게 AI와 소통할 수 있게 해줍니다.
개발자들은 이 환경을 REPL(Read-Eval-Print Loop)이라고 부르는데요, 쉽게 말해 "읽고, 생각하고, 답하는 반복 대화창"이라고 이해하시면 됩니다.
오늘은 Gemini CLI를 처음 실행하고, 능숙하게 다루기 위한 기본 조작법과 필수 명령어를 아주 쉽게 알려드립니다.
🚀 1. 대화 시작하기: gemini 실행
터미널을 열고 딱 한 단어만 입력하세요.
gemini
이 명령어를 입력하면 Gemini CLI가 인터랙티브 모드로 진입합니다.
- 만약 인증이 되어 있지 않다면 로그인 화면이 먼저 뜹니다.
- 준비가 완료되면 프롬프트 입력창(
>)이 나타나며 대화 대기 상태가 됩니다.
첫 번째 인사 건네기 👋
입력창에 가볍게 인사를 건네거나 궁금한 것을 물어보세요.
> "Hello World! 너는 어떤 일을 할 수 있니?"
Gemini: "안녕하세요! 저는 구글의 Gemini 모델을 기반으로 터미널에서 작동하는 AI 에이전트입니다. 코드를 작성하거나, 파일을 분석하고, 웹 검색을 통해 최신 정보를 알려드릴 수 있습니다."
이렇게 엔터(Enter)를 치면 Gemini가 답변을 생성하고, 다시 사용자의 입력을 기다립니다. 이것이 바로 REPL 방식입니다.
🎮 2. 리모컨 기능: 슬래시 명령어 (/)
채팅만 하는 게 아니라, 도구 설정을 바꾸거나 화면을 정리하고 싶을 때는 슬래시(/)로 시작하는 명령어를 사용합니다.
AI에게 질문하는 것이 아니라 CLI 프로그램 자체를 제어하는 기능입니다.
가장 자주 쓰는 필수 명령어 5가지를 기억해 두세요.
/help(또는/?): 사용 가능한 모든 명령어와 단축키 도움말을 보여줍니다. 기억이 안 날 땐 무조건/help를 치세요./clear(또는Ctrl+L): 화면에 글자가 너무 많아 지저분한가요? 이 명령어로 터미널 화면을 깨끗하게 지울 수 있습니다. (대화 내용은 기억하고 있습니다)./model: AI의 두뇌를 바꿉니다. 방향키를 이용해 똑똑한 Gemini 3 Pro와 빠르고 저렴한 Gemini 3 Flash 모델 사이를 오갈 수 있습니다./quit(또는/exit): 대화를 마치고 Gemini CLI를 종료합니다.Ctrl+C를 두 번 눌러도 종료됩니다./theme: 터미널의 색상 테마를 변경합니다. 어두운 배경, 밝은 배경 등 취향에 맞는 스타일을 골라보세요.
📂 3. 강력한 파일 참조: 앳 명령어 (@)
Gemini CLI의 가장 큰 장점은 내 컴퓨터의 파일을 직접 읽을 수 있다는 것입니다. 파일 경로 앞에 @ 기호를 붙이면 해당 파일의 내용을 AI에게
전달(Inject)합니다.
- 파일 내용 물어보기:
이렇게 하면> @main.py 이 코드 설명해줘main.py파일의 내용을 읽고 답변해 줍니다. - 폴더 통째로 읽기: 폴더 이름 뒤에 슬래시(
/)를 붙이면, 그 폴더 안에 있는 모든 파일을 읽어들입니다.
100만 토큰 컨텍스트 덕분에 프로젝트 전체를 한 번에 입력받을 수 있습니다.> @src/ 이 프로젝트 구조 분석해줘 - 이미지도 봅니다:
텍스트뿐만 아니라 이미지, PDF 등도> @screenshot.png 이 화면에 보이는 에러 메시지가 무슨 뜻이야?@명령어로 입력 가능합니다.
💻 4. 터미널 제어: 뱅 명령어 (!)
Gemini CLI 안에서 나가지 않고 ls나 git status 같은 리눅스/시스템 명령어를 쓰고 싶다면
느낌표(!)를 사용하세요.
- 명령어 한 번 실행하기:
이렇게 입력하면 파일 목록을 보여주고 다시 Gemini 대화창으로 돌아옵니다.> !ls -al - 쉘 모드 (Shell Mode) 전환: 느낌표(
!)만 입력하고 엔터를 치면 쉘 모드로 고정됩니다. 이제 입력하는 모든 것이 시스템 명령어로 인식됩니다. 다시 느낌표(!)를 입력하면 Gemini 대화 모드로 돌아옵니다.
🍯 꿀팁: 편리한 단축키
마우스 없이 키보드만으로 빠르게 작업하세요.
- 실행 취소 (Undo):
Cmd+z또는Alt+z(입력 중인 내용 취소) - 다시 실행 (Redo):
Shift+Cmd+z또는Shift+Alt+z - 화면 지우기:
Ctrl+L - 에디터 열기: 긴 프롬프트를 작성해야 할 때는
Ctrl+X를 누르세요. 터미널 기본 에디터(Vim, Nano 등)가 열려 편하게 글을 쓸 수 있습니다.
이제 Gemini CLI와 대화할 준비가 완벽히 끝났습니다. 지금 터미널을 열고 "Hello World!"를 외쳐보세요! 🚀
Gemini CLI 업데이트 및 삭제 방법: 항상 최신 버전( @latest) 유지하기 및 삭제 명령어
Gemini CLI는 구글의 최신 모델 출시(예: Gemini 3)나 새로운 기능 추가(MCP 등)에 맞춰 매우 빠르게 업데이트됩니다. 특히 "Stable(안정)" 버전과 "Preview(미리보기)" 버전이 매주 출시되기 때문에, 최신 기능을 놓치지 않으려면 업데이트 방법을 정확히 아는 것이 중요합니다.
Gemini CLI를 항상 최신 상태로 유지하는 방법과, 필요할 때 깨끗하게 삭제하는 방법을 아주 쉽고 상세하게 정리해 드립니다.
🧐 1. 현재 내 버전 확인하기
업데이트 전에 내가 쓰고 있는 버전이 무엇인지 확인해 볼까요? 터미널에 아래 명령어를 입력하세요.
gemini --version
버전 숫자가 나오면 현재 설치된 상태입니다. 이제 최신 버전으로 올려봅시다.
🚀 2. 업데이트 방법 (가장 쉬운 방법)
Gemini CLI는 NPM(Node Package Manager)을 통해 배포되므로, 설치와 동일한 명령어를 사용하되 뒤에 @latest 태그를 붙여주는 것이 핵심입니다.
🅰️ NPM 사용자 (윈도우/맥/리눅스 공통)
가장 확실한 업데이트 명령어입니다. 기존 버전을 덮어쓰고 최신 버전으로 재설치합니다.
npm install -g @google/gemini-cli@latest
install: 설치(또는 덮어쓰기)-g: 컴퓨터 전체(Global)에 적용@latest: 가장 최신 안정 버전을 가져오라는 뜻
🅱️ Homebrew 사용자 (맥/리눅스)
만약 처음에 brew로 설치했다면, 아래 명령어로 업데이트하세요.
brew upgrade gemini-cli
🧪 3. 고급: 남들보다 먼저 써보고 싶다면? (Preview/Nightly)
Gemini CLI는 개발 속도가 빠릅니다. 구글은 3가지 업데이트 채널을 운영합니다. 목적에 맞게 버전을 선택해서 설치할 수 있습니다.
| 태그(Tag) | 명령어 | 특징 | 업데이트 주기 |
|---|---|---|---|
| Stable | npm install -g @google/gemini-cli@latest |
가장 추천! 안정적인 정식 버전. | 매주 화요일 (UTC 20:00) |
| Preview | npm install -g @google/gemini-cli@preview |
곧 출시될 기능을 미리 테스트. 버그가 있을 수 있음. | 매주 화요일 (UTC 23:59) |
| Nightly | npm install -g @google/gemini-cli@nightly |
매일 변경되는 최신 코드. 가장 불안정함. | 매일 (UTC 00:00) |
💡 팁: 보통은 @latest만 써도 충분합니다. 하지만 최신 기능(예: 새로운 베타 모델)이 안 보인다면 @preview로
업데이트해 보세요.
🗑️ 4. 삭제 방법 (Uninstall)
Gemini CLI를 더 이상 사용하지 않거나, 초기화하고 싶을 때 삭제하는 방법입니다. 프로그램 삭제와 설정 파일 삭제 두 단계를 거쳐야 완벽하게 지워집니다.
단계 1: 프로그램 삭제
- NPM으로 설치했다면:
npm uninstall -g @google/gemini-cli - Homebrew로 설치했다면:
brew uninstall gemini-cli
단계 2: 설정 파일 및 기록 삭제 (중요!)
프로그램을 지워도 로그인 정보, 대화 내역, 설정 파일(settings.json)은 컴퓨터에 남아 있습니다. 이것까지 지워야 "완전 삭제"입니다.
- 맥/리눅스: 터미널에서 아래 명령어로 숨겨진 폴더를 삭제합니다.
(시스템 설정 파일이 있다면rm -rf ~/.gemini/etc/gemini-cli도 삭제 확인 필요) - 윈도우(Windows):
- 탐색기를 엽니다.
C:\Users\사용자이름\경로로 이동합니다..gemini폴더를 찾아 삭제합니다 (보통 숨김 폴더로 되어 있을 수 있습니다).
✅ 요약 체크리스트
- 버전 확인:
gemini --version - 최신 업데이트:
npm install -g @google/gemini-cli@latest - 완전 삭제:
npm uninstall -g @google/gemini-cli실행 후~/.gemini폴더 삭제
이제 항상 최신 상태의 Gemini CLI로 100만 토큰의 강력함을 경험해 보세요!
100만 토큰의 위력: @ 명령어로 프로젝트 전체 읽기 📂✨
안녕하세요! 개발자 여러분. 혹시 AI에게 내 코드를 보여줄 때, 파일 하나하나 복사해서 붙여넣느라 지치신 적 없으신가요? "이 파일이랑 저 파일이 연결되어 있는데..." 하며 답답했던 경험, 이제 끝내셔도 됩니다.
Gemini CLI의 가장 강력한 무기인 @ 명령어와 100만 토큰(1M Context Window)을 활용하면, 프로젝트 전체를 통째로 AI에게 먹여주고("Inject") 질문할 수 있습니다.
오늘은 이 마법 같은 기능을 아주 쉽고 상세하게 파헤쳐 보겠습니다.
🧠 1. 왜 "100만 토큰"이 중요한가요?
먼저 배경 지식! Gemini 3 모델은 100만 토큰이라는 어마어마한 기억 용량을 가지고 있습니다. 이는 두꺼운 책 수백 권 분량, 혹은 수만 줄의 코드가 담긴 전체 프로젝트를 한 번에 머릿속에 넣고 생각할 수 있다는 뜻입니다.
다른 AI 툴들이 파일 몇 개만 봐도 "기억 용량 초과"를 외칠 때, Gemini CLI는 프로젝트 전체 구조를 파악하고 파일 간의 관계까지 이해하여 답변을 줍니다.
📂 2. 핵심 마법: @ 명령어 사용법
Gemini CLI에서는 파일이나 폴더 이름 앞에 @ (골뱅이)만 붙이면 해당 내용을 AI에게 전달합니다.
📄 A. 파일 하나만 읽기
가장 기본적인 방법입니다. 특정 파일의 내용을 참고해서 질문하고 싶을 때 사용합니다.
> @README.md 이 파일을 요약해줘.
> @src/utils.py 이 코드에서 버그가 있을까?
이렇게 입력하면 Gemini는 해당 파일의 내용을 읽어들인 후 답변을 생성합니다.
📦 B. 폴더 통째로 읽기 (이게 진짜입니다!)
이 기능이 바로 생산성 혁명입니다. 폴더 경로 뒤에 슬래시(/)를 붙이면, 그 폴더와 하위 폴더에 있는 모든 파일을 재귀적으로 읽어들입니다.
# src 폴더 전체를 읽고 아키텍처를 분석해줘
> @src/ 전체 구조를 설명하고 개선점을 제안해줘.
이렇게 명령하면 Gemini CLI는 src 폴더 안에 있는 모든 소스 코드를 읽어 컨텍스트에 포함시킵니다. 100만 토큰 덕분에 프로젝트 전체를 이해한 상태에서 "이 함수가 저쪽 파일에 어떤 영향을 미치는지"까지 분석할 수 있게 됩니다.
🛡️ 3. 똑똑한 필터링: "쓰레기 파일은 안 읽어요"
"어? 프로젝트 전체를 읽으면 node_modules 같이 쓸데없는 파일도 다 읽어서 요금이 폭탄 맞지 않을까요?"
걱정 마세요! Gemini CLI는 Git 인식 필터링(Git-aware filtering) 기능을 기본으로 탑재하고 있습니다.
- 자동 제외: .gitignore 파일에 등록된 파일(예: node_modules/, .env, .git/, 빌드 폴더 등)은 자동으로 무시하고 읽지 않습니다.
- 추가 제외: 만약 .gitignore에는 없지만 AI에게 보여주기 싫은 파일이 있다면, 프로젝트 루트에 .geminiignore 파일을 만들어서 적어두세요. Gemini가 알아서 피해 갑니다.
🎨 4. 코드가 아니어도 OK (멀티모달 입력)
Gemini 3는 텍스트만 읽는 게 아닙니다. @ 명령어로 이미지, PDF, 오디오, 비디오 파일까지 넣을 수 있습니다.
- 기획서 분석:
> @requirements.pdf 이 기획서를 보고 필요한 코드를 짜줘. - 에러 스크린샷:
> @error_screen.png 이 화면이 뜨는데 원인이 뭘까? - 회의 녹음:
> @meeting.mp3 이 회의 내용을 요약해줘.
바이너리 파일들은 자동으로 모델이 이해할 수 있는 형태로 변환되어 입력됩니다.
🍯 꿀팁: 공백이 있는 파일 이름은?
만약 파일 이름에 띄어쓰기가 있다면 어떻게 할까요? 백슬래시(\)를 사용하여 공백을 표현해주면 됩니다.
> @My Documents/project plan.txt 내용을 요약해줘.
요약: 이제 이렇게 명령하세요!
이제 복사-붙여넣기는 그만! 터미널을 열고 이렇게 명령해 보세요.
" @src/ 폴더 전체를 분석해서, @docs/style_guide.md 문서의 규칙에 맞게 리팩토링 해줘."
여러 개의 경로를 동시에 입력해도 100만 토큰의 거대한 그릇이 모든 것을 받아들여 완벽한 코딩 파트너가 되어줄 것입니다.
멀티모달 AI 활용법: 이미지, 비디오, PDF 분석하기 🎥📄
텍스트만 주고받던 시대는 지났습니다. Gemini CLI는 멀티모달(Multimodal) 능력을 통해 텍스트뿐만 아니라 이미지, 오디오, 비디오, PDF 문서를 사람처럼 보고, 듣고, 이해할 수 있습니다.
복잡한 변환 과정 없이 터미널에서 파일 경로만 던져주면 분석이 끝나는 Gemini CLI의 멀티모달 활용법을 아주 쉽게 정리해 드립니다.
👁️ 1. 핵심 명령어: @ 하나면 충분합니다
Gemini CLI에서 멀티모달 기능을 쓰는 법은 허무할 정도로 간단합니다. 텍스트 파일을 읽을 때와 똑같이 @ 기호 뒤에 파일 경로만 적으면 됩니다.
> @image.png 이 그림을 설명해줘.
> @meeting.mp3 이 회의 내용을 요약해줘.
> @report.pdf 이 문서의 결론이 뭐야?
Gemini 3 모델은 입력된 파일을 자동으로 인식하여 시각(이미지/비디오) 또는 청각(오디오) 정보로 처리합니다.
🎨 2. 이미지 분석 (Vision): "이 그림, 코드로 짜줘"
개발자가 가장 유용하게 쓸 수 있는 기능입니다. UI 디자인 시안이나 화이트보드 스케치를 코드로 바로 변환할 수 있습니다.
- UI 디자인 → 코드 변환:
- 에러 로그 스크린샷 분석: 복사하기 힘든 에러 메시지가 떴나요? 캡처해서 물어보세요.
- 초정밀 분석 (Pixel-Level): Gemini 3 Flash 모델은 코드를 실행하여 이미지를 픽셀 단위로 분석할 수 있습니다. 예를 들어 "이 악보 사진에서 음표가 몇 개야?"라고 물으면, 실제로 파이썬 코드를 짜서 이미지를 크롭하고 확대해 가며 정확한 개수를 셉니다.
Gemini 3는 이미지 속의 레이아웃, 색상, 폰트 스타일을 분석하여 실행 가능한 코드를 작성해 줍니다.
📄 3. PDF 문서 분석: "논문 읽어주는 AI"
수백 페이지짜리 PDF 문서를 다 읽을 시간이 없다면 Gemini에게 맡기세요. 100만 토큰 컨텍스트 덕분에 전공 서적 한 권 분량도 거뜬합니다.
- 핵심 내용 요약 및 질의응답:
- 데이터 추출 (OCR 대체): 이미지로 된 표나 영수증 PDF도 텍스트로 변환할 수 있습니다.
Gemini 3는 PDF 내의 텍스트뿐만 아니라 이미지를 동시에 이해하므로, 차트나 도표에 대한 질문도 답변할 수 있습니다.
🎥 4. 비디오 & 오디오 분석: "영상 보고서 작성"
회의 녹화본이나 강의 영상을 직접 업로드하여 내용을 파악할 수 있습니다.
- 회의 요약:
- 동영상 내용 검색: "이 영상에서 고양이가 나오는 장면이 몇 분 몇 초야?" 같은 질문도 가능합니다. Gemini는 비디오를 프레임 단위로 쪼개서 분석합니다.
⚙️ 5. 고급 설정: 해상도 및 토큰 관리
멀티모달 파일은 텍스트보다 토큰을 많이 사용합니다. Gemini CLI에서는 필요에 따라 미디어 처리 품질을 조절할 수 있습니다.
- 해상도 조절 (Media Resolution): 기본적으로 최적화된 설정을 사용하지만, 작은 글씨를 읽어야 한다면 '고해상도' 설정이
필요할 수 있습니다.
media_resolution_low: 토큰 절약, 빠른 속도 (비디오 분석 추천)media_resolution_high: 정밀 분석 (복잡한 문서나 작은 텍스트 이미지 추천)
🚀 요약
이제 터미널은 단순한 텍스트 입력창이 아닙니다. @ 명령어 하나로 여러분의 컴퓨터에 있는 모든 형태의 파일(이미지, 영상, 문서)을 AI의 눈과 귀에 전달해 보세요.
팁: "이 디자인( @sketch.png)을 보고, 이 문서( @rules.pdf)의 스타일 가이드에 맞춰 웹사이트를 만들어줘" 처럼 여러 파일을 동시에 주입하면 훨씬 강력한 결과물을 얻을 수 있습니다.
프로젝트의 기억 저장소 GEMINI.md 활용 가이드: 프로젝트 루트에 GEMINI.md를 생성하여 코딩 규칙과 전역 지침을 설정하는 방법 🧠📁
안녕하세요! 매번 AI에게 "나는 리액트를 쓰고 있고, 테일윈드 CSS를 사용하며, 타입스크립트 엄격 모드를 지켜야 해..."라고 반복해서 설명하느라 지치셨나요?
Gemini CLI에는 이 귀찮은 반복을 없애주는 강력한 기능, 바로 GEMINI.md가 있습니다. 이것은 여러분의 프로젝트에 대한 "헌법"이자 "장기 기억 저장소" 역할을 하는 파일입니다.
이 파일을 한 번만 잘 만들어두면, Gemini가 여러분의 코딩 스타일과 프로젝트 규칙을 완벽하게 이해한 상태로 대화를 시작합니다. 오늘은 이 GEMINI.md를 200% 활용하는 방법을 아주 쉽게 알려드립니다.
🤔 1. GEMINI.md가 무엇인가요?
GEMINI.md는 프로젝트 루트(최상위 폴더)나 사용자의 홈 디렉토리에 두는 마크다운(Markdown) 파일입니다. Gemini CLI는 대화를 시작할 때 이 파일을 가장 먼저 읽어들여 컨텍스트(Context)에 포함시킵니다.
마치 새로 온 팀원에게 "우리 팀은 코드를 이렇게 짜요"라고 적힌 인수인계 문서를 건네주는 것과 같습니다.
- 역할: 프로젝트의 기술 스택, 코딩 컨벤션, 아키텍처 원칙, 금지 사항 등을 AI에게 미리 주입합니다.
- 효과: 매 프롬프트마다 규칙을 설명할 필요가 없어지고, 일관된 스타일의 코드를 받을 수 있습니다.
🏗️ 2. 만드는 방법 (두 가지 방법)
방법 A: 자동으로 만들기 (/init 명령어) 🪄
가장 추천하는 방법입니다! Gemini CLI가 현재 폴더의 코드를 쓱 훑어보고, 적절한 GEMINI.md 초안을 자동으로 작성해 줍니다.
- 프로젝트 폴더에서 터미널을 엽니다.
gemini를 실행합니다.- 대화창에 다음 명령어를 입력하세요.
Gemini가 프로젝트 언어(Python, JS 등)와 구조를 분석하여 GEMINI.md 파일을 생성합니다.
방법 B: 수동으로 만들기 📝
직접 제어하고 싶다면 프로젝트 최상위 폴더에 GEMINI.md라는 이름의 파일을 만들고 내용을 적으시면 됩니다.
✍️ 3. 무엇을 적어야 할까요? (작성 예시)
GEMINI.md는 AI가 이해할 수 있는 자연어로 작성하면 됩니다. 구체적일수록 좋습니다.
예시 GEMINI.md 파일:
# 프로젝트: My Awesome App
## 1. 기술 스택
- Frontend: React (Next.js 14 App Router), TypeScript
- Styling: Tailwind CSS
- State Management: Zustand
## 2. 코딩 규칙 (Coding Conventions)
- 모든 컴포넌트는 함수형 컴포넌트(Functional Component)로 작성할 것.
- 변수명은 카멜케이스(camelCase), 컴포넌트명은 파스칼케이스(PascalCase)를 사용할 것.
- `any` 타입 사용 금지. 반드시 구체적인 타입을 지정할 것.
- 주석은 한국어로 작성할 것.
## 3. 답변 스타일
- 설명을 길게 하지 말고, 수정된 코드 위주로 보여줘.
- 코드를 수정할 때는 전체 파일이 아니라 변경된 부분만 보여줘.
이렇게 적어두면, 앞으로 Gemini는 여러분이 시키지 않아도 알아서 Tailwind CSS를 쓰고, 한국어로 주석을 달아줍니다.
🌐 4. 계층형 메모리 구조 (Hierarchical Memory)
Gemini CLI는 아주 똑똑하게도 GEMINI.md를 여러 위치에서 읽어와서 합칩니다. 이를 계층형 로딩이라고 합니다.
- 전역 설정 (~/.gemini/GEMINI.md):
- 내 컴퓨터의 모든 프로젝트에 적용되는 규칙입니다.
- 예: "나는 항상 한국어로 답변 받길 원해.", "내 이름은 홍길동이야."
- 프로젝트 설정 (./GEMINI.md):
- 현재 작업 중인 특정 프로젝트에만 적용됩니다.
- 예: "이 프로젝트는 Java 17을 사용해."
- 하위 폴더 설정 (./src/frontend/GEMINI.md):
- 특정 폴더 안에서만 적용됩니다.
- 예: 프론트엔드 폴더에는 React 규칙을, 백엔드 폴더에는 Spring Boot 규칙을 따로 줄 수 있습니다.
Gemini는 이 파일들을 모두 읽어 하나의 거대한 지침으로 합쳐서 기억합니다.
🧩 5. 고급 팁: 파일 임포트 (@file)
규칙이 너무 많아지면 GEMINI.md 파일이 지저분해질 수 있습니다. 이때는 다른 마크다운 파일을 불러올 수 있습니다.
GEMINI.md:
# 메인 프로젝트 규칙
## 스타일 가이드
@docs/style_guide.md <-- 이렇게 파일을 불러옵니다!
## 데이터베이스 규칙
@docs/db_rules.md
이렇게 하면 문서를 모듈화하여 깔끔하게 관리할 수 있습니다.
✅ 6. 잘 적용됐는지 확인하기 (/memory)
내가 만든 규칙을 Gemini가 잘 기억하고 있는지 궁금하다면? 터미널에서 다음 명령어를 입력해 보세요.
/memory show: 현재 로드된 모든 GEMINI.md의 합쳐진 내용을 보여줍니다./memory list: 어떤 GEMINI.md 파일들이 로드되었는지 파일 경로 목록을 보여줍니다./memory refresh: 파일을 수정한 후, Gemini에게 다시 읽으라고 지시합니다.
🚀 요약
- GEMINI.md는 프로젝트의 헌법입니다.
/init명령어로 1초 만에 자동 생성할 수 있습니다.- 기술 스택, 코딩 스타일, 답변 방식 등을 적어두면 생산성이 폭발합니다.
- 전역 설정과 프로젝트 설정을 나누어 관리할 수 있습니다.
이제 매번 똑같은 말을 반복하지 마세요. GEMINI.md에 딱 한 번만 적어두면, Gemini는 여러분만의 완벽한 맞춤형 AI 파트너가 됩니다!
/init 명령어로 프로젝트 컨텍스트 자동 생성하기: 1초 만에 AI에게 내 프로젝트 "인수인계" 하는 법 🪄📂
안녕하세요! 매번 새로운 채팅을 시작할 때마다 Gemini에게 "나는 지금 리액트를 쓰고 있고, 타입스크립트를 써야 하며, 스타일링은 테일윈드야..."라고 구구절절 설명하느라 지치셨나요?
Gemini CLI에는 단 명령어 하나로 여러분의 프로젝트를 싹 스캔해서, AI 맞춤형 설명서(GEMINI.md)를 자동으로 써주는 기능이 있습니다. 바로
/init 명령어입니다.
마치 신입 개발자에게 "이 문서는 꼭 읽고 시작해"라고 주는 인수인계 문서를 AI가 스스로 만드는 과정과 같습니다. 아주 쉽고 상세하게 알려드릴게요!
🤔 1. /init 명령어가 도대체 뭔가요?
/init은 Gemini CLI에게 "지금 이 폴더를 한번 훑어보고, 네가 기억해야 할 중요 정보를 정리해 봐"라고
시키는 명령어입니다.
이 명령어를 실행하면 Gemini는 다음과 같은 일을 합니다:
- 현재 폴더의 파일들을 분석합니다 (어떤 언어인지, 어떤 프레임워크를 쓰는지 등).
- 분석한 내용을 바탕으로 GEMINI.md라는 파일을 자동으로 생성합니다.
- 앞으로 대화할 때 이 파일을 가장 먼저 읽고 기억한 상태로 답변합니다.
🚀 2. 3단계로 끝나는 사용법
너무 간단해서 깜짝 놀라실 수도 있습니다.
단계 1: 프로젝트 폴더로 이동
터미널에서 작업 중인 프로젝트 폴더로 들어갑니다.
cd my-awesome-project
단계 2: Gemini CLI 실행
gemini
단계 3: /init 입력
대화창이 뜨면 아래 명령어를 입력하고 엔터를 치세요.
/init
끝입니다! 🎉 Gemini가 "잠시만요, 프로젝트를 분석 중입니다..." 하고는 순식간에 GEMINI.md 파일을 만들어줍니다.
🕵️ 3. Gemini는 무엇을 분석하나요?
Gemini는 셜록 홈즈처럼 여러분의 프로젝트 단서들을 찾아냅니다.
package.json/requirements.txt: "아, 이 프로젝트는 React 18버전을 쓰고, 테스팅 툴로는 Jest를 쓰는구나."- 파일 확장자 (
.ts,.py,.rs): "주력 언어는 TypeScript네." - 폴더 구조: "
src폴더 안에components가 따로 있군." - 설정 파일 (
tsconfig.json,.eslintrc): "엄격한 타입 체크를 하는 프로젝트구나."
이 모든 정보를 요약해서 GEMINI.md에 적어놓습니다.
📝 4. 생성된 GEMINI.md 엿보기 (예시)
/init이 만들어준 파일은 대략 이런 모습입니다. (물론 여러분은 이 파일을 마음대로 수정할 수 있습니다!)
# Project Context: My Awesome App
## 🛠 Tech Stack (기술 스택)
- Language: TypeScript
- Framework: Next.js (App Router)
- Styling: Tailwind CSS
- State Management: Redux Toolkit
## 📏 Coding Conventions (코딩 규칙)
- 모든 컴포넌트는 함수형(Functional)으로 작성할 것.
- 변수명은 camelCase를 사용할 것.
- 'any' 타입 사용을 지양할 것.
## AI Instructions (AI 지침)
- 답변은 한국어로 해줘.
- 코드를 수정할 때는 전체 파일 말고 바뀐 부분만 보여줘.
이제 Gemini는 여러분이 말하지 않아도 "Next.js App Router 방식의 TypeScript 코드"를 짜줄 것입니다,.
🍯 5. 더 똑똑하게 쓰는 꿀팁
A. 내가 원하는 규칙 추가하기
자동 생성된 GEMINI.md 파일을 열어서 여러분만의 규칙을 추가하세요.
"주석은 반드시 달아줘", "테스트 코드는 Vitest로 짜줘" 같은 내용을 적어두면 AI가 찰떡같이 알아듣습니다.
B. 잘 기억하고 있는지 확인하기 (/memory)
Gemini가 내 규칙을 잘 숙지했는지 불안하다면? 터미널에 /memory show라고 입력해 보세요. 현재 AI가
참고하고 있는 모든 규칙과 GEMINI.md 내용을 보여줍니다.
C. 계층형으로 관리하기
GEMINI.md는 여러 곳에 둘 수 있습니다.
- 전역 설정 (~/.gemini/GEMINI.md): 모든 프로젝트에 적용 (예: "내 이름은 000이야. 항상 존댓말 써줘.")
- 프로젝트 설정 (./GEMINI.md):
/init으로 만든 파일. 이 프로젝트에만 적용.
Gemini는 이 두 파일을 합쳐서 기억합니다. 똑똑하죠?
🎁 요약
- 프로젝트 폴더에서
gemini실행. /init입력.- 자동 생성된 GEMINI.md 확인 및 수정.
- 이제부터 반복 설명 없이 바로 코딩 시작!
이제 /init 한 번으로 귀찮은 설명은 생략하고, 바로 본론으로 들어가 보세요! 생산성이 확 올라갈 거예요. 🚀
터미널 제어권: ! 명령어와 쉘(Shell) 모드 💻⚡
Gemini CLI 안에서 ls, git status 등 시스템 명령어를 직접 실행하는 방법
안녕하세요! 코딩하다 보면 AI랑 대화하랴, 터미널 열어서 파일 확인하랴, 깃(Git) 명령어 치랴... 창을 왔다 갔다 하느라 정신없으시죠? "Alt+Tab" 키가 닳아 없어질 것 같은 여러분을 위해 준비했습니다.
Gemini CLI에는 도구를 종료하지 않고도 시스템 명령어(Shell Command)를 마음대로 쓸 수 있는 기능이 숨어 있습니다. 바로 느낌표(!) 하나면 됩니다.
AI와의 대화 흐름을 끊지 않고 터미널의 제어권을 가져오는 ! 명령어와 쉘 모드의 모든 것을 아주 쉽게 알려드립니다!
😲 1. 1초 만에 터미널 다녀오기: ! (Bang) 명령어
Gemini와 대화하다가 "어? 이 파일 이름이 뭐였더라?" 싶을 때가 있죠. 이때 새 터미널 창을 열지 마세요. 그냥 명령어 앞에 느낌표(!)만 붙이면 됩니다.
이것을 개발자들은 뱅(Bang) 명령어라고 부릅니다.
사용법
프롬프트 입력창에 ! + 시스템 명령어를 입력하고 엔터를 치세요.
> !ls -la
이렇게 입력하면:
- Gemini CLI가 잠시 멈춥니다.
- 여러분의 컴퓨터(Shell)가
ls -la명령어를 실행하고 파일 목록을 보여줍니다. - 실행이 끝나면 다시 Gemini와의 대화창으로 돌아옵니다.
자주 쓰는 예시
- 파일 확인:
> !ls(윈도우는!dir) - 깃 상태 확인:
> !git status - 현재 위치 확인:
> !pwd - 폴더 만들기:
> !mkdir new_folder
마치 채팅방에서 나가지 않고 창문만 열어서 바깥 공기를 쐬고 오는 것과 같습니다.
🐢 2. 아예 터미널로 변신하기: 쉘 모드 (Shell Mode)
명령어 한두 개가 아니라, cd로 이동도 하고 git commit도 하고 npm install도 해야
한다면? 매번 !를 붙이기 귀찮겠죠.
이때는 Gemini CLI를 잠시 일반 터미널 모드로 고정할 수 있습니다.
진입 방법
느낌표(!) 하나만 딱 입력하고 엔터를 치세요.
> !
무엇이 바뀌나요?
- 화면 변화: 프롬프트 색상이나 모양이 바뀌면서 "Shell Mode Indicator"가 뜹니다.
- 자유로운 사용: 이제부터 입력하는 모든 글자는 AI에게 가는 게 아니라, 내 컴퓨터 명령어로 인식됩니다.
ls,git,npm등을 ! 없이 막 쓰시면 됩니다.
빠져나오는 법
다시 Gemini와 대화하고 싶다면? 똑같이 느낌표(!) 하나만 입력하고 엔터를 치세요.
> !
다시 원래의 AI 대화 모드로 돌아옵니다.
🛡️ 3. 주의사항 및 특징
- 내 권한 그대로 실행됩니다
Gemini CLI 안에서 실행하는 명령어는 여러분이 터미널에서 직접 치는 것과 똑같은 권한을 가집니다.!rm -rf /같은 위험한 명령어를 치면 진짜로 파일이 삭제되니 조심하세요. - 운영체제에 맞춰주세요
- Mac/Linux:
bash또는zsh명령어가 실행됩니다. - Windows:
PowerShell또는CMD명령어가 실행됩니다.- 예를 들어, 윈도우 사용자가
!ls를 쳤는데 안 된다면!dir을 써야 할 수도 있습니다 (물론 요즘 파워쉘은ls도 알아듣습니다).
- 예를 들어, 윈도우 사용자가
- Mac/Linux:
- 환경 변수 감지 (
GEMINI_CLI=1)
!명령어로 실행된 프로그램은 "아, 내가 지금 Gemini CLI 안에서 실행되고 있구나"라는 걸 알 수 있습니다. 시스템 내부적으로GEMINI_CLI=1이라는 표식(환경 변수)이 붙기 때문입니다. 스크립트를 짤 때 이 기능을 활용하면 더 똑똑한 자동화가 가능합니다.
🤖 4. 심화: 내가 치는 것 vs AI가 치는 것
헷갈리지 마세요!
!git status(내가 칠 때): 단순히 정보를 내 눈으로 확인하기 위한 용도입니다. AI는 이 결과를 모를 수 있습니다 (단순 화면 출력).- "깃 상태 확인해줘" (AI에게 시킬 때): Gemini가 스스로
run_shell_command도구를 사용해 명령어를 실행하고, 그 결과를 읽고 해석해 줍니다.
💡 꿀팁: 단순히 파일 목록만 보고 싶으면 !ls를 쓰세요. 하지만 "파일 목록을 보고 프로젝트 구조를 설명해 줘"라고
하고 싶다면, AI에게 말로 시키거나 @** 명령어를 쓰는 것이 좋습니다.
🚀 요약
- 명령어 한 번만 쓸 때:
!명령어(예:!git status) - 계속 쓰고 싶을 때:
!(엔터) → 쉘 모드 진입 → 작업 후 →!(엔터)로 복귀 - 창 전환 금지: 이제 Gemini CLI 안에서 코딩, 깃 관리, 대화까지 한 번에 끝내세요!
여러분의 터미널 생활이 훨씬 쾌적해질 것입니다. 지금 바로 터미널을 열고 !를 눌러보세요!
보안과 편의성 사이: .geminiignore 설정 가이드 🛡️🙈
node_modules나 .env 같은 민감한 파일을 AI가 읽지 못하게 차단하는 방법
안녕하세요! Gemini CLI의 100만 토큰 기능을 신나게 사용하다가 문득 이런 걱정이 드신 적 없으신가요?
"어? 내가 @src/라고 입력했을 때, 혹시 내 비밀번호가 적힌 파일(.env)이나 쓸데없이 무거운
라이브러리 폴더(node_modules)까지 다 읽어버린 거 아니야?"
AI에게 내 코드를 보여주는 건 좋지만, 보여주지 말아야 할 것까지 보여주면 보안 사고로 이어지거나 아까운 토큰만 낭비하게 됩니다.
이때 필요한 것이 바로 .geminiignore 파일입니다. 개발자라면 익숙한 .gitignore의 AI 버전이라고 생각하면
됩니다. 오늘은 내 프로젝트의 보안을 지키고 AI 성능을 높이는 이 설정법을 아주 쉽게 알려드립니다.
🧐 1. .geminiignore가 무엇인가요?
.geminiignore는 프로젝트 루트(최상위 폴더)에 만드는 단순한 텍스트 파일입니다. 이 파일 안에 적힌 파일이나 폴더 이름은 Gemini
CLI가 "투명 인간" 취급합니다.
여러분이 실수로 @** (현재 폴더 전체 읽기) 명령어를 내려도, 이 파일에 적힌 내용은 절대 읽지 않고 건너뜁니다.
- 역할: AI 출입 금지 구역 설정 🚧
- 효과: API 키 유출 방지 (보안), 불필요한 파일 로딩 방지 (속도/비용 절약)
🛡️ 2. 기본적으로 방어는 하고 있습니다 (Git 연동)
다행히 Gemini CLI는 꽤 똑똑합니다. 기본적으로 여러분의 .gitignore 파일을 존중합니다.
- Git에 올리지 않으려고
.gitignore에 등록해 둔 파일들(예:node_modules/,.DS_Store)은 Gemini CLI도 자동으로 무시합니다. - 하지만! Git에는 올려야 하지만 AI는 안 봤으면 하는 파일이 있거나, Git을 안 쓰는 프로젝트라면
.geminiignore가 필수입니다.
✍️ 3. 설정 방법: 1분 컷!
너무 쉽습니다. 따라 해 보세요.
단계 1: 파일 만들기
프로젝트 최상위 폴더에 .geminiignore라는 이름으로 새 파일을 만듭니다. (터미널에서
touch .geminiignore 입력)
단계 2: 가리고 싶은 파일 적기
메모장이나 에디터로 파일을 열고, AI가 무시했으면 하는 파일 패턴을 한 줄에 하나씩 적습니다.
작성 예시 (.geminiignore):
# 1. 보안상 위험한 파일 (가장 중요!)
.env
.env.local
secrets.json
id_rsa
*.pem
# 2. 너무 커서 토큰 낭비인 폴더
node_modules/
dist/
build/
.next/
coverage/
# 3. AI가 볼 필요 없는 잡동사니
package-lock.json
yarn.lock
*.log
.DS_Store
이렇게 저장하면 끝입니다! 🎉
🚫 4. 무엇을 차단해야 할까요? (차단 리스트 추천)
초보자분들을 위해 꼭 차단해야 할 3대장 리스트를 정리해 드립니다.
🥇 1순위: 비밀번호와 키 (.env, secrets)
가장 위험합니다. 여기에 적힌 AWS 키나 데이터베이스 비번이 AI 서버로 전송되면 안 되겠죠? 무조건 차단하세요.
패턴: .env*, *.key, password.txt
🥈 2순위: 의존성 라이브러리 (node_modules/, venv/)
여러분이 짠 코드가 아니라 남이 짠 라이브러리 코드들입니다. 양이 어마어마하게 많아서, 이걸 읽게 하면 Gemini가 답변하는 데 한세월이 걸리고 토큰 한도도 금방 찹니다.
패턴: node_modules/ (Node.js), venv/ (Python),
target/ (Rust/Java)
🥉 3순위: 빌드 결과물 (dist/, build/)
소스 코드를 기계어로 번역한 파일들입니다. 사람은 물론 AI도 읽기 힘든 난해한 파일들이니 굳이 보여줄 필요가 없습니다.
패턴: dist/, build/, *.min.js
✅ 5. 잘 적용됐는지 확인하기
설정을 마쳤다면 테스트를 해봐야겠죠? 터미널에서 다음 명령어를 입력해 보세요.
> @.env 내용을 보여줘
만약 설정이 잘 되었다면, Gemini는 파일을 읽지 못하고 "파일을 찾을 수 없거나 무시된 파일입니다"와 비슷한 반응을 보이거나, 아예 해당 파일 내용을 프롬프트에 포함시키지 않습니다.
🚀 요약
- 프로젝트 루트에
.geminiignore파일을 만드세요. .env,node_modules/,*.log등을 적어두세요.- 이제
@**명령어로 프로젝트 전체를 읽게 시켜도, 보안 사고 걱정 없이 안전하게 코딩할 수 있습니다!
작은 파일 하나가 여러분의 소중한 정보를 지켜줍니다. 지금 바로 생성해 보세요! 🔒
실수해도 괜찮아! 체크포인트와 /restore 기능: 파일 변경 전 상태를 저장하고 실수 시 되돌리는(Undo) 기능 활용법 🛡️↩️
안녕하세요! AI에게 코딩을 맡길 때 가장 두려운 순간이 언제인가요? 아마도 "AI가 멀쩡한 내 코드를 건드려서 더 엉망으로 만들면 어떡하지?"라는 걱정이 들 때일 겁니다.
하지만 Gemini CLI를 쓴다면 그런 걱정은 접어두셔도 좋습니다. 바로 체크포인트(Checkpointing)와
/restore 기능 덕분입니다. 마치 게임에서 보스전을 치르기 전에 "저장(Save)"을 해두는 것과 똑같은 원리입니다.
AI가 실수를 저질러도 단 1초 만에 과거로 되돌릴 수 있는 이 강력한 안전장치를 설정하고 사용하는 법을 아주 쉽게 알려드립니다.
🛑 1. 체크포인트(Checkpointing)가 뭔가요?
체크포인트는 Gemini CLI가 파일을 수정하는 도구(예: write_file, replace 등)를 실행하기 직전에, 현재
프로젝트의 파일 상태를 자동으로 복사해서 저장해두는 기능입니다,.
- 자동 저장: 여러분이 따로 "저장해"라고 말하지 않아도, AI가 코드를 건드리기 전에 알아서 저장합니다.
- 안전망: AI가 코드를 엉망으로 만들거나 버그를 심더라도, Undo 버튼을 누르듯 변경 전 상태로 완벽하게 복구할 수 있습니다.
⚙️ 2. 기능 켜기 (두 가지 방법)
이 기능은 기본적으로 꺼져 있을 수 있으므로, 사용하기 전에 활성화해야 합니다. 두 가지 방법 중 편한 것을 선택하세요.
방법 A: 실행할 때마다 켜기 (일회성)
Gemini CLI를 실행할 때 --checkpointing 플래그를 붙여주면 됩니다,.
gemini --checkpointing
방법 B: 항상 켜두기 (추천! 👍)
매번 옵션을 치기 귀찮다면 설정 파일(settings.json)에 등록해 두세요.
- 터미널에서
/settings명령어를 입력하여 설정 편집기를 엽니다,. checkpointing항목을 찾아enabled값을true로 변경합니다.
settings.json 예시:
{
"checkpointing": {
"enabled": true
}
}
이제 Gemini CLI를 켤 때마다 자동으로 안전장치가 작동합니다.
↩️ 3. 실수 되돌리기: /restore 명령어
AI가 코드를 수정했는데 결과가 마음에 들지 않거나 에러가 발생했나요? 당황하지 말고 터미널에 딱 한 단어만 입력하세요.
/restore
이 명령어를 사용하면 다음과 같은 일이 일어납니다.
- 목록 확인:
/restore만 입력하고 엔터를 치면, 최근에 저장된 체크포인트 목록을 보여줍니다. - 특정 시점 복구: 목록에서 돌아가고 싶은 시점의 ID(tool_call_id)를 확인한 뒤,
/restore [ID]를 입력하면 그 시점으로 파일들이 롤백됩니다.
💡 팁: 가장 최근 작업만 취소하고 싶다면 목록을 볼 필요 없이 /restore 명령어가 안내하는 가장 최신 ID를
사용하면 됩니다.
🎬 4. 실전 시나리오: 이렇게 사용하세요
상황: server.js 파일을 리팩토링해달라고 Gemini에게 시켰는데, 코드가 완전히 깨져서 서버가 실행되지 않는
상황.
- Gemini: (열심히 코드를 고침) "수정이 완료되었습니다!"
- 나: (테스트 실행)
Error: Server crashed...😱 - 나: (침착하게)
/restore입력. - Gemini CLI: "사용 가능한 체크포인트 목록입니다:
[ToolCall_12345] - write_file server.js" - 나:
/restore ToolCall_12345입력. - Gemini CLI: "파일을 변경 전 상태로 복구했습니다."
- 나: 휴, 살았다! 다시 처음부터 제대로 지시해야지.
🛡️ 요약
- 설정 파일에
"checkpointing": { "enabled": true }를 추가하여 기능을 켭니다. - AI가 코드를 이상하게 수정하면
/restore명령어를 입력합니다. - 원하는 시점(ID)을 선택하여 복구합니다.
이제 "혹시 코드가 날아가면 어쩌지?" 하는 걱정 없이, 100만 토큰의 강력한 지능을 마음껏 활용하여 과감하게 리팩토링을 시도해 보세요! 실수해도 돌아갈 곳이 있으니까요. 😉
대화 내역 관리의 기술: /chat 명령어 정복 💾🗂️
대화 세션 저장(save), 불러오기(resume), 관리(list) 방법
안녕하세요! Gemini CLI와 한창 열정적으로 코딩 문제를 해결하다가, 갑자기 다른 급한 업무가 들어와서 흐름이 끊겨본 적 있으신가요? 혹은 "아, 아까 그 해결책이 딱 좋았는데, 거기서부터 다시 다른 방법으로 시도해볼걸" 하고 후회한 적은요?
Gemini CLI에는 게임의 "세이브 & 로드(Save & Load)" 같은 강력한 기능이 있습니다. 바로 /chat 명령어입니다.
이 기능을 익히면 AI와의 대화 맥락을 완벽하게 저장하고, 언제든지 그 시점으로 돌아가 다시 시작할 수 있습니다. 오늘은 이 대화 관리 기술을 아주 쉽고 상세하게 알려드립니다.
💾 1. 현재 상황 저장하기: /chat save
열심히 디버깅 중인데 퇴근 시간이 되었거나, 코드가 잘 작동하는 '중간 지점'을 기록해두고 싶을 때 사용합니다.
사용법
터미널에 /chat save 뒤에 기억하기 쉬운 태그(이름)를 붙여서 입력하세요.
> /chat save login-fix-v1
- 성공 메시지: "Saved conversation history to..." 라는 메시지와 함께 현재까지의 모든 대화 내용과 컨텍스트가 안전하게 저장됩니다.
- 주의: 태그 이름에는 공백 대신 하이픈(-)이나 언더바(_)를 쓰는 것이 좋습니다.
📜 2. 저장된 목록 확인하기: /chat list
"내가 저장해둔 대화가 뭐 뭐 있더라?" 하고 궁금할 때 사용합니다.
사용법
> /chat list
이 명령어를 치면 현재 프로젝트에서 저장된 모든 대화 세션의 태그(이름)를 보여줍니다.
⚠️ 중요: 프로젝트별 관리 Gemini CLI의 대화 저장은 프로젝트 단위로 작동합니다. A 프로젝트 폴더에서 저장한 대화는 B 프로젝트 폴더로 가면 보이지 않습니다. 해당 프로젝트 폴더 안에서 실행해야 목록이 뜹니다.
🔄 3. 과거로 돌아가기: /chat resume
저장해둔 시점으로 시간을 되돌리고 싶을 때 사용합니다. 이 명령어를 쓰면 현재 대화 내용을 지우고, 저장했던 시점의 기억을 완벽하게 복원합니다.
방법 A: 태그 이름을 알 때 (/chat resume)
불러올 태그 이름을 정확히 안다면 바로 입력하세요.
> /chat resume login-fix-v1
방법 B: 대화형으로 고르기 (/resume) - 강력 추천! 👍
태그 이름이 기억나지 않거나, 자동 저장된 내역을 보고 싶다면 /resume만 입력하세요.
> /resume
이 명령어를 입력하면 "세션 브라우저(Session Browser)"라는 멋진 화면이 뜹니다.
- 방향키로 저장된 목록을 위아래로 훑어볼 수 있습니다.
- 각 세션의 날짜, 메시지 개수, 첫 번째 질문을 미리 보여줍니다.
/키를 눌러서 과거 대화 내용을 검색할 수도 있습니다.- 엔터(Enter)를 누르면 해당 시점으로 복구됩니다.
💡 팁: Gemini CLI는 여러분이 /chat save를 하지 않아도 대화할 때마다 자동으로 세션을 저장하고
있습니다. 실수로 저장을 안 하고 껐더라도 /resume 명령어를 통해 자동 저장된 과거 기록을 찾아낼 수 있습니다.
🗑️ 4. 필요 없는 기억 지우기: /chat delete
저장된 목록이 너무 많아서 정리하고 싶을 때는 삭제 명령어를 사용합니다.
> /chat delete login-fix-v1
만약 /resume 브라우저 화면에 있다면, 삭제하고 싶은 세션 위에서 해당 키(보통 d 또는 안내된 키)를 눌러서 바로 지울
수도 있습니다.
📤 5. 보너스: 대화 내보내기 (/chat share)
대화 내용을 팀원에게 공유하거나 블로그에 올리고 싶다면? 텍스트를 드래그해서 복사할 필요 없이 파일로 내보낼 수 있습니다.
마크다운 파일로 저장 (읽기 좋음)
> /chat share meeting_summary.md
JSON 파일로 저장 (데이터 분석용)
> /chat share debug_log.json
파일 이름을 지정하지 않으면 Gemini가 알아서 이름을 지어줍니다.
🎬 실전 활용 시나리오: "가지치기(Branching)" 기법
이 기능을 활용하면 멀티버스처럼 코딩할 수 있습니다.
- 상황: 복잡한 기능을 구현해야 하는데 A 방법(React Query)과 B 방법(SWR) 중 고민됨.
- 행동: 현재 상태를 저장합니다.
> /chat save before-start - 시도 A: React Query로 코드를 짜달라고 시킵니다. 결과가 별로입니다.
- 복구:
> /chat resume before-start(다시 아무것도 안 한 상태로 돌아옴) - 시도 B: 이번엔 SWR로 짜달라고 시킵니다. 결과가 마음에 듭니다! 채택!
🚀 요약
- 저장:
/chat save <이름>(중간 세이브) - 목록:
/chat list(세이브 파일 확인) - 불러오기:
/resume(화면 보고 선택) 또는/chat resume <이름> - 공유:
/chat share result.md(파일로 내보내기)
이제 실수하는 것을 두려워하지 마세요. 언제든 /chat save로 저장해두고, 마음껏 실험해 본 뒤 마음에 안 들면
/resume으로 돌아오면 되니까요!
settings.json으로 나만의 Gemini CLI 환경 만들기 🛠️🎨
테마 변경, 샌드박스 설정, 자동 승인(Auto-approve) 등 설정 파일 완벽 분석
안녕하세요! Gemini CLI를 기본 상태로만 쓰고 계신가요? 물론 그대로 써도 훌륭하지만, settings.json 파일을 조금만 만져주면 이
도구는 완전히 여러분의 손에 딱 맞는 맞춤형 무기로 변신합니다.
매번 "이 파일을 읽어도 될까요?"라고 묻는 AI가 귀찮거나, 검은 화면이 지루하다면 주목해 주세요. 오늘은 Gemini CLI의 설정 파일인
settings.json을 수정하여 나만의 최적화된 환경을 만드는 방법을 아주 쉽고 상세하게 알려드립니다.
📂 1. settings.json 파일은 어디에 있나요?
설정을 바꾸는 방법은 두 가지가 있습니다. 편한 방법을 선택하세요!
방법 A: 터미널에서 메뉴로 고치기 (가장 쉬움) 🌟
Gemini CLI가 실행 중일 때, 채팅창에 아래 명령어를 입력하세요.
/settings
그러면 복잡한 코드 없이도 화살표 키로 설정을 켜고 끄거나 값을 바꿀 수 있는 설정 편집기(Settings Editor)가 열립니다.
방법 B: 직접 파일 수정하기 (고수용) 💻
세밀한 조정이 필요하다면 파일을 직접 열어서 수정하세요. 운영체제별 위치는 다음과 같습니다.
- Mac/Linux:
~/.gemini/settings.json - Windows:
C:\Users\사용자이름\.gemini\settings.json
💡 팁: 프로젝트 폴더 안에 .gemini/settings.json을 따로 만들면, 그 프로젝트에서만 적용되는 전용
설정을 만들 수도 있습니다.
🎨 2. 눈이 편안하게: 테마(Theme) 변경
기본 검은 화면이 지루하다면 색상을 바꿔보세요.
설정 방법: settings.json 파일에서 "theme" 값을 변경합니다.
{
"theme": "GitHub"
}
- 사용 가능한 값: 기본적으로 제공되는 테마 외에도, 16진수 색상 코드(Hex Code)를 사용하여 나만의 커스텀 테마를 만들 수도 있습니다.
- 터미널에서 바로 바꾸기:
/theme명령어를 입력하면 눈으로 보면서 고를 수 있습니다.
🚀 3. 귀찮은 질문 금지: 자동 승인 (Auto-Accept)
Gemini CLI는 안전을 위해 파일을 읽거나 쓸 때마다 "실행할까요? (y/n)"라고 물어봅니다. 하지만 단순히 파일을 읽는 작업까지 일일이 허락하는 건 너무 귀찮죠.
이때 autoAccept 설정을 켜면, 안전한 작업(파일 읽기, 검색 등)은 묻지 않고 바로 실행합니다.
설정 방법:
{
"autoAccept": true
}
• 주의: 파일을 삭제하거나 수정하는 위험한 작업은 여전히 여러분의 승인을 기다립니다. 모든 것을 다 자동으로 하고 싶다면 CLI 실행 시
--yolo 옵션을 써야 하지만, 보안상 권장하지 않습니다.
🛡️ 4. 철통 보안: 샌드박스 (Sandbox) 모드
"혹시 AI가 내 컴퓨터의 중요 파일을 건드리면 어떡하지?" 걱정되시나요? 샌드박스 설정을 켜면 AI가 실행하는 모든 명령어와 파일 작업이 격리된 컨테이너(Docker) 안에서만 일어납니다. AI가 실수를 해도 내 실제 컴퓨터는 100% 안전합니다.
설정 방법: (단, 컴퓨터에 Docker나 Podman이 설치되어 있어야 합니다.)
{
"sandbox": "docker"
}
• "docker" 대신 "podman"을 쓸 수도 있습니다.
↩️ 5. 실수 방지: 체크포인트 (Checkpointing)
AI가 코드를 수정하기 전에 자동으로 백업(저장)을 해두는 기능입니다. 결과가 마음에 안 들면 언제든 /restore
명령어로 되돌릴 수 있습니다.
설정 방법:
{
"checkpointing": {
"enabled": true
}
}
이걸 켜두면 마음 놓고 대규모 리팩토링을 시도해 볼 수 있습니다.
⌨️ 6. 개발자를 위한 꿀기능: Vim 모드
터미널 입력창에서 마우스 대신 키보드만으로 이동하고 편집하고 싶으신가요? Vim 편집기에 익숙한 개발자라면 환호할 기능입니다.
설정 방법:
{
"vimMode": true
}
이제 입력창에서 Esc를 누르면 Vim 명령 모드로 전환되어 h, j, k,
l로 이동하거나 dd로 줄을 삭제할 수 있습니다.
📝 종합: 추천 settings.json 예시
아래 내용을 복사해서 여러분의 settings.json에 붙여넣어 보세요. 가장 추천하는 조합입니다.
{
"theme": "GitHub",
"autoAccept": true,
"checkpointing": {
"enabled": true
},
"fileFiltering": {
"respectGitIgnore": true
},
"usageStatisticsEnabled": false
}
- respectGitIgnore:
.gitignore에 있는 파일(node_modules등)은 AI가 읽지 않게 하여 토큰을 아낍니다. - usageStatisticsEnabled: 사용 통계 전송이 싫다면
false로 꺼둘 수 있습니다.
이제 저장하고 터미널을 다시 열어보세요. 나에게 딱 맞게 튜닝된 Gemini CLI가 여러분을 기다리고 있을 겁니다! 😎
나만의 단축키 만들기: 커스텀 슬래시 명령어 (.toml) ⌨️✨
자주 쓰는 프롬프트를 /fix, /review 같은 명령어로 만드는 법
안녕하세요! Gemini CLI를 쓰다 보면 매번 비슷하게 긴 프롬프트를 입력하느라 귀찮으셨죠? "이 코드 리뷰해 주고, 보안 문제점 찾아주고, 한국어로 답변해 줘..." 이걸 매번 치는 건 정말 비효율적입니다.
Gemini CLI에는 커스텀 명령어(Custom Commands) 기능이 있습니다. 내가 자주 쓰는 복잡한 프롬프트를 /fix,
/review 처럼 짧은 단축키로 저장해두고 꺼내 쓰는 기능입니다. 설정 파일 하나만 만들면 끝나는 아주 쉬운 방법을 알려드립니다.
📂 1. 어디에 저장하나요? (파일 위치)
커스텀 명령어는 .toml 이라는 확장자를 가진 파일에 저장합니다. 이 파일을 어디에 두느냐에 따라 사용 범위가 달라집니다.
- 나만 쓸 거야 (전역 설정): 내 컴퓨터의 모든 프로젝트에서 쓰고 싶다면 여기에 만드세요.
- 경로:
~/.gemini/commands/ - (윈도우 사용자는
C:\Users\사용자이름\.gemini\commands\입니다.)
- 경로:
- 이 프로젝트 팀원들과 같이 쓸 거야 (로컬 설정): 특정 프로젝트 안에서만 동작하게 하려면 프로젝트 폴더 안에 만드세요. 이걸
깃(Git)에 올리면 팀원들도 똑같은 명령어를 쓸 수 있습니다.
- 경로:
내프로젝트폴더/.gemini/commands/
- 경로:
📝 2. 기본 문법: TOML 파일 작성법
가장 간단한 명령어부터 만들어볼까요? 예를 들어, 항상 "이 코드를 초등학생도 이해하게 설명해 줘"라고 묻는 명령어를 /explain으로 만들어봅시다.
~/.gemini/commands/폴더 안에explain.toml파일을 만듭니다. (파일 이름이 곧 명령어 이름이 됩니다!)- 파일 안에 아래 내용을 복사해서 붙여넣으세요.
# 설명: /help 쳤을 때 보이는 설명입니다.
description = "복잡한 코드를 아주 쉽게 설명해줍니다."
# 프롬프트: 실제로 AI에게 전송될 내용입니다.
prompt = """
당신은 친절한 선생님입니다.
사용자가 입력한 내용을 초등학생도 이해할 수 있게 아주 쉬운 비유를 들어서 설명해주세요.
"""
이제 터미널에서 /explain 이라고 치고 뒤에 궁금한 내용을 적으면, 위 프롬프트가 자동으로 적용되어 답변이 나옵니다,.
⚡ 3. 핵심 기능: 매개변수와 자동화 ({{args}}, !, @)
단순한 텍스트 저장을 넘어, 진짜 강력한 도구로 만드는 3가지 마법의 문법이 있습니다.
A. 사용자의 입력 넣기: {{args}}
명령어 뒤에 타자 친 내용을 프롬프트 중간에 쏙 넣고 싶을 때 사용합니다.
- 예시:
/translate 안녕하세요라고 치면{{args}}자리에 "안녕하세요"가 들어갑니다.
B. 쉘 명령어 실행 결과 넣기: !{...}
Git 상태나 파일 목록 같은 시스템 정보를 프롬프트에 자동으로 넣을 수 있습니다.
- 예시:
!{git diff}를 쓰면 현재 변경된 코드 내용을 자동으로 읽어옵니다.
C. 파일 내용 넣기: @{...}
자주 쓰는 가이드라인 문서나 규칙 파일을 프롬프트에 항상 포함시킬 수 있습니다.
- 예시:
@{docs/rules.md}라고 적으면 해당 파일 내용을 읽어서 프롬프트에 합칩니다.
🛠️ 4. 실전 예제: 바로 복사해서 쓰세요!
이제 여러분이 원했던 /fix와 /review 명령어를 직접 만들어봅시다.
🔧 예제 1: 버그 수정 명령어 (fix.toml)
에러 메시지를 입력하면 원인을 분석하고 고쳐주는 명령어입니다.
파일 위치: ~/.gemini/commands/fix.toml
description = "에러 메시지를 분석하고 수정 코드를 제안합니다."
prompt = """
당신은 노련한 디버깅 전문가입니다.
내가 겪고 있는 다음 에러에 대해 원인을 분석하고, 해결된 코드를 보여주세요.
에러 메시지:
{{args}}
답변 형식:
1. 에러 원인 (한 줄 요약)
2. 수정된 코드 블록
"""
사용법: > /fix TypeError: Cannot read properties of undefined
🧐 예제 2: 코드 리뷰 명령어 (review.toml)
현재 Git으로 수정한(Staged) 코드를 자동으로 읽어와서 리뷰해주는 고급 명령어입니다. !{git diff} 기능을 활용합니다.
파일 위치: ~/.gemini/commands/review.toml
description = "Git에 스테이징된 변경 사항을 리뷰합니다."
prompt = """
당신은 꼼꼼한 시니어 개발자입니다.
현재 변경된 코드(git diff)를 보고 다음 기준에 맞춰 리뷰해 주세요.
변경 사항:
```diff
!{git diff --staged}
리뷰 기준:
1. 잠재적인 버그가 있는가?
2. 코드가 읽기 쉬운가? (가독성)
3. 보안 취약점은 없는가?
문제가 있다면 구체적인 개선 코드를 제안해 주세요. """
사용법:
- 터미널에서
git add .명령어로 변경 사항을 스테이징합니다. > /review입력. (끝! 자동으로 코드를 읽어가서 리뷰해줍니다 [9])
🍯 5. 꿀팁: 그룹으로 묶기 (네임스페이스)
명령어가 많아지면 폴더로 정리할 수 있습니다. 폴더 이름은 콜론(:)으로 바뀝니다 [2].
- 만약
commands/git/commit.toml경로로 파일을 만들었다면? - 명령어는
/git:commit이 됩니다 [10].
이렇게 하면 /test:unit, /test:e2e 처럼 명령어를 체계적으로 관리할 수 있습니다.
🚀 요약
~/.gemini/commands/폴더를 만드세요.- 원하는 명령어 이름으로
.toml파일(예:fix.toml)을 만드세요. description과prompt를 적으세요.{{args}}(내 입력),!{git diff}(명령어 결과)를 활용해 똑똑한 비서를 만드세요.
이제 귀찮은 반복 업무는 단축키 하나로 해결하세요! 😎
터미널을 예쁘게: Gemini CLI 테마(Theme) 변경하기 🎨✨
/theme 명령어를 사용해 터미널 색상과 스타일 꾸미기
안녕하세요! 개발자 여러분, 하루 종일 쳐다보는 검은 터미널 화면이 지루하게 느껴진 적 없으신가요?
Gemini CLI는 단순히 똑똑한 AI일 뿐만 아니라, 개발자의 눈을 즐겁게 해 줄 테마(Theme) 변경 기능을 기본으로 제공합니다. 딱딱한 기본 화면에서 벗어나 나만의 스타일로 꾸미는 방법을 아주 쉽고 상세하게 알려드립니다.
🎮 1. 가장 쉬운 방법: /theme 명령어
복잡한 설정 파일을 건드릴 필요 없이, 터미널에서 명령어 하나만 입력하면 눈으로 보면서 테마를 고를 수 있습니다.
- Gemini CLI 실행: 터미널에
gemini를 입력해 대화를 시작합니다. - 명령어 입력: 대화창에 아래 명령어를 입력하고 엔터(Enter)를 치세요.
/theme - 테마 선택: 화면에 테마 목록이 나타납니다. 방향키(⬆️⬇️)를 움직여 마음에 드는 색상을 고른 뒤 엔터를 누르면 즉시 적용됩니다.
💡 팁: 기본적으로 제공되는 테마 외에도, 설정 파일을 수정하면 더 다양한 커스텀 테마를 만들 수 있습니다.
⚙️ 2. 영구 설정하기: settings.json
매번 명령어를 치는 게 아니라, 아예 설정을 고정하고 싶다면 설정 파일을 열어보세요.
파일 위치:
- Mac/Linux:
~/.gemini/settings.json - Windows:
C:\Users\사용자이름\.gemini\settings.json
터미널에서 /settings 명령어를 입력하면, 이 파일을 쉽게 수정할 수 있는 편집기가 열립니다. 여기서 "theme" 항목을 찾아 원하는 테마
이름으로 바꿔주면 됩니다.
예시:
{
"theme": "GitHub"
}
🎨 3. 고수들을 위한: 나만의 테마 만들기 (Custom Theme)
"나는 남들과 다른 색을 원해!"라는 분들을 위해 Gemini CLI는 색상 코드를 직접 지정하는 커스텀 테마 기능을 지원합니다.
settings.json 파일 안에 "customThemes" 항목을 추가하여 16진수 색상 코드(Hex Code)로 나만의 팔레트를 정의할 수
있습니다.
따라 해 보세요 (예시 코드):
{
"theme": "MyCoolTheme",
"customThemes": {
"MyCoolTheme": {
"name": "MyCoolTheme",
"type": "custom",
"Background": "#1E1E1E",
"Foreground": "#D4D4D4",
"LightBlue": "#569CD6",
"AccentBlue": "#4FC1FF",
"AccentPurple": "#C586C0",
"AccentCyan": "#4EC9B0",
"AccentGreen": "#B5CEA8",
"AccentYellow": "#DCDCAA",
"AccentRed": "#F44747",
"Comment": "#6A9955",
"Gray": "#808080"
}
}
}
Background: 터미널 배경색Foreground: 기본 글자색Accent: AI의 답변이나 강조되는 텍스트 색상들
위 코드를 settings.json에 붙여넣고 저장하면, 다음 실행부터 여러분이 만든 "MyCoolTheme"이
적용됩니다.
🚀 요약
- 터미널에서
/theme을 입력해 간편하게 바꾼다. - 더 세밀한 설정은
/settings명령어로settings.json을 수정한다. customThemes를 이용해 세상에 하나뿐인 나만의 터미널을 만든다.
이제 칙칙한 화면은 안녕! 예쁜 터미널 환경에서 더 즐겁게 코딩하세요! 😎
Vim 모드 활성화하기: /vim 명령어로 터미널 입력창에서 Vim 스타일 단축키 사용하는 법 ⌨️🚀
개발자를 위한 필수 기능: 터미널에서 마우스 없이 프롬프트 편집하기
안녕하세요! 개발자 여러분. 코딩하다가 프롬프트를 입력하려고 할 때, 손이 화살표 키나 마우스로 가는 순간 "아, 흐름 끊기네"라고 느껴본 적 없으신가요?
Vim(빔) 편집기에 익숙한 분들에게 Gemini CLI는 최고의 선물을 준비했습니다. 바로 터미널 입력창 자체에서 Vim 스타일의 키 바인딩을 사용할 수 있는 기능입니다. 이제 마우스 없이, 화살표 키 없이, 오직 홈 로우(Home Row) 키보드 위에서 프롬프트를 작성하고 편집하세요.
Gemini CLI에서 Vim 모드를 켜고 끄는 법, 그리고 필수 단축키들을 아주 상세하고 쉽게 정리해 드립니다.
🎮 1. 가장 쉬운 활성화 방법: /vim 명령어
복잡한 설정 파일 필요 없이, 터미널에서 명령어 한 줄이면 즉시 Vim 모드가 켜집니다.
- Gemini CLI 실행: 터미널에
gemini를 입력해 대화를 시작합니다. - 명령어 입력: 대화창에 아래 명령어를 입력하고 엔터(Enter)를 치세요.
/vim - 확인: 화면 하단 상태 표시줄에
[NORMAL]또는[INSERT]라는 표시가 나타납니다. 이제 Vim 모드가 활성화되었습니다!
💡 참고: 이 설정은 저장됩니다. 한 번 켜두면 ~/.gemini/settings.json 파일에 기록되어, 다음번에
Gemini CLI를 실행해도 Vim 모드가 유지됩니다. 끄고 싶다면 다시 /vim을 입력하면 됩니다.
⚙️ 2. 영구 설정 방법 (settings.json)
명령어 대신 설정 파일에서 직접 켜고 싶다면 다음 과정을 따르세요.
- 터미널에서
/settings명령어를 입력하여 설정 편집기를 엽니다. vimMode항목을 찾아 값을true로 변경합니다.- 저장하고 나오면 항상 Vim 모드로 시작됩니다.
⌨️ 3. Vim 모드 100% 활용하기 (필수 단축키)
Vim 모드는 크게 입력 모드(INSERT)와 명령 모드(NORMAL) 두 가지 상태를 오갑니다.
🟢 기본 상태: NORMAL 모드 (명령 모드)
처음에는 INSERT 모드일 수 있습니다. Esc 키를 누르면 NORMAL 모드로 전환되며, 이때부터 이동과 편집 명령을 내릴 수 있습니다.
- 이동 (Navigation)
h,j,k,l: 좌, 하, 상, 우 이동 (화살표 키 대신 사용).w: 다음 단어의 시작으로 점프 (Word).b: 이전 단어의 시작으로 점프 (Back).e: 단어의 끝으로 점프 (End).0: 줄의 맨 처음으로 이동.$: 줄의 맨 끝으로 이동.gg: 문서(프롬프트)의 맨 첫 줄로 이동.G: 문서의 맨 마지막 줄로 이동.
- 삭제 및 수정 (Editing)
x: 커서 위치의 글자 하나 삭제.dd: 현재 줄 전체 삭제 (Cut).dw: 커서부터 단어 끝까지 삭제 (Delete Word).u: 실행 취소 (Undo) - 참고: Gemini CLI 기본 단축키 Cmd+z도 작동하지만 Vim의 u도 지원하는 경우가 많습니다.
🔴 입력 상태: INSERT 모드 (입력 모드)
NORMAL 모드에서 아래 키를 누르면 INSERT 모드로 바뀌며 글자를 타이핑할 수 있습니다.
i: 커서 앞에 입력 시작 (Insert).a: 커서 뒤에 입력 시작 (Append).o: 현재 줄 아래에 새 줄을 만들고 입력 (Open line).O: 현재 줄 위에 새 줄을 만들고 입력.c: 내용을 변경하며 입력 모드로 전환 (Change). (예:cw는 단어를 지우고 바로 입력 상태가 됨)
🍯 4. 고수를 위한 팁: 숫자 반복과 마침표
Vim의 강력함은 조합에 있습니다. Gemini CLI의 Vim 모드도 이를 지원합니다.
- 숫자 + 명령: 명령을 여러 번 반복합니다.
3w: 3단어 앞으로 점프.5x: 글자 5개 삭제.10G: 10번째 줄로 이동.
- 마침표 (.): 방금 수행한 편집 명령을 반복합니다.
- 예를 들어,
dw로 단어를 하나 지웠다면, 다음 단어로 이동해서.만 누르면 그 단어도 지워집니다.
- 예를 들어,
🚀 요약
- 터미널에
/vim을 입력하세요. - 글을 쓰다가 수정이 필요하면
Esc를 누르세요. h,j,k,l로 이동하고x나dd로 삭제하세요.- 다시 글을 쓰려면
i나a를 누르세요.
이제 Gemini CLI 안에서도 "Vim 감성" 그대로, 키보드에서 손을 떼지 말고 코딩하세요! 😎
YOLO 모드? --yolo 플래그의 위험과 재미 🎢💀
모든 도구 실행 승인을 자동으로 처리하는 YOLO 모드 사용법과 주의사항
안녕하세요! Gemini CLI를 쓰면서 매번 "이 파일을 수정해도 될까요?", "이 명령어를 실행해도 될까요?"라는 질문에 'y'를 누르느라 지치셨나요?
Gemini CLI에는 이 모든 안전장치를 해제하고 AI에게 완전한 자율성을 부여하는 숨겨진 모드가 있습니다. 바로 YOLO 모드입니다. "You Only Live Once(인생은 한 번뿐)"라는 말처럼, 뒤를 돌아보지 않고 거침없이 코딩하는 이 기능의 매력과 위험성을 아주 상세하게 파헤쳐 드립니다.
😲 1. YOLO 모드가 대체 뭔가요?
보통 Gemini CLI는 안전을 위해 파일을 수정하거나(Write), 쉘 명령어(Shell execution)를 실행할 때 반드시 사용자의 허락(Confirmation)을 구합니다. 실수로 중요한 파일을 지우거나 시스템을 망가뜨리는 것을 막기 위해서죠.
하지만 YOLO 모드를 켜면 이 모든 확인 절차를 자동 승인(Auto-approve) 해버립니다.
- 일반 모드: "파일을 삭제하시겠습니까? (y/n)" → 사용자 입력 대기.
- YOLO 모드: "파일을 삭제합니다." → 즉시 실행.
마치 자율주행 자동차에게 핸들을 완전히 맡기고 잠드는 것과 같습니다. AI가 스스로 판단하고, 계획하고, 행동하는 속도가 비약적으로 빨라집니다.
🚀 2. YOLO 모드 켜는 법 (3가지)
상황에 따라 다양한 방법으로 이 '야수 모드'를 켤 수 있습니다.
방법 A: 시작할 때 켜기 (Flags)
스크립트나 자동화 작업에서 쓸 때 유용합니다. 실행 시 플래그를 붙이세요.
gemini --yolo
또는 짧게:
gemini -y
이렇게 실행하면 종료할 때까지 모든 도구 사용을 묻지 않고 실행합니다.
방법 B: 대화 도중 켜고 끄기 (Slash Command)
대화하다가 "아, 귀찮아. 그냥 네가 알아서 다 해." 싶을 때 씁니다.
/yolo
이 명령어를 입력하면 YOLO 모드가 켜지고, 다시 입력하면 꺼집니다.
방법 C: 단축키 (Shortcut)
가장 빠른 방법입니다.
Ctrl+Y: YOLO 모드를 즉시 토글(On/Off)합니다.
💀 3. 무엇이 위험한가요? (주의사항)
YOLO 모드는 양날의 검입니다. 편한 만큼 치명적인 실수가 발생할 수 있습니다.
- 파괴적인 명령어 실행: AI가 문제 해결을 위해
rm -rf /같은 삭제 명령어를 사용하려고 할 때, YOLO 모드는 이를 막지 않고 그대로 실행해버립니다. - 파일 덮어쓰기: 멀쩡한 코드를 AI가 잘못된 로직으로 수정해버려도, 사용자가 말릴 틈 없이 파일이 저장됩니다.
- 무한 루프: AI가 오류를 고치려다 실패하고, 다시 고치고, 또 실패하는 과정을 무한 반복하며 API 요금을 낭비할 수 있습니다.
⚠️ 경고: YOLO 모드에서는 내 컴퓨터의 파일 시스템과 터미널 제어권을 AI에게 100% 넘기는 것입니다. 신뢰할 수 없는 환경에서는 절대 사용하지 마세요.
🛡️ 4. 안전하게 즐기는 법 (필수 안전장치)
YOLO의 속도는 즐기되, 내 컴퓨터는 지키고 싶다면? 다음 2가지 안전장치를 반드시 함께 사용하세요.
🔒 안전장치 1: 샌드박스 (Sandbox) 모드
가장 강력한 추천 방법입니다. YOLO 모드를 켜더라도, 실행 환경을 도커(Docker) 컨테이너 안에 가둬두는 것입니다.
gemini --yolo --sandbox
이렇게 하면 AI가 rm -rf /를 실행해도, 내 실제 컴퓨터가 아니라 격리된 컨테이너만 날아갑니다. 내 파일들은 안전합니다.
↩️ 안전장치 2: 체크포인트 (Checkpointing)
AI가 파일을 망쳐놨을 때를 대비해 자동 백업을 켜두세요.
gemini --yolo --checkpointing
만약 AI가 코드를 엉망으로 만들었다면, /restore 명령어 한 번으로 수정 전 상태로 되돌릴 수 있습니다.
🎬 5. 실전 활용 예시
YOLO 모드는 "헤드리스(Headless) 모드"와 결합했을 때 진가를 발휘합니다. 내가 지켜보지 않아도 AI가 알아서 작업을 끝내놓기를 원할 때 사용합니다.
예시: 프로젝트 전체에서 TODO 주석 찾아서 리포트 만들기
gemini --yolo -p "프로젝트 전체를 스캔해서 TODO 주석을 찾고, todo_report.md 파일로 저장해줘. 완료되면 파일 내용을 보여줘."
이렇게 명령하면 Gemini는:
- 파일 검색 (
grep등) - 내용 읽기
todo_report.md파일 생성 (쓰기)- 결과 출력
이 모든 과정을 사용자의 승인 클릭 없이 순식간에 처리합니다.
🚀 요약
gemini --yolo또는/yolo로 모든 질문 과정을 생략하고 자동화할 수 있습니다.- 위험한 명령어(삭제, 수정)도 바로 실행되므로 매우 주의해야 합니다.
- 안전을 위해 반드시
--sandbox(격리) 또는--checkpointing(복구 기능)과 함께 사용하는 것을 권장합니다.
이제 YOLO 모드로 진정한 "AI 에이전트"의 속도를 경험해 보세요. 단, 안전벨트(샌드박스)는 꼭 매시길 바랍니다! 😉
MCP(Model Context Protocol)란 무엇인가? 🔌🌐
Gemini CLI를 외부 도구 및 데이터와 연결해주는 '만능 통역사' 개념 설명
안녕하세요! Gemini CLI를 사용하다 보면 이런 생각이 들 때가 있습니다.
"AI가 내 컴퓨터에 있는 데이터베이스를 직접 조회할 수 있다면 얼마나 좋을까?" "터미널에서 나가지 않고 GitHub 이슈를 바로 등록할 수 없을까?"
이 상상을 현실로 만들어주는 기술이 바로 MCP (Model Context Protocol)입니다. 오늘은 Gemini CLI를 단순한 챗봇에서 '세상 모든 도구와 소통하는 슈퍼 에이전트'로 진화시키는 핵심 기술인 MCP에 대해 아주 쉽고 상세하게 알아보겠습니다.
🤔 1. MCP가 대체 뭔가요? (쉬운 비유)
MCP(Model Context Protocol)는 AI 모델과 외부 시스템이 서로 대화할 수 있게 해주는 오픈 표준 약속(프로토콜)입니다.
가장 쉬운 비유는 "USB 포트"입니다.
- 예전에는 마우스, 키보드, 프린터 단자가 다 달랐죠? 연결하기 힘들었습니다.
- USB가 나오면서 어떤 기기든 꽂으면 바로 인식하고 작동하죠?
MCP는 AI 세계의 USB입니다.
- Gemini CLI (컴퓨터 본체): MCP라는 표준 구멍(인터페이스)을 가지고 있습니다.
- MCP 서버 (USB 기기): GitHub, Slack, 데이터베이스(PostgreSQL), 구글 드라이브 같은 외부 도구들입니다.
MCP 덕분에 개발자는 각 도구마다 복잡한 연동 코드를 짤 필요 없이, "MCP 서버"만 연결하면 Gemini가 그 도구를 즉시 사용할 수 있게 됩니다.
🛠️ 2. MCP는 구체적으로 어떤 일을 하나요?
Gemini CLI에 MCP 서버를 연결하면, AI는 다음 3가지 초능력을 얻게 됩니다.
① 도구 사용 (Tools) 🔨
AI가 직접 행동을 취할 수 있습니다.
- 예시 (GitHub MCP): "이 버그 리포트를 내 레포지토리에 이슈로 등록해줘."
- 작동: Gemini가 GitHub MCP의
create_issue도구를 호출하여 실제로 이슈를 만듭니다.
② 자원 읽기 (Resources) 📚
AI가 외부 데이터를 읽어서 참고할 수 있습니다.
- 예시 (Database MCP): "어제 가입한 사용자 명단을 DB에서 가져와서 보여줘."
- 작동: Gemini가 데이터베이스의 테이블 내용을 읽어와서 답변에 활용합니다.
③ 프롬프트 템플릿 (Prompts) 📝
자주 쓰는 명령어 형식을 미리 저장해두고 꺼내 쓸 수 있습니다.
- 예시: "코드 리뷰 모드로 시작해."
- 작동: MCP 서버에 저장된 전문적인 '코드 리뷰 프롬프트'를 불러와서 적용합니다.
🚀 3. Gemini CLI에서 MCP 사용하기
Gemini CLI는 MCP를 기본적으로 지원하므로 설정이 매우 쉽습니다. 크게 두 가지 방법이 있습니다.
방법 A: 확장 프로그램으로 설치 (추천! 👍)
가장 쉬운 방법입니다. gemini extensions 명령어를 이용해 이미 만들어진 MCP 서버를 설치합니다.
gemini extensions install github
설치 확인:
gemini extensions list
이제 Gemini가 GitHub 도구들을 인식합니다. "내 PR 목록 보여줘"라고 말하면 바로 보여줍니다.
방법 B: 설정 파일 직접 수정 (settings.json)
나만의 커스텀 MCP 서버를 연결할 때 사용합니다.
- 터미널에서
/settings를 입력하거나~/.gemini/settings.json파일을 엽니다. mcpServers항목에 서버 정보를 추가합니다.
"mcpServers": {
"my-database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
이렇게 하면 로컬 데이터베이스가 Gemini와 연결됩니다.
🎮 4. 실전 활용 예시
MCP가 연결되면 여러분의 대화는 이렇게 바뀝니다.
- GitHub 관리: "이 버그를 GitHub 이슈로 등록하고, 나한테 할당해줘."
- 클라우드 배포: "이 프로젝트를 Vercel에 배포하고, 배포 URL을 Slack에 공유해줘."
- 데이터 분석: "MySQL DB에서 어제 로그인한 사용자들의 이메일 주소를 csv 파일로 뽑아서 나한테 메일로 보내줘."
🛡️ 5. 관리 명령어 정리
Gemini CLI 내부에서 MCP를 관리하는 명령어들입니다.
/mcp list(또는/mcp ls): 현재 연결된 모든 MCP 서버와 사용 가능한 도구 목록을 보여줍니다./mcp auth [서버이름]: 인증이 필요한 서버(예: GitHub)에 로그인합니다./mcp refresh: 도구 목록을 새로고침합니다. (새로운 기능을 추가했을 때 유용)
📝 요약
- MCP는 AI와 외부 도구를 연결하는 '표준 USB' 같은 기술입니다.
- Gemini CLI는 이 MCP를 통해 GitHub, 데이터베이스, 슬랙 등을 직접 제어할 수 있습니다.
gemini extensions install명령어로 쉽게 기능을 추가할 수 있습니다.
이제 Gemini CLI는 단순한 코딩 비서가 아닙니다. MCP를 통해 여러분의 모든 업무 도구를 지휘하는 진정한 AI 에이전트로 거듭날 수 있습니다. 지금 바로
/mcp list를 입력해 보세요! 🚀
GitHub 확장을 이용한 이슈 및 PR 관리: GitHub MCP 서버를 설치하여 터미널에서 이슈 생성, PR 리뷰하는 법 🐙✨
개발자라면 하루의 절반은 터미널에서, 나머지 절반은 GitHub 웹사이트에서 보내실 텐데요. 이제 웹 브라우저를 열지 않고도 Gemini CLI 안에서 바로 이슈를 만들고, PR(Pull Request)을 리뷰할 수 있습니다.
이것을 가능하게 해주는 기술이 바로 MCP(Model Context Protocol)입니다. GitHub MCP 서버를 연결하면 Gemini가 여러분의 저장소(Repository)에 직접 접근하여 마치 동료 개발자처럼 작업을 수행합니다.
설치부터 실전 활용법까지, 아주 상세하고 쉽게 알려드립니다.
🛠️ 1단계: 준비물 챙기기 (GitHub 토큰 발급)
Gemini가 여러분 대신 GitHub에 로그인하려면 Personal Access Token (PAT)이라는 '디지털 열쇠'가 필요합니다.
- GitHub 접속: GitHub 웹사이트에 로그인합니다.
- 설정 이동: 우측 상단 프로필 클릭 → Settings → Developer settings → Personal access tokens → Tokens (classic)을 선택합니다.
- 토큰 생성: "Generate new token (classic)"을 클릭합니다.
- 권한 설정 (Scopes):
- Note:
Gemini CLI Key등 식별하기 쉬운 이름을 적습니다. - Select scopes:
repo(저장소 제어),user(사용자 정보 읽기) 항목을 반드시 체크하세요.
- Note:
- 복사: 생성된 토큰(
ghp_...로 시작)을 복사해서 메모장에 잘 보관해 두세요. (다시는 볼 수 없으니 꼭 복사하세요!)
📥 2단계: GitHub 확장 프로그램 설치
Gemini CLI에는 이미 GitHub와 통신할 수 있는 공식 확장 프로그램이 준비되어 있습니다. 터미널에 아래 명령어 한 줄만 입력하면 됩니다.
gemini extensions install https://github.com/github/github-mcp-server
설치 과정에서 권한 승인을 묻는 메시지가 나오면 'y'를 눌러 진행하세요,.
🔑 3단계: 토큰 연결 (인증 설정)
방금 설치한 확장 프로그램에게 아까 복사해 둔 '디지털 열쇠(토큰)'를 쥐여줘야 합니다.
가장 쉬운 방법은 환경 변수(GITHUB_MCP_PAT)를 설정하는 것입니다. 터미널 운영체제에 맞게 아래 명령어를 입력하세요.
Mac/Linux 사용자:
export GITHUB_MCP_PAT="여기에_토큰을_붙여넣으세요"
Windows (PowerShell) 사용자:
$env:GITHUB_MCP_PAT="여기에_토큰을_붙여넣으세요"
💡 팁: 매번 입력하기 귀찮다면 프로젝트 폴더에 .env 파일을 만들고
GITHUB_MCP_PAT=your_token을 저장해두면 Gemini CLI가 자동으로 읽어옵니다.
✅ 4단계: 연결 확인
이제 Gemini CLI를 실행하고 GitHub 도구들이 잘 로드되었는지 확인해 봅시다.
- 터미널에
gemini를 입력해 실행합니다. - 대화창에 다음 명령어를 입력하세요.
/mcp list - 화면에 초록색 불과 함께
github (from github) - Ready라는 메시지가 보이면 성공입니다!.- 목록을 보면
create_issue,create_pull_request,get_file_contents등 약 30~40개의 도구가 준비된 것을 볼 수 있습니다.
- 목록을 보면
🎮 5단계: 실전 활용 (터미널에서 GitHub 조종하기)
이제 Gemini에게 자연어로 명령만 내리면 됩니다. 복잡한 깃 명령어 몰라도 괜찮습니다.
A. 이슈(Issue) 생성 및 관리
버그를 발견했나요? 웹사이트로 이동하지 말고 바로 말하세요.
나: "지금 발견한 로그인 버그에 대해 이슈를 등록해 줘. 제목은 '로그인 시 500 에러 발생'이고, 내용은 '비밀번호에 특수문자가 있으면 서버가 멈춤'이라고 써줘."
Gemini는 create_issue 도구를 사용하여 즉시 이슈를 생성하고, 생성된 이슈 링크를 보여줍니다.
B. PR (Pull Request) 리뷰 및 요약
동료가 올린 PR 내용을 파악하고 싶을 때 아주 유용합니다.
나: "현재 열려 있는 PR 목록을 보여주고, 각 PR의 핵심 변경 사항을 한 줄로 요약해 줘."
또는 특정 PR 번호를 지정해서 상세 리뷰를 요청할 수도 있습니다.
나: "PR #42번의 변경 사항을 분석해서 코드 리뷰를 해줘. 보안 취약점이 있는지 중점적으로 봐줘."
Gemini는 변경된 파일(get_file_contents)과 커밋 내역(get_commit)을 읽어 분석한 뒤 리포트를 작성해
줍니다,.
C. 내 정보 및 저장소 탐색
내가 어떤 작업을 하고 있었는지 기억이 안 날 때 물어보세요.
나: "Github에서 내 계정 정보를 조회해서 내가 최근에 어떤 저장소를 만들었는지 알려줘."
Gemini가 get_me 도구를 사용해 여러분의 계정 상태와 저장소 목록을 조회해 줍니다.
🚀 요약: 이제 이렇게 일하세요!
- 설치:
gemini extensions install ...로 GitHub 확장 설치. - 인증:
GITHUB_MCP_PAT환경 변수에 토큰 저장. - 명령:
- "이 버그 이슈로 등록해 줘."
- "이 PR 리뷰하고 코멘트 달아줘."
- "내 PR 목록 보여줘."
이제 터미널 밖으로 나가지 마세요. Gemini CLI와 GitHub 확장이 여러분의 생산성을 극대화해 줄 것입니다!
데이터베이스와 대화하기 (SQLite/Postgres) 🗄️🗣️
DB 확장 기능을 설치하여 자연어로 SQL 쿼리를 실행하고 데이터를 조회하는 법
안녕하세요! 개발자라면 하루에도 수십 번씩 작성하는 SQL 쿼리(SELECT * FROM... JOIN...), 가끔 복잡한 조인문이나 기억나지 않는
테이블 이름 때문에 검색하느라 시간 낭비한 적 있으시죠?
Gemini CLI를 사용하면 이제 "가장 많이 팔린 상품 5개 보여줘" 라고 말만 하면 됩니다. AI가 알아서 SQL을 짜고, 실행하고, 결과까지 요약해 줍니다.
오늘은 가장 대중적인 SQLite와 PostgreSQL을 Gemini CLI에 연결하여 대화하듯 데이터를 다루는 방법을 아주 쉽고 상세하게 알려드립니다.
🟢 방법 1: 가장 쉬운 시작, SQLite (별도 설치 불필요!)
SQLite는 파일 기반의 가벼운 데이터베이스입니다. Gemini CLI는 이미 파일 읽기 기능과 쉘 실행 기능이 있어서, 별도의 복잡한 확장 프로그램 설치 없이도 바로 사용할 수 있습니다.
준비물
- 컴퓨터에
sqlite3가 설치되어 있어야 합니다. (맥/리눅스는 보통 기본 설치됨, 윈도우는 설치 필요) - 분석할
.db파일 (예:chinook.db같은 샘플 데이터베이스)
사용 방법
- 터미널에서 Gemini 실행: 데이터베이스 파일이 있는 폴더에서
gemini를 실행합니다. - 파일 지정해서 질문하기:
@명령어로 DB 파일을 지정하고 질문하세요.> @chinook.db 이 데이터베이스에 어떤 테이블들이 있는지 알려줘.
작동 원리
Gemini는 내부적으로 다음과 같이 생각하고 행동합니다.
- "사용자가 DB 내용을 궁금해하네?"
- "내가 직접 SQL을 짜서
sqlite3명령어로 실행해야겠다." - 실행:
sqlite3 chinook.db ".tables"명령어를 실행. - 결과: 터미널에 결과를 보여주고, "Album, Artist, Customer 등의 테이블이 있습니다"라고 설명해 줍니다.
실전 팁: 복잡한 질문 던지기
이제 복잡한 SQL을 짤 필요가 없습니다.
나: "Invoice 테이블을 확인해서, 매출이 가장 높은 상위 3명의 고객 이름을 찾아줘."
Gemini는 스스로 JOIN 문을 포함한 복잡한 SQL 쿼리를 작성하여 정답을 가져다줍니다.
🔵 방법 2: 강력한 기능, PostgreSQL (MCP 서버 연결)
PostgreSQL 같은 서버형 데이터베이스는 MCP(Model Context Protocol) 서버를 연결해야 합니다. 이 방식은 Gemini에게 "데이터베이스 접속 권한"을 정식으로 부여하는 방법입니다.
1단계: 설정 파일 열기
터미널에서 설정 편집 명령어를 입력하거나, 직접 파일을 엽니다.
/settings
(또는 ~/.gemini/settings.json 파일을 엽니다.)
2단계: MCP 서버 추가하기
mcpServers 항목에 PostgreSQL 연결 정보를 추가합니다. 여기서는 공식 PostgreSQL MCP 서버를 사용합니다.
settings.json 예시:
{
"mcpServers": {
"my-postgres-db": {
"command": "npx",
"args": [
"-y",
" @modelcontextprotocol/server-postgres",
"postgresql://사용자ID:비밀번호 @localhost:5432/데이터베이스이름"
]
}
}
}
• 주의: postgresql://... 부분에 여러분의 실제 DB 접속 주소(Connection String)를 넣어야
합니다.
3단계: 연결 확인 및 대화
저장 후 Gemini CLI를 재시작하거나 /mcp refresh를 입력하세요. 이제 연결되었습니다!
나: "내 DB에서 users 테이블의 구조를 보여주고, 지난주에 가입한 사용자 수만 세어줘."
Gemini는 MCP 프로토콜을 통해 안전하게 DB에 접속하여 읽기 전용 쿼리를 수행하고 결과를 답변합니다.
🚀 실전 활용: 데이터 분석가처럼 일하기
DB가 연결되면 이제 Gemini는 단순한 코딩 비서가 아니라 데이터 분석가가 됩니다.
📊 1. 스키마 파악 및 ERD 이해
"이 DB의 테이블 관계를 설명해 줘. 어떤 테이블이 외래 키(Foreign Key)로 연결되어 있어?"라고 물으면 복잡한 DB 구조를 한눈에 파악할 수 있게 설명해 줍니다.
🔍 2. 자연어 데이터 조회 (Querying)
- 복잡한 조건: "가격이 100달러 이상이고 재고가 5개 미만인 상품 리스트 뽑아줘."
- 데이터 요약: "지난달 매출 데이터를 국가별로 그룹화해서 보여줘."
🛠️ 3. SQL 쿼리 생성 및 검증
데이터를 직접 조회하지 않고 쿼리만 필요할 때도 유용합니다.
• "이 데이터를 뽑으려는데 쿼리가 너무 느려. 최적화된 SQL 문을 짜줘."
⚠️ 주의사항: 안전제일!
- 쓰기 작업 주의 (
INSERT/UPDATE/DELETE): Gemini는 기본적으로 요청하면 데이터를 수정하거나 삭제하는 SQL도 실행할 수 있습니다. 실수로 데이터를 날리지 않으려면, 읽기 전용(Read-Only) 권한을 가진 DB 계정을 사용하는 것이 가장 안전합니다. - 민감 정보: 비밀번호가 포함된 연결 문자열(
postgres://...)은 실수로 깃허브 등에 올리지 않도록 주의하세요. 환경 변수를 사용하는 것이 좋습니다.
📝 요약
- SQLite: 그냥
gemini실행 후> @파일.db질문 하면 끝! (가장 쉬움) - Postgres:
settings.json에 MCP 서버 설정 추가 후 자연어로 질의. - 효과: 복잡한
JOIN,GROUP BY쿼리를 몰라도 데이터 조회 가능.
이제 답답한 SQL 문법 책은 덮어두고, Gemini와 대화하며 데이터를 마음껏 탐험해 보세요! 🕵️♂️
Google Cloud 연동: Cloud Run 배포 자동화 ☁️🚀
Cloud Run 확장을 설치하여 터미널에서 바로 앱을 배포하는 방법
개발자 여러분, 코드를 다 짜고 나서 배포를 위해 웹 브라우저를 켜고, 구글 클라우드 콘솔에 로그인하고, 버튼을 클릭하는 과정이 귀찮지 않으셨나요?
Gemini CLI는 Cloud Run 확장(Extension)을 통해 이 과정을 완전히 자동화해 줍니다. 이제 터미널에서 "이 앱을 클라우드에 배포해 줘"라고 말만 하면, Gemini가 알아서 빌드하고 배포 URL까지 가져다줍니다.
이 마법 같은 기능을 설정하고 사용하는 방법을 아주 쉽고 상세하게 알려드립니다.
🛠️ 1단계: Cloud Run 확장 프로그램 설치하기
가장 먼저 할 일은 Gemini에게 "Google Cloud와 소통하는 능력"을 부여하는 것입니다. 이를 위해 MCP(Model Context Protocol) 기반의 공식 Cloud Run 확장을 설치해야 합니다.
터미널을 열고 아래 명령어 한 줄만 입력하세요.
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
- 진행 과정: 명령어를 입력하면 설치 허용을 묻는 메시지가 나옵니다. 'y'를 눌러 승인해 주세요.
- 완료: 설치가 끝나면 Gemini는 이제 Cloud Run을 제어할 수 있는 도구들을 갖게 됩니다.
✅ 2단계: 설치 확인 및 도구 점검
설치가 잘 되었는지 확인해 볼까요? Gemini CLI를 실행(gemini)한 후 대화창에 다음 명령어를 입력하세요.
/mcp list
화면에 cloud-run 항목이 초록색 불과 함께 Ready 상태로 표시된다면 성공입니다! 이 확장이 설치되면 Gemini는
다음과 같은 강력한 도구들을 사용할 수 있게 됩니다:
deploy_local_folder: 내 컴퓨터의 폴더를 통째로 배포deploy_container_image: 이미 만들어진 이미지를 배포list_services: 현재 실행 중인 서비스 목록 확인get_service_log: 로그 확인
🚀 3단계: 실전 배포 ("이 폴더 배포해 줘")
이제 진짜 배포를 해봅시다. 복잡한 gcloud 명령어나 YAML 파일을 몰라도 됩니다. 배포하고 싶은 프로젝트 폴더로 이동한 뒤 Gemini에게
자연스럽게 말하세요.
명령 예시:
나: "현재 폴더(@./)에 있는 애플리케이션을 Cloud Run에 배포해 줘. 서비스 이름은 'my-web-app'으로
해줘."
Gemini의 작동 방식:
- 도구 선택: Gemini는 여러분의 요청을 이해하고
deploy_local_folder도구를 선택합니다. - 소스 코드 파악: 현재 폴더의 소스 코드를 읽어 어떤 언어(Node.js, Python, Go 등)인지 파악합니다.
- 권한 요청: "이 폴더를 배포하시겠습니까?"라고 물어봅니다. 승인하면 배포를 시작합니다.
- 배포 완료: 배포가 끝나면 접속 가능한 URL (예:
https://my-web-app-xyz.a.run.app)을 화면에 띄워줍니다.
📊 4단계: 배포 후 관리 (로그 및 상태 확인)
배포가 끝났다고 끝이 아닙니다. 서비스가 잘 돌아가는지 확인하는 것도 터미널에서 해결하세요.
- 서비스 목록 보기:
나: "지금 Cloud Run에 어떤 서비스들이 배포되어 있는지 보여줘." - 로그 확인 (디버깅): 앱에서 에러가 났나요? 콘솔에 들어가지 마세요.
나: "my-web-app 서비스의 최근 로그 10줄을 보여줘."
💡 팁: 인증 및 프로젝트 설정
Cloud Run 확장이 제대로 작동하려면 여러분의 컴퓨터가 Google Cloud에 인증되어 있어야 합니다.
- gcloud 인증: 터미널에서
gcloud auth login을 통해 로그인이 되어 있는지 확인하세요. Cloud Shell을 사용한다면 이미 설정되어 있습니다. - 프로젝트 선택: 배포할 구글 클라우드 프로젝트 ID를 Gemini가 물어볼 수 있습니다. 미리 설정하려면 환경 변수를 사용하거나 대화
중에 알려주면 됩니다.
gcloud config set project [내-프로젝트-ID]
📝 요약
- 설치:
gemini extensions install .../cloud-run-mcp - 확인:
/mcp list로 연결 상태 확인. - 배포: "이 폴더 배포해 줘"라고 말하기.
- 관리: 로그 확인과 서비스 조회도 대화로 해결.
이제 Gemini CLI와 Cloud Run 확장을 통해, "코딩 → 말 한마디 → 배포 완료"라는 초고속 워크플로우를 경험해 보세요!
확장 기능 갤러리 탐방: Gemini CLI에 '초능력'을 더하는 방법 🧩✨
공식 및 커뮤니티 확장 기능(Extensions Gallery) 소개 및 설치 방법
안녕하세요! 스마트폰을 사면 가장 먼저 무엇을 하시나요? 아마 앱 스토어에 들어가서 필요한 앱들을 다운로드하실 겁니다. 기본 기능도 좋지만, 앱을 깔아야 스마트폰의 진가가 발휘되니까요.
Gemini CLI도 마찬가지입니다. 기본 기능만으로도 훌륭하지만, '확장 기능(Extensions)'을 설치하면 단순한 채팅 봇에서 클라우드 배포 전문가, 깃허브 관리자, 심지어 재미있는 페르소나로 변신할 수 있습니다.
오늘은 Gemini CLI의 앱 스토어인 확장 기능 갤러리를 구경하고, 원하는 기능을 터미널에 설치하는 방법을 아주 쉽고 상세하게 알려드립니다.
🏪 1. 확장 기능 갤러리가 무엇인가요?
확장 기능(Extensions)은 누군가 미리 만들어 놓은 도구(MCP 서버), 명령어, 프롬프트, 설정 파일들의 종합 선물 세트입니다.
- 이전에는: GitHub와 연동하려면 설정을 일일이 만지고, MCP 서버를 연결하고, 프롬프트를 직접 짜야 했습니다.
- 이제는:
gemini extensions install명령어 한 줄이면 이 모든 설정이 내 컴퓨터에 자동으로 설치됩니다.
이 보물들이 모여 있는 곳이 바로 확장 기능 갤러리(Extensions Gallery)입니다.
- 공식 갤러리 주소: https://geminicli.com/extensions/browse/
- GitHub 모음집:
Piebald-AI/awesome-gemini-cli같은 저장소에서도 인기 확장 기능을 찾을 수 있습니다.
💎 2. 무엇을 설치할 수 있나요? (추천 확장 기능)
갤러리에는 구글이 직접 만든 공식(Official) 확장 기능과, 전 세계 개발자들이 만든 커뮤니티(Community) 확장 기능이 있습니다.
🏛️ 공식 확장 기능 (Google & Partners)
믿고 쓸 수 있는 고품질 도구들입니다.
- GitHub: 터미널에서 이슈를 만들고, PR을 리뷰하고, 저장소를 관리합니다.
- Cloud Run: 명령어 한 줄로 내 코드를 구글 클라우드에 배포합니다.
- Firebase / Firestore: 데이터베이스를 관리하고 앱을 배포합니다.
- Figma: 디자인 파일을 읽어 코드로 변환하는 데 도움을 줍니다.
🎡 커뮤니티 확장 기능 (Creative & Fun)
기상천외하고 재미있는 기능들이 많습니다.
- Pickle Rick: Gemini를 애니메이션 '릭 앤 모티'의 피클 릭 성격으로 바꿔줍니다. 아주 똑똑하지만 거만한 태도로 코딩을 도와줍니다.
- Computer Use: AI가 내 마우스와 키보드를 직접 제어하게 합니다 (실험적 기능).
- GitLab: 깃허브뿐만 아니라 깃랩 사용자들을 위한 도구입니다.
📥 3. 설치 방법 (gemini extensions install)
마음에 드는 확장 기능을 찾으셨나요? 설치는 정말 간단합니다.
단계 1: 설치 명령어 입력
터미널을 열고 아래 형식으로 명령어를 입력하세요.
gemini extensions install <URL 또는 이름>
예시 1: GitHub 확장 기능 설치하기
gemini extensions install https://github.com/github/github-mcp-server
예시 2: Cloud Run 확장 기능 설치하기
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
단계 2: 권한 승인 (필요시)
설치 과정에서 "이 확장 기능을 설치하시겠습니까?"라고 묻는 메시지가 나오면 y를 눌러 승인해주세요.
단계 3: 환경 변수 설정 (중요! 🔑)
대부분의 강력한 확장 기능은 API 키(비밀번호)가 필요합니다.
- 예를 들어, GitHub 확장을 설치했다면 내 계정에 접근할 수 있는 토큰(PAT)이 필요합니다.
- 확장 기능 설명서에 따라
.env파일이나 환경 변수에 키를 입력해야 작동합니다.- 예:
export GITHUB_MCP_PAT="내_토큰_값"
- 예:
🧰 4. 내 확장 기능 관리하기 (필수 명령어)
설치된 확장 기능을 확인하거나 지우고 싶을 때 쓰는 명령어들입니다.
- 내 확장 기능 목록 보기:
현재 설치된 모든 확장 기능과 상태를 보여줍니다.gemini extensions list - 업데이트하기:
모든 확장 기능을 최신 버전으로 업데이트합니다. 특정 기능만 하려면 뒤에 이름을 붙이세요.gemini extensions update - 삭제하기 (Uninstall):
더 이상 쓰지 않는 확장 기능을 깔끔하게 지웁니다.gemini extensions uninstall <이름>
🚀 요약: 이제 터미널을 쇼핑하세요!
- 구경하기: Gemini CLI Extensions Gallery에 접속합니다.
- 복사하기: 마음에 드는 카드의 'Copy install command' 버튼을 누릅니다.
- 붙여넣기: 터미널에 붙여넣고 엔터! (
gemini extensions install ...) - 사용하기:
/mcp list로 도구가 잘 들어왔는지 확인하고 대화를 시작합니다.
이제 Gemini CLI는 단순한 AI가 아닙니다. 여러분이 원하는 기능을 레고처럼 조립해서 만드는 나만의 슈퍼 AI 에이전트입니다. 지금 바로 갤러리를 방문해 보세요!
나만의 Gemini CLI 확장 기능 만들기: 개발부터 배포까지 완벽 가이드 🛠️🚀
Gemini CLI의 기본 기능도 훌륭하지만, 확장 기능(Extensions)을 직접 만들면 나만의 업무 흐름에 딱 맞는 '맞춤형 AI 도구'를 가질 수 있습니다. 자주 쓰는 프롬프트, 프로젝트 규칙, 그리고 외부 도구(MCP)까지 하나의 패키지로 묶어 배포할 수 있죠.
복잡한 코딩 없이도 설정 파일만으로 강력한 확장 기능을 만드는 방법을 가장 쉽고 상세하게 단계별로 알려드립니다.
🏗️ 1단계: 뼈대 만들기 (Scaffolding)
가장 먼저 확장 기능이 들어갈 폴더와 기본 파일들을 만들어야 합니다. Gemini CLI는 이를 위한 자동화 명령어를 제공합니다.
- 터미널을 열고 확장 기능을 만들고 싶은 위치로 이동합니다.
- 아래 명령어를 입력하세요. (
my-awesome-tool부분은 원하는 이름으로 바꾸세요)gemini extensions new my-awesome-tool
이 명령어를 실행하면 폴더가 생성되고, 그 안에 gemini-extension.json 파일과 기본 디렉터리 구조가 자동으로 만들어집니다. 이것이 확장
기능의 심장입니다.
⚙️ 2단계: 설정 파일 작성 (gemini-extension.json)
생성된 폴더 안의 gemini-extension.json 파일을 열어보세요. 이곳에 확장 기능의 이름, 버전, 그리고 어떤 기능을 포함할지 정의합니다.
기본 구조 예시:
{
"name": "my-awesome-tool",
"version": "1.0.0",
"description": "나만의 생산성 향상 도구 모음입니다.",
"mcpServers": {
"my-server": {
"command": "node",
"args": ["server.js"]
}
},
"contextFileName": "GEMINI.md",
"excludeTools": ["run_shell_command"]
}
mcpServers: 이 확장 기능이 사용할 MCP 서버(외부 도구)를 정의합니다.contextFileName: AI에게 주입할 기본 지침 파일 이름입니다.excludeTools: 보안을 위해 이 확장 기능 사용 시 차단할 도구들을 적습니다 (선택 사항).
🎨 3단계: 기능 채워 넣기
이제 진짜 기능을 추가해 봅시다. 확장 기능은 크게 세 가지 요소를 담을 수 있습니다.
A. 나만의 명령어 만들기 (Custom Commands)
commands/ 폴더 안에 .toml 파일을 만들면 슬래시 명령어(/)가 됩니다.
예시: commands/review.toml
# 설명: /help에 표시될 내용
description = "작성한 코드를 시니어 개발자 관점에서 리뷰합니다."
# 실제 AI에게 전달될 프롬프트
prompt = """
당신은 10년 차 시니어 개발자입니다.
다음 코드를 리뷰하고, 개선할 점을 3가지 포인트로 요약해 주세요:
{{args}}
"""
이렇게 저장하면, 나중에 /review 명령어로 이 프롬프트를 바로 호출할 수 있습니다.
B. AI 기억 심기 (Context)
확장 기능 루트에 GEMINI.md 파일을 만들고 내용을 적으세요. 이 확장 기능을 설치한 사람은 대화를 시작할 때마다 이 내용을 AI가 자동으로
기억하게 됩니다.
예시: GEMINI.md
# 확장 기능 지침
- 항상 친절하고 경어체를 사용하세요.
- 코드를 작성할 때는 주석을 한글로 달아주세요.
- 답변 끝에는 항상 "화이팅!"을 붙여주세요.
C. 외부 도구 연결 (MCP Servers)
만약 Python이나 Node.js로 만든 스크립트를 AI가 실행하게 하고 싶다면, gemini-extension.json의
mcpServers 항목에 해당 스크립트 실행 명령을 적어주면 됩니다.
🧪 4단계: 로컬에서 테스트하기 (link)
확장 기능을 배포하기 전에 내 컴퓨터에서 잘 작동하는지 확인해야겠죠? link 명령어를 사용하면 개발 중인 폴더를 Gemini CLI에 바로 연결할 수
있습니다.
- 터미널에서 확장 기능 폴더(
my-awesome-tool) 안으로 이동합니다. - 아래 명령어를 입력합니다.
gemini extensions link .
이제 Gemini CLI를 실행(gemini)하고 /extensions를 입력해보세요. 방금 만든 확장 기능이 목록에 보일
것입니다. /review 같은 커스텀 명령어도 바로 써볼 수 있습니다. 수정 사항이 생기면 파일을 고치고 다시 gemini를
실행하면 즉시 반영됩니다.
📦 5단계: 배포 및 공유하기 (Git)
테스트가 끝났다면 이제 전 세계에 공유할 차례입니다. Gemini CLI 확장 기능은 Git 저장소 URL을 통해 설치됩니다.
- GitHub(또는 GitLab)에 새 저장소를 만듭니다.
- 작성한 확장 기능 파일들을 모두 업로드(Push)합니다.
- 이제 다른 사람(또는 다른 컴퓨터의 나)에게 설치 명령어를 알려주세요.
설치 명령어:
gemini extensions install https://github.com/내아이디/my-awesome-tool
📝 요약 체크리스트
- 생성:
gemini extensions new [이름] - 작성:
gemini-extension.json,.toml(명령어),GEMINI.md(지침) 편집. - 연결(테스트): 확장 기능 폴더에서
gemini extensions link . - 배포: GitHub에 업로드 후
gemini extensions install [URL]
이제 여러분은 단순한 사용자가 아니라, Gemini CLI의 기능을 직접 설계하는 크리에이터입니다. 멋진 아이디어가 담긴 확장 기능을 만들어 팀원들과 공유해 보세요! 🚀
헤드리스(Headless) 모드 완벽 가이드 🤖💻
UI 없이 스크립트에서 gemini -p "프롬프트"로 실행하는 방법
안녕하세요! 매번 Gemini CLI를 켜서 채팅하듯 대화하는 것이 아니라, 자동화 스크립트나 CI/CD 파이프라인 안에서 AI를 부품처럼 쓰고 싶으신가요?
Gemini CLI의 헤드리스(Headless) 모드가 바로 그 해답입니다. 대화형 화면(UI) 없이 명령어 한 줄로 AI에게 작업을 시키고, 결과를 받아 다른 프로그램에 넘겨줄 수 있습니다. 셸 스크립트, 자동화 도구, 혹은 나만의 AI 도구를 만들 때 필수적인 이 기능을 가장 쉽고 상세하게 알려드립니다.
🧠 1. 헤드리스 모드가 뭔가요?
보통 gemini를 입력하면 대화창이 열리죠? 헤드리스 모드는 이 대화창을 띄우지 않고, 질문(Input)을 던지면 답변(Output)만 딱 뱉고
종료되는 모드입니다.
- 용도: 스크립트 자동화, CI/CD 파이프라인(GitHub Actions 등), 데이터 처리 파이프라인.
- 장점: 사람의 개입 없이 작동하며, 다른 명령어(
grep,git등)와 연결하기 쉽습니다.
🚀 2. 기본 사용법: -p 플래그
가장 기초적인 사용법은 --prompt 또는 짧게 -p 플래그를 사용하는 것입니다.
명령어
gemini -p "머신러닝이 뭐야? 한 문장으로 요약해줘."
결과
머신러닝은 데이터에서 패턴을 학습하여 명시적인 프로그래밍 없이 작업을 수행하는 인공지능의 한 분야입니다.
이렇게 실행하면 Gemini는 답변만 출력하고 즉시 프로그램을 종료합니다.
🔗 3. 입력의 마법: 파이프(Pipe)와 리다이렉션
헤드리스 모드의 진정한 강력함은 리눅스/유닉스의 파이프(|) 와 결합할 때 나옵니다. 파일 내용이나 다른 명령어의 결과를 AI에게 바로 던져줄 수
있습니다.
A. 파이프(|)로 내용 전달하기
echo나 cat 명령어로 출력된 내용을 Gemini의 입력으로 밀어 넣습니다.
# 파일 내용을 읽어서 요약시키기
cat README.md | gemini -p "이 문서를 3줄로 요약해줘"
이렇게 하면 README.md의 내용이 프롬프트에 자동으로 포함되어 전송됩니다.
B. 시스템 정보 전달하기
현재 내 컴퓨터 상황을 분석시킬 수도 있습니다.
# 에러 로그 분석하기
grep "ERROR" /var/log/app.log | tail -n 20 | gemini -p "이 에러 로그를 분석하고 원인을 추측해줘"
시스템의 에러 로그 중 최근 20줄을 뽑아서 Gemini에게 분석을 맡기는 명령어입니다.
📦 4. 출력의 기술: JSON 포맷 활용하기
기본적으로 Gemini는 사람이 읽기 좋은 텍스트를 줍니다. 하지만 프로그램이 결과를 처리하려면 JSON 형식이 훨씬 편합니다.
JSON 출력하기 (--output-format json)
gemini -p "프랑스의 수도는?" --output-format json
결과 (구조화된 데이터)
{
"response": "프랑스의 수도는 파리입니다.",
"stats": {
"models": { ... },
"tools": { ... },
"files": { "totalLinesAdded": 0, ... }
}
}
이렇게 받으면 response 필드만 뽑아서 다른 곳에 쓰거나, 토큰 사용량(stats)을 추적하기 좋습니다.
💡 꿀팁: jq와 함께 쓰기 리눅스의 jq 도구를 쓰면 답변만 깔끔하게 뽑아낼 수 있습니다.
gemini -p "프랑스의 수도는?" --output-format json | jq -r '.response'
이렇게 하면 지저분한 로그 없이 딱 답변 텍스트만 남습니다.
⚡ 5. 고급: 실시간 스트리밍 (stream-json)
오래 걸리는 작업의 경우, 사용자가 마냥 기다리지 않게 진행 상황을 보여주고 싶다면 stream-json을 사용하세요.
gemini -p "복잡한 코드 분석해줘" --output-format stream-json
이 옵션은 AI가 생각하는 과정, 도구 사용(Tool call), 답변 생성 과정을 한 줄씩 실시간 이벤트(JSONL)로 뱉어냅니다. 모니터링 대시보드를 만들 때 유용합니다.
🛡️ 6. 자동 승인 설정 (--yolo)
헤드리스 모드에서 파일 수정이나 쉘 명령어 실행 같은 도구를 쓸 때, "실행할까요? (y/n)"라고 물어보면 스크립트가 멈춰버리겠죠?
이때 --yolo 옵션을 쓰면 모든 질문에 자동으로 Yes를 하고 넘어갑니다.
# 주의: 위험할 수 있으니 샌드박스와 함께 쓰는 것을 추천합니다.
gemini -p "src 폴더의 모든 주석을 삭제해줘" --yolo
이 옵션은 자동화의 핵심이지만, AI가 실수로 파일을 지울 수도 있으니 주의해야 합니다.
🎬 7. 실전 활용 레시피 (복사해서 쓰세요!)
📝 Git 커밋 메시지 자동 생성
내가 수정한 코드(git diff)를 보고 AI가 커밋 메시지를 써주는 스크립트입니다.
git diff --cached | gemini -p "이 변경 사항에 대한 간결한 Git 커밋 메시지를 작성해줘" --output-format json | jq -r '.response'
🐛 코드 리뷰 자동화
특정 파일의 보안 취약점을 점검하여 리포트로 저장합니다.
cat src/auth.py | gemini -p "이 인증 코드에서 보안 취약점을 찾아서 알려줘" > security-report.txt
📋 릴리즈 노트 작성
최근 버전 이후의 커밋 로그를 읽어서 릴리즈 노트를 만듭니다.
git log --oneline v1.0.0..HEAD | gemini -p "이 커밋들을 바탕으로 릴리즈 노트를 작성해줘" > CHANGELOG.md
✅ 요약
- 실행:
gemini -p "할 말"로 UI 없이 실행합니다. - 입력:
|(파이프)를 사용해 파일이나 로그를 AI에게 먹여줍니다. - 출력:
--output-format json으로 기계가 읽기 쉬운 결과를 받습니다. - 자동화:
--yolo로 묻지 않고 실행하게 만듭니다 (조심하세요!).
이제 터미널 스크립트 안에 Gemini의 지능을 심어보세요! 🚀
파이프라인 구축: 표준 입력(Stdin)과 출력(Stdout) 활용 🏗️🔌
cat file.txt | gemini 처럼 리눅스 파이프와 연동하여 자동화하기
안녕하세요! 이제 Gemini CLI를 단순한 채팅 도구가 아니라, 리눅스/유닉스 도구 상자의 강력한 부품으로 사용할 시간입니다.
개발자라면 "작은 도구들을 연결해서 큰 일을 한다"는 유닉스 철학(Unix Philosophy)을 들어보셨을 겁니다. Gemini CLI는 이 철학을 완벽하게 지원합니다. 텍스트를 입력받고(Stdin), 지능적으로 처리한 뒤, 결과를 내보내는(Stdout) 파이프라인의 핵심 부품이 될 수 있습니다.
오늘은 터미널의 파이프(|)를 사용하여 Gemini를 기존 명령어들과 연결하고, 업무를 100% 자동화하는 방법을 가장 쉽고 상세하게 알려드립니다.
🧠 1. 기본 개념: 파이프(|)가 뭔가요?
파이프(|)는 앞쪽 명령어의 결과물(Output)을 뒤쪽 명령어의 입력물(Input)으로
바로 넘겨주는 "연결 통로"입니다.
- 기본 구조:
명령어A | 명령어B - Gemini와 함께:
명령어A | gemini명령어A의 결과가 Gemini에게 "읽을거리"로 전송됩니다.- Gemini는 그것을 읽고 분석하여 답변을 내놓습니다.
이 방식을 사용하면, Gemini CLI는 대화창을 띄우지 않고 헤드리스(Headless) 모드로 조용히 실행된 뒤 결과만 남기고 사라집니다,.
📥 2. 입력의 기술: 데이터 먹여주기 (Stdin)
Gemini에게 파일을 복사-붙여넣기 할 필요가 없습니다. 그냥 "던져" 주면 됩니다.
A. 파일 내용 읽히기 (cat)
가장 기본적인 형태입니다. 파일을 읽어서 Gemini에게 요약을 시켜봅시다.
cat README.md | gemini --prompt "이 문서를 3줄로 요약해줘"
- 작동 원리:
README.md의 내용이 Gemini의 프롬프트에 자동으로 포함됩니다. Gemini는 그 내용을 읽고 요약 명령을 수행합니다,.
B. 명령어 결과 분석하기 (git, grep, ls)
파일뿐만 아니라, 시스템 명령어의 실행 결과도 바로 분석할 수 있습니다.
- Git 변경 사항으로 커밋 메시지 쓰기:
이 명령어는 현재 스테이징된 코드 변경점(git diff --cached | gemini -p "이 변경 사항에 대한 간결한 Git 커밋 메시지를 작성해줘"git diff)을 Gemini에게 보내고, 적절한 커밋 메시지를 받아냅니다. - 에러 로그 분석:
시스템의 에러 로그 중 최근 20줄을 뽑아서 Gemini에게 분석을 맡기는 명령어입니다.grep "ERROR" /var/log/app.log | tail -n 20 | gemini -p "이 에러 로그를 분석하고 원인을 추측해줘"
📤 3. 출력의 기술: 결과 저장하기 (Stdout)
Gemini가 내뱉은 답변을 화면에만 띄우지 말고, 파일로 저장하거나 다른 프로그램으로 넘겨봅시다.
A. 파일로 저장하기 (>)
리다이렉션(>)을 사용하면 답변을 파일로 저장할 수 있습니다.
# 코드 리뷰 결과를 파일로 저장
cat src/auth.py | gemini -p "보안 취약점을 점검해줘" > security_report.txt
이제 security_report.txt 파일에 AI의 분석 결과가 저장됩니다,.
B. 덮어쓰지 않고 이어붙이기 (>>)
기존 파일 끝에 내용을 추가하고 싶다면 >>를 씁니다.
# 진행 상황 로그에 AI의 분석 추가
echo "---- AI 분석 ----" >> daily_log.txt
gemini -p "오늘 업무 요약해줘" >> daily_log.txt
🤖 4. 고급: JSON과 jq로 완벽한 자동화
Gemini의 답변은 기본적으로 사람이 읽기 좋은 줄글입니다. 하지만 스크립트에서 사용하려면 기계가 읽기 좋은 데이터(JSON)가 필요합니다.
이때 --output-format json 옵션과 리눅스 도구 jq를 조합하면 마법 같은 일이
일어납니다,.
단계 1: JSON으로 받기
gemini -p "프랑스의 수도는?" --output-format json
결과:
{
"response": "프랑스의 수도는 파리입니다.",
"stats": { ... }
}
단계 2: jq로 알맹이만 쏙 뽑기
우리는 저 복잡한 JSON 중 "response" 안에 있는 텍스트만 필요합니다.
gemini -p "프랑스의 수도는?" --output-format json | jq -r '.response'
결과:
프랑스의 수도는 파리입니다.
이제 지저분한 로그 없이 딱 원하는 답변만 남았습니다! 이것을 변수에 담으면 다른 프로그램에서 바로 쓸 수 있습니다,.
🎬 5. 실전 레시피: 복사해서 바로 쓰세요!
📝 자동 커밋 스크립트 (git-ai-commit)
내가 수정한 코드(git diff)를 보고 AI가 커밋 메시지를 써주는 스크립트입니다.
MSG=$(git diff --cached | gemini -p "Conventional Commits 규칙에 맞춰서 커밋 메시지 한 줄만 작성해줘" --output-format json | jq -r '.response')
echo "AI가 작성한 메시지: $MSG"
# git commit -m "$MSG"
🐛 코드 자동 주석 달기
모든 파이썬 파일(*.py)을 찾아서 AI에게 독스트링(주석)을 달게 하고, 결과를 별도 파일로 저장합니다.
for file in src/*.py; do
echo "$file 처리 중..."
cat "$file" | gemini -p "이 코드에 대한 상세한 독스트링을 추가해서 코드 전체를 다시 보여줘" > "${file}_documented.py"
done
🛡️ 6. 주의사항: y/n 질문 없애기 (--yolo)
파이프라인 자동화의 가장 큰 적은 "이걸 실행하시겠습니까? (y/n)" 하고 묻는 중간 멈춤입니다. 스크립트가 멈추지 않고 끝까지 달리게 하려면,
--yolo 옵션을 추가하거나 settings.json에서
autoAccept: true를 설정해야 합니다,.
경고: YOLO 모드는 AI가 파일을 삭제하거나 수정하는 것을 묻지 않고 승인하므로, 반드시 Git으로 백업이 된 상태나 샌드박스 환경에서 테스트하세요.
🚀 요약
- 입력(
|):cat file | gemini로 파일이나 로그를 AI에게 먹여줍니다. - 출력(
>):gemini ... > result.txt로 결과를 파일에 저장합니다. - 가공(
jq):gemini ... --output-format json | jq -r '.response'로 순수 답변만 추출해 변수로 씁니다. - 자동화: 스크립트로 묶어서 나만의 AI 도구를 만듭니다.
이제 여러분의 터미널 파이프라인에 Gemini라는 강력한 두뇌를 장착해 보세요! 🚀
JSON 출력으로 다른 프로그램과 연동하기: --output-format json 🤖🔗
구조화된 데이터를 뱉어내게 하여 자동화 스크립트의 부품으로 만드는 방법
안녕하세요! Gemini CLI를 단순히 채팅용으로만 쓰고 계신가요? Gemini CLI의 진짜 힘은 다른 프로그램과 대화할 때 발휘됩니다.
하지만 보통 AI는 사람에게 줄글로 답변하기 때문에, 다른 프로그램이 이 내용을 알아듣게 하려면 복잡한 처리가 필요합니다. 이때 구세주처럼 등장하는 옵션이 바로
--output-format json입니다.
이 옵션을 켜면 Gemini는 사람이 읽기 좋은 글 대신, 컴퓨터가 가장 좋아하는 언어인 JSON 데이터를 내뱉습니다. 이를 이용해 나만의 자동화 도구를 만드는 법을 아주 쉽고 상세하게 알려드립니다.
🧱 1. 기본 개념: 왜 JSON으로 받아야 하나요?
보통 gemini -p "프랑스의 수도는?"라고 물으면 이렇게 대답합니다.
"프랑스의 수도는 파리입니다."
사람이 보기엔 좋지만, 만약 여러분이 "파리"라는 단어만 딱 뽑아서 날씨 API에 넣고 싶다면? "프랑스의 수도는" 같은 말을 일일이 잘라내야 하니 귀찮고 에러도 많이 납니다.
하지만 JSON 모드를 쓰면 Gemini는 이렇게 대답합니다:
{
"response": "프랑스의 수도는 파리입니다.",
"stats": { ... }
}
이제 프로그램은 response 항목만 쏙 뽑아가면 됩니다. 훨씬 깔끔하고 정확하죠?
💻 2. 사용법: 명령어 한 줄이면 끝!
기존 명령어 뒤에 --output-format json만 붙이면 됩니다. 보통 헤드리스 모드(대화창 없는
모드)인 -p 옵션과 함께 씁니다.
gemini -p "안녕, 오늘 기분 어때?" --output-format json
실행하면 터미널에 다음과 같은 구조의 데이터가 출력됩니다:
{
"response": "저는 인공지능이라 감정이 없지만, 도울 준비가 되어 있습니다!",
"stats": {
"models": { ... },
"tools": { ... },
"files": { "totalLinesAdded": 0, "totalLinesRemoved": 0 }
}
}
response: AI의 실제 답변 내용입니다. 우리가 가장 필요한 부분이죠.stats: 토큰을 얼마나 썼는지, 어떤 모델을 썼는지, 도구를 몇 번 호출했는지 보여주는 통계입니다. API 비용 관리에 유용합니다.
🔧 3. 필수 짝꿍: jq 도구 활용하기
JSON 데이터 전체를 눈으로 보는 건 어지럽습니다. 여기서 리눅스의 jq 명령어를 사용하면 알맹이만 쏙 빼낼 수 있습니다. (설치가 안 되어 있다면
brew install jq 또는 sudo apt install jq로 설치하세요.)
알맹이 텍스트만 뽑기 (.response)
gemini -p "사과를 영어로?" --output-format json | jq -r '.response'
|(파이프): Gemini의 출력을jq에게 넘겨줍니다..response: JSON에서response항목만 가져오라는 뜻입니다.-r(raw): 따옴표(")를 제거하고 순수 텍스트만 보여줍니다.
결과:
Apple
이제 지저분한 로그 없이 딱 원하는 답만 얻었습니다!
🎬 4. 실전 활용 레시피 (복사해서 쓰세요!)
이 기능을 활용하면 정말 멋진 자동화 스크립트를 만들 수 있습니다.
📝 레시피 A: Git 커밋 메시지 자동 생성기
git diff로 변경된 코드를 Gemini에게 던져주고, 커밋 메시지를 JSON으로 받아서 깔끔하게 출력하는 명령어입니다.
# 변경 사항을 읽어서 커밋 메시지 추천받기
git diff --cached | gemini -p "이 변경 사항에 대해 간결한 커밋 메시지 하나만 작성해줘" --output-format json | jq -r '.response'
이 한 줄을 git-commit-ai라는 별칭(alias)으로 등록해두면, 코딩 후 명령어 한 번으로 커밋 메시지를 얻을 수 있습니다.
📊 레시피 B: 토큰 사용량 추적하기
답변 내용 말고, 이번 작업에 토큰을 얼마나 썼는지만 뽑아서 기록하고 싶을 때 사용합니다.
# 복잡한 질문 던지기
OUTPUT=$(gemini -p "이 코드를 리팩토링하고 설명해줘" @src/main.py --output-format json)
# 답변은 파일로 저장
echo "$OUTPUT" | jq -r '.response' > refactor_result.md
# 토큰 사용량은 따로 뽑아서 확인
echo "$OUTPUT" | jq '.stats.models[].tokens.total'
이렇게 하면 답변은 답변대로 저장하고, 비용 계산을 위한 토큰 수는 따로 데이터베이스나 엑셀로 보낼 수 있습니다.
🐛 레시피 C: 에러 로그 자동 분석 리포트
로그 파일에서 에러만 뽑아 원인을 분석하고, 그 결과를 JSON 파일로 저장해두는 방법입니다.
grep "ERROR" server.log | tail -n 20 | gemini -p "이 에러들의 원인을 분석해줘" --output-format json > error_report.json
이제 error_report.json 파일을 다른 대시보드 프로그램이 읽어가서 화면에 띄워줄 수 있습니다.
⚡ 5. 심화: 실시간 스트리밍 (stream-json)
만약 답변이 너무 길어서 기다리기 지루하다면, --output-format stream-json을 써보세요.
- 기능: 답변이 완성될 때까지 기다리지 않고, 한 글자 한 글자 생성되는 과정(이벤트)을 실시간 JSON 줄(JSONL)로 뱉어냅니다.
- 용도: 웹사이트나 앱을 만들 때 "AI가 타이핑하는 듯한 효과"를 보여주거나, 진행률 표시바를 만들 때 유용합니다.
✅ 요약
--output-format json: Gemini의 출력을 기계가 읽기 쉬운 데이터로 바꿉니다.jq -r '.response': JSON 덩어리에서 순수 답변 텍스트만 추출하는 마법의 명령어입니다.stats필드: 토큰 사용량이나 도구 실행 횟수 등 통계 정보를 얻을 수 있습니다.
이제 여러분의 쉘 스크립트, 파이썬 코드, CI/CD 파이프라인에 Gemini라는 강력한 두뇌를 부품처럼 끼워 넣어 보세요!
Git Commit 메시지 자동 생성 스크립트 🪄📝
git diff | gemini를 활용해 커밋 메시지를 자동으로 작성하는 쉘 스크립트 만들기
안녕하세요! 개발자 여러분, 코딩은 즐겁지만 "커밋 메시지 작성"은 정말 귀찮지 않으신가요? 매번 "fix bug", "update code"라고 대충 적고 싶지만, 나중을 위해 꾹 참고 상세히 적느라 고생이 많으십니다.
이제 그 귀찮은 일을 Gemini CLI에게 맡겨보세요. 터미널 명령어 한 줄이면, 변경된 코드를 분석해서 완벽한 커밋 메시지를 작성해 줍니다.
오늘은 git diff와 gemini를 파이프(|)로 연결하여 커밋 메시지 자동 생성기를 만드는 법을
아주 쉽고 상세하게 알려드립니다.
🧠 1. 기본 원리: 파이프(|)로 연결하기
이 자동화의 핵심은 리눅스/유닉스의 파이프(|) 기능입니다.
git diff --staged: 내가 지금 커밋하려고 준비해 둔(Staged) 코드 변경 사항을 출력합니다.|(파이프): 앞 명령어의 출력 내용을 뒤 명령어로 넘겨줍니다.gemini -p "...": 넘겨받은 내용을 읽고 프롬프트에 따라 답변을 생성합니다 (헤드리스 모드).
즉, "Git 변경 사항을 Gemini에게 던져주고, 커밋 메시지를 받아내는" 구조입니다.
🛠️ 2. 1단계: 명령어 한 줄로 테스트해보기
먼저 터미널에서 다음 명령어를 입력해 보세요. (단, jq가 설치되어 있어야 가장 깔끔합니다. 없다면
brew install jq 등으로 설치해 주세요.)
git diff --staged | gemini -p "이 변경 사항에 대해 간결한 커밋 메시지를 작성해줘 (Conventional Commits 스타일로)" --output-format json | jq -r '.response'
이 명령어가 하는 일:
git diff --staged: 변경된 코드를 가져옵니다.gemini -p "...": 변경 사항을 읽고 커밋 메시지를 작성합니다.--output-format json: 결과를 기계가 읽기 쉬운 JSON으로 받습니다.jq -r '.response': JSON 중에서 지저분한 로그를 빼고 오직 메시지 내용만 깔끔하게 뽑아냅니다.
🚀 3. 2단계: 나만의 단축 명령어(Alias) 만들기
매번 저 긴 명령어를 칠 수는 없겠죠? 여러분의 쉘 설정 파일(.zshrc 또는 .bashrc)에 등록해서
gcm (Git Commit Message)이라는 짧은 명령어로 만들어봅시다.
- 터미널에서 설정 파일을 엽니다. (예:
nano ~/.zshrc) - 파일 맨 아래에 다음 내용을 복사해서 붙여넣으세요.
# Gemini 자동 커밋 메시지 생성 함수
function gcm() {
# 1. 변경 사항이 있는지 확인
if git diff --cached --quiet; then
echo "❌ 커밋할 변경 사항(Staged changes)이 없습니다."
return 1
fi
echo "🤖 Gemini가 변경 사항을 분석 중입니다..."
# 2. Gemini에게 커밋 메시지 요청
COMMIT_MSG=$(git diff --cached | gemini -p "작성된 코드 변경 사항을 분석하여 'Conventional Commits' 규칙에 따른 간결한 git 커밋 메시지 하나만 작성해 주세요. 설명 없이 메시지만 출력하세요." --output-format json | jq -r '.response')
# 3. 결과 출력 및 확인
echo -e "\n📝 생성된 메시지:\n\033[1;32m$COMMIT_MSG\033[0m\n"
# 4. 사용자에게 커밋 여부 묻기
read -p "이 메시지로 커밋하시겠습니까? (y/n): " confirm
if [[ $confirm == "y" || $confirm == "Y" ]]; then
git commit -m "$COMMIT_MSG"
echo "✅ 커밋 완료!"
else
echo "❌ 커밋 취소됨."
fi
}
- 저장하고 나온 뒤, 설정을 적용합니다:
source ~/.zshrc
🎮 4. 실전 사용: 이제 이렇게 커밋하세요!
이제 모든 준비가 끝났습니다. 코딩을 마친 후 이렇게 해보세요.
- 파일을 스테이징합니다:
git add . - 마법의 명령어를 입력합니다:
gcm
실행 결과 예시:
🤖 Gemini가 변경 사항을 분석 중입니다...
📝 생성된 메시지:
feat(auth): 로그인 페이지 유효성 검사 로직 추가 및 버튼 스타일 수정
이 메시지로 커밋하시겠습니까? (y/n): y
[main a1b2c3d] feat(auth): 로그인 페이지 유효성 검사 로직 추가 및 버튼 스타일 수정
✅ 커밋 완료!
이제 여러분은 커밋 메시지 고민할 시간에 커피를 한 모금 더 마실 수 있습니다! ☕️
🍯 5. 또 다른 방법: 커밋 메시지만 '추천' 받기 (커스텀 명령어)
스크립트가 부담스럽다면, Gemini CLI 내부의 커스텀 명령어 기능을 이용해 대화형으로 추천만 받을 수도 있습니다.
~/.gemini/commands/git/commit.toml파일을 만듭니다.- 아래 내용을 붙여넣으세요.
description = "현재 스테이징된 변경 사항으로 커밋 메시지를 제안합니다."
prompt = """
다음 git diff 내용을 바탕으로 Conventional Commits 규칙에 맞는 커밋 메시지를 3개 제안해 주세요:
```diff
!{git diff --staged}
"""
- 이제 터미널에서
gemini실행 후/git:commit이라고 입력하면, Gemini가 변경 사항을 읽고 메시지 후보들을 추천해 줍니다.
📝 요약
- 핵심:
git diff의 출력을 파이프(|)로 Gemini에게 넘깁니다. - 포맷:
--output-format json과jq를 쓰면 메시지 텍스트만 깔끔하게 얻을 수 있습니다. - 자동화: 쉘 함수(
gcm)로 만들면 분석 → 메시지 생성 → 커밋까지 한 번에 해결됩니다.
이제 "커밋 메시지 뭘로 쓰지?" 하는 고민에서 완전히 해방되세요! 🚀
CI/CD 파이프라인에 Gemini CLI 심기 🏭🤖
GitHub Actions 등에서 코드 리뷰나 릴리즈 노트를 자동 생성하는 법
안녕하세요! 이제 Gemini CLI를 내 컴퓨터(로컬)에서만 쓰는 단계를 넘어, 클라우드 상에서 24시간 일하는 자동화 시스템(CI/CD)으로 확장할 시간입니다.
여러분이 자고 있을 때도 AI가 코드를 리뷰하고, 배포 시점에 맞춰 멋진 릴리즈 노트를 작성해 준다면 얼마나 편할까요? Gemini CLI는 헤드리스 모드(Headless Mode)를 통해 GitHub Actions 같은 CI/CD 도구와 완벽하게 결합할 수 있습니다.
가장 대표적인 GitHub Actions를 예로 들어, 두 가지 방법(공식 액션 사용 vs 직접 스크립트 작성)을 아주 쉽고 상세하게 알려드립니다.
🔑 0. 준비물: 디지털 열쇠 (API Key)
가장 먼저 Gemini가 작동할 수 있도록 API 키를 GitHub 저장소에 안전하게 숨겨둬야 합니다.
- API 키 발급: Google AI Studio에서 키를 발급받습니다.
- GitHub에 저장:
- GitHub 저장소 접속 -> Settings -> Secrets and variables -> Actions -> New repository secret.
- Name:
GEMINI_API_KEY - Value: (발급받은 키 붙여넣기)
- 저장(Add secret) 클릭!
🅰️ 방법 1: 가장 쉬운 길 (공식 GitHub Action 사용) 🌟
용도: 이슈 자동 분류, PR 코드 리뷰
구글은 GitHub Actions를 위해 미리 만들어진 공식 도구(google-github-actions/run-gemini-cli)를 제공합니다.
복잡한 스크립트를 짤 필요 없이 설정 파일(YAML)만 복사하면 끝납니다.
따라 하기: PR 자동 리뷰 봇 만들기
프로젝트 폴더에 .github/workflows/gemini-review.yml 파일을 만들고 아래 내용을 붙여넣으세요.
name: Gemini Code Review
on:
pull_request:
types: [opened, synchronize] # PR이 열리거나 수정될 때 실행
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write # PR에 댓글을 달아야 하므로 권한 필요
steps:
- uses: actions/checkout@v4
- name: Run Gemini CLI Action
uses: google-github-actions/run-gemini-cli@v0 # 공식 액션 사용
with:
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
command: "review_pr" # PR을 리뷰하라는 명령
작동 방식:
- 누군가 PR(Pull Request)을 올립니다.
- Gemini가 변경된 코드를 분석합니다.
- 코드 품질, 스타일, 정확성 등을 체크하여 PR에 자동으로 댓글(리뷰)을 달아줍니다,.
🅱️ 방법 2: 나만의 자동화 (직접 스크립트 짜기) 🛠️
용도: 릴리즈 노트 생성, 커스텀 리포트, 로그 분석
공식 액션보다 더 자유롭게, 내가 원하는 명령을 내리고 싶다면 헤드리스 모드(-p)를 사용해 직접 스크립트를 짭니다.
Gemini CLI를 npm으로 설치하고 명령어를 실행하는 방식입니다.
시나리오: "릴리즈 노트" 자동 생성기 만들기
배포할 때마다 "이번 버전에 뭐 바뀌었지?" 하고 커밋 내역 뒤지는 건 이제 그만!
.github/workflows/release-notes.yml 파일을 만듭니다.
name: Generate Release Notes
on:
push:
tags:
- 'v*' # v1.0.0 같은 태그가 달리면 실행
jobs:
generate-notes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # 전체 커밋 로그를 가져오기 위해 필수
# 1. Node.js 설치
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
# 2. Gemini CLI 설치
- name: Install Gemini CLI
run: npm install -g @google/gemini-cli
# 3. 릴리즈 노트 생성 (핵심!)
- name: Generate Notes with Gemini
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
# 최근 태그 사이의 커밋 로그를 가져와서 Gemini에게 넘김
git log --oneline $(git describe --tags --abbrev=0 @^)..@ | \
gemini -p "이 커밋 로그들을 바탕으로 멋진 릴리즈 노트를 작성해줘. 기능 추가, 버그 수정으로 분류해서 마크다운 형식으로 줘." \
> RELEASE_NOTES.md
# 4. 결과 확인 (또는 파일로 저장하여 GitHub Release에 업로드)
- name: Show Notes
run: cat RELEASE_NOTES.md
작동 원리 (파이프라인 활용):
git log ...: 변경된 커밋 내역을 가져옵니다.|(파이프): 커밋 내역을 Gemini에게 던져줍니다.gemini -p "...": Gemini가 내용을 읽고 릴리즈 노트를 작성합니다.> RELEASE_NOTES.md: 결과를 파일로 저장합니다.
🛡️ 주의사항 및 꿀팁
- 비용 관리: Gemini CLI는 개인 계정 사용 시 하루 1,000회 무료입니다. 하지만 팀 단위로 과도하게 CI/CD를 돌리면 한도에 걸릴 수 있으니 주의하세요.
- 보안: API 키는 절대 코드(yml 파일) 안에 직접 적지 마세요. 반드시
${{ secrets.GEMINI_API_KEY }}방식을 사용해야 합니다. - JSON 출력 활용: 스크립트에서 Gemini의 답변을 더 정교하게 처리하고 싶다면
--output-format json옵션을 사용하세요,.
🚀 요약
- API 키를 발급받아 GitHub Secrets에 저장합니다.
- 코드 리뷰가 필요하면
google-github-actions/run-gemini-cli공식 액션을 씁니다. - 릴리즈 노트나 커스텀 작업이 필요하면
npm install로 CLI를 설치하고git log | gemini -p "..."형태로 파이프라인을 구축합니다.
이제 여러분의 GitHub 저장소에 지치지 않는 AI 직원을 고용해 보세요! 🤖💼
CI/CD 파이프라인에 Gemini CLI 심기 🏭🤖
GitHub Actions 등에서 코드 리뷰나 릴리즈 노트를 자동 생성하는 법
안녕하세요! 이제 Gemini CLI를 내 컴퓨터(로컬)에서만 쓰는 단계를 넘어, 클라우드 상에서 24시간 일하는 자동화 시스템(CI/CD)으로 확장할 시간입니다.
여러분이 자고 있을 때도 AI가 코드를 리뷰하고, 배포 시점에 맞춰 멋진 릴리즈 노트를 작성해 준다면 얼마나 편할까요? Gemini CLI는 헤드리스 모드(Headless Mode)를 통해 GitHub Actions 같은 CI/CD 도구와 완벽하게 결합할 수 있습니다.
가장 대표적인 GitHub Actions를 예로 들어, 두 가지 방법(공식 액션 사용 vs 직접 스크립트 작성)을 아주 쉽고 상세하게 알려드립니다.
🔑 0. 준비물: 디지털 열쇠 (API Key)
가장 먼저 Gemini가 작동할 수 있도록 API 키를 GitHub 저장소에 안전하게 숨겨둬야 합니다.
- API 키 발급: Google AI Studio에서 키를 발급받습니다.
- GitHub에 저장:
- GitHub 저장소 접속 -> Settings -> Secrets and variables -> Actions -> New repository secret.
- Name:
GEMINI_API_KEY - Value: (발급받은 키 붙여넣기)
- 저장(Add secret) 클릭!
🅰️ 방법 1: 가장 쉬운 길 (공식 GitHub Action 사용) 🌟
용도: 이슈 자동 분류, PR 코드 리뷰
구글은 GitHub Actions를 위해 미리 만들어진 공식 도구(google-github-actions/run-gemini-cli)를 제공합니다.
복잡한 스크립트를 짤 필요 없이 설정 파일(YAML)만 복사하면 끝납니다.
따라 하기: PR 자동 리뷰 봇 만들기
프로젝트 폴더에 .github/workflows/gemini-review.yml 파일을 만들고 아래 내용을 붙여넣으세요.
name: Gemini Code Review
on:
pull_request:
types: [opened, synchronize] # PR이 열리거나 수정될 때 실행
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write # PR에 댓글을 달아야 하므로 권한 필요
steps:
- uses: actions/checkout@v4
- name: Run Gemini CLI Action
uses: google-github-actions/run-gemini-cli@v0 # 공식 액션 사용
with:
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
command: "review_pr" # PR을 리뷰하라는 명령
작동 방식:
- 누군가 PR(Pull Request)을 올립니다.
- Gemini가 변경된 코드를 분석합니다.
- 코드 품질, 스타일, 정확성 등을 체크하여 PR에 자동으로 댓글(리뷰)을 달아줍니다,.
🅱️ 방법 2: 나만의 자동화 (직접 스크립트 짜기) 🛠️
용도: 릴리즈 노트 생성, 커스텀 리포트, 로그 분석
공식 액션보다 더 자유롭게, 내가 원하는 명령을 내리고 싶다면 헤드리스 모드(-p)를 사용해 직접 스크립트를 짭니다.
Gemini CLI를 npm으로 설치하고 명령어를 실행하는 방식입니다.
시나리오: "릴리즈 노트" 자동 생성기 만들기
배포할 때마다 "이번 버전에 뭐 바뀌었지?" 하고 커밋 내역 뒤지는 건 이제 그만!
.github/workflows/release-notes.yml 파일을 만듭니다.
name: Generate Release Notes
on:
push:
tags:
- 'v*' # v1.0.0 같은 태그가 달리면 실행
jobs:
generate-notes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # 전체 커밋 로그를 가져오기 위해 필수
# 1. Node.js 설치
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
# 2. Gemini CLI 설치
- name: Install Gemini CLI
run: npm install -g @google/gemini-cli
# 3. 릴리즈 노트 생성 (핵심!)
- name: Generate Notes with Gemini
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
# 최근 태그 사이의 커밋 로그를 가져와서 Gemini에게 넘김
git log --oneline $(git describe --tags --abbrev=0 @^)..@ | \
gemini -p "이 커밋 로그들을 바탕으로 멋진 릴리즈 노트를 작성해줘. 기능 추가, 버그 수정으로 분류해서 마크다운 형식으로 줘." \
> RELEASE_NOTES.md
# 4. 결과 확인 (또는 파일로 저장하여 GitHub Release에 업로드)
- name: Show Notes
run: cat RELEASE_NOTES.md
작동 원리 (파이프라인 활용):
git log ...: 변경된 커밋 내역을 가져옵니다.|(파이프): 커밋 내역을 Gemini에게 던져줍니다.gemini -p "...": Gemini가 내용을 읽고 릴리즈 노트를 작성합니다.> RELEASE_NOTES.md: 결과를 파일로 저장합니다.
🛡️ 주의사항 및 꿀팁
- 비용 관리: Gemini CLI는 개인 계정 사용 시 하루 1,000회 무료입니다. 하지만 팀 단위로 과도하게 CI/CD를 돌리면 한도에 걸릴 수 있으니 주의하세요.
- 보안: API 키는 절대 코드(yml 파일) 안에 직접 적지 마세요. 반드시
${{ secrets.GEMINI_API_KEY }}방식을 사용해야 합니다. - JSON 출력 활용: 스크립트에서 Gemini의 답변을 더 정교하게 처리하고 싶다면
--output-format json옵션을 사용하세요,.
🚀 요약
- API 키를 발급받아 GitHub Secrets에 저장합니다.
- 코드 리뷰가 필요하면
google-github-actions/run-gemini-cli공식 액션을 씁니다. - 릴리즈 노트나 커스텀 작업이 필요하면
npm install로 CLI를 설치하고git log | gemini -p "..."형태로 파이프라인을 구축합니다.
이제 여러분의 GitHub 저장소에 지치지 않는 AI 직원을 고용해 보세요! 🤖💼
Docker 샌드박스 환경 구축: 내 컴퓨터를 지키는 안전한 코딩 🛡️🐳
도구 실행을 안전하게 격리된 컨테이너 환경에서 수행하도록 설정하기
안녕하세요! Gemini CLI에게 "이 프로젝트 빌드해 줘"라거나 "임시 파일을 정리해 줘"라고 명령할 때, 혹시 등골이 서늘했던 적 없으신가요?
"혹시 AI가 실수로 내 중요 문서를 지우면 어떡하지?" "이상한 패키지를 설치해서 내 컴퓨터 설정이 꼬이면 어쩌지?"
이런 걱정을 완벽하게 해결해 주는 기능이 바로 샌드박스(Sandbox)입니다. 아이들이 모래 놀이터(Sandbox) 안에서만 놀면 옷이 더러워지지 않는 것처럼, AI를 격리된 컨테이너(Container) 안에 가둬두고 그 안에서만 뛰놀게 하는 기술입니다.
내 컴퓨터(Host)를 100% 안전하게 보호하면서 AI의 능력을 마음껏 활용하는 방법을 아주 쉽고 상세하게 알려드립니다.
🧱 1. 준비물: Docker 설치하기
샌드박스 기능을 쓰려면 가상의 놀이터를 만들어줄 도구가 필요합니다. 바로 Docker(도커)입니다. (혹은 Podman도 가능합니다.)
- Docker Desktop 설치: 아직 없다면 Docker 공식 홈페이지에서 다운로드하여 설치하세요.
- 실행 확인: 설치 후 Docker가 실행 중인지 확인해 주세요. (터미널에
docker --version을 입력했을 때 버전이 나오면 OK!)
⚙️ 2. 샌드박스 켜기 (두 가지 방법)
Docker가 준비되었다면 이제 Gemini CLI에게 "위험한 건 저 안에서 해!"라고 알려줄 차례입니다.
방법 A: 설정 파일로 영구 적용하기 (추천! 👍)
한 번 설정해두면 매번 신경 쓸 필요가 없습니다.
- 터미널에서 Gemini CLI를 실행하고
/settings명령어를 입력합니다. - 설정 편집기에서
sandbox항목을 찾습니다. - 기본값(보통
false또는null)을 "docker"로 변경합니다.
settings.json 예시:
{
"sandbox": "docker"
}
"docker"대신"podman"을 사용할 수도 있습니다.- 저장하면 즉시 적용됩니다.
방법 B: 실행할 때마다 켜기 (일회성)
특정 작업만 위험할 것 같을 때 사용합니다. 실행할 때 --sandbox 플래그를 붙여주세요.
gemini --sandbox
이렇게 실행하면 이번 세션 동안 모든 쉘 명령어는 컨테이너 안에서 실행됩니다.
🛡️ 3. 무엇이 달라지나요? (작동 원리)
샌드박스가 켜지면 Gemini CLI는 run_shell_command 같은 도구를 실행할 때 다음과 같이 행동합니다.
- 컨테이너 생성: 눈에 보이지 않는 작은 가상 컴퓨터(Docker Container)를 순식간에 만듭니다.
- 명령 실행: 여러분이 시킨 명령(
npm install,ls -la,rm temp.txt등)을 내 컴퓨터가 아닌, 그 가상 컴퓨터 안에서 실행합니다. - 결과 반환: 실행 결과만 쏙 뽑아서 여러분에게 보여줍니다.
- 보호 효과: 만약 AI가 실수로
rm -rf /(모든 파일 삭제) 같은 무시무시한 명령을 내려도, 가상 컴퓨터만 삭제될 뿐 여러분의 실제 컴퓨터는 털끝 하나 다치지 않습니다.
⚠️ 주의: 파일 수정 도구(write_file)의 경우, 여러분이 작업 중인 프로젝트 폴더는 컨테이너와
연결(Mount)되어 있으므로 파일 내용은 바뀔 수 있습니다. 하지만 시스템 설정이나 외부 파일은 건드리지 못합니다.
🧪 4. 잘 적용됐는지 확인해 보기
진짜 격리되었는지 테스트해 볼까요?
- 샌드박스 모드로 Gemini CLI를 실행합니다.
- 터미널 모드(
!)로 들어가거나 AI에게 다음 명령을 시켜보세요.
> !uname -a
또는
> !cat /etc/os-release
- 샌드박스 미적용 시: 여러분의 실제 OS 정보(예: macOS, Windows)가 나옵니다.
- 샌드박스 적용 시:
Linux또는Debian/Alpine같은 낯선 리눅스 이름이 나옵니다. 성공입니다! AI는 지금 딴 세상에 갇혀 있습니다.
🚀 5. YOLO 모드와 환상의 짝꿍
지난번에 배운 YOLO 모드(자동 승인) 기억하시나요? YOLO 모드는 편하지만 위험해서 망설여졌죠?
샌드박스 + YOLO 조합은 최강입니다.
gemini --yolo --sandbox
이렇게 하면, "묻지 말고 실행해(YOLO)"라고 하면서도 "단, 사고 쳐도 내 컴퓨터는 안전해(Sandbox)"라는 안전장치가 걸립니다. 이제 마음 놓고 AI에게 복잡한 설치나 빌드 작업을 맡겨보세요!
Gemini CLI vs Claude Code: 개발자의 선택은? 🤖🥊
가격, 성능, 컨텍스트 윈도우, 자율성 완벽 비교 분석
안녕하세요! 요즘 개발자들 사이에서 가장 뜨거운 논쟁 주제 중 하나는 바로 "터미널에서 어떤 AI를 쓸 것인가?"입니다.
구글의 야심작 Gemini CLI와 엔스로픽(Anthropic)의 Claude Code가 그 주인공입니다. 둘 다 "터미널 안의 AI 비서"를 표방하지만, 성격은 완전히 다릅니다.
여러분의 지갑 사정, 코딩 스타일, 프로젝트 규모에 딱 맞는 도구를 찾을 수 있도록 가장 쉽고 상세하게 비교해 드립니다.
💰 1. 가격 (Price): 압도적인 Gemini의 승리
가장 먼저 고려해야 할 것은 비용입니다. 여기서 승자는 명확합니다.
- Gemini CLI (Google): 💸 무료 (사실상)
- 개인 구글 계정만 있으면 하루 1,000회 요청까지 무료입니다.
- 분당 60회 요청이 가능하므로, 개인 개발자가 하루 종일 코딩해도 한도를 넘기기 힘듭니다.
- Gemini 3 Pro 같은 최신 모델도 무료 티어에서 사용할 수 있다는 점은 엄청난 매력입니다.
- Claude Code (Anthropic): 💳 유료 (종량제/구독)
- 별도의 무료 티어가 거의 없습니다. 사용하려면 Claude Pro($20/월) 이상의 구독이나 API 키가 필요합니다.
- 성능이 좋은 모델(Claude 3.5 Sonnet/Opus)을 쓰면 비용이 빠르게 증가합니다. 일부 헤비 유저들은 하루에 50 100까지 쓴다는 보고도 있습니다.
🏆 승자: Gemini CLI (지갑을 지키고 싶다면 Gemini부터 시작하세요.)
🧠 2. 컨텍스트 윈도우 (기억력): Gemini의 독무대
"AI가 내 프로젝트 전체 코드를 다 읽고 이해할 수 있을까?" 이것을 결정하는 것이 컨텍스트 윈도우입니다.
- Gemini CLI: 📚 100만 ~ 200만 토큰
- 약 100만 토큰의 거대한 컨텍스트 윈도우를 기본으로 제공합니다.
- 수십 개의 파일, 긴 문서, 복잡한 라이브러리 코드를 한 번에 밀어 넣어도 다 기억합니다.
- "이 레포지토리 전체를 읽고 분석해 줘" 같은 작업에 최적화되어 있습니다.
- Claude Code: 📖 약 20만 토큰
- 약 20만 토큰 수준입니다.
- 물론 20만 토큰도 적은 양은 아니지만, 거대한 레거시 프로젝트 전체를 한 번에 이해시키기에는 부족할 수 있습니다. 필요한 파일만 골라서 먹여주는 요령이 필요합니다.
🏆 승자: Gemini CLI (대규모 프로젝트 분석이나 "전체 코드 읽기"는 Gemini가 압도적입니다.)
🎓 3. 성능과 자율성 (지능): "시니어" Claude vs "성실한 주니어" Gemini
여기서 두 도구의 성격이 갈립니다. 누가 더 똑똑하게 코드를 짤까요?
- Claude Code: 🧑💻 "시니어 개발자"
- 추론 능력 최강: 복잡한 리팩토링이나 아키텍처 설계를 시키면 놀라울 정도로 잘 해냅니다.
- 자율성 (Autonomy): "이 기능 구현해 줘"라고 한마디만 하면, 알아서 파일을 찾고, 수정하고, 테스트하고, 커밋까지 하려는 경향이 강합니다. 사람의 개입이 적어도 됩니다.
- 코드 품질: 생성된 코드의 결함이 적고 깔끔하다는 평이 많습니다.
- Gemini CLI: 👶 "빠르고 성실한 주니어 개발자"
- ReAct 루프: 계획을 세우고 도구를 사용하며 열심히 일하지만, 가끔 엉뚱한 방향으로 가거나 사람의 가이드가 필요할 때가 있습니다.
- 최신 정보: Google Search가 내장되어 있어, 최신 라이브러리 사용법이나 에러 로그를 실시간으로 검색해서 해결책을 찾습니다. 이건 Claude가 못 하는 강력한 무기입니다.
- Gemini 3: 최근 업데이트된 Gemini 3 모델은 추론 능력이 비약적으로 상승하여 격차를 줄이고 있습니다.
🏆 승자: Claude Code (복잡한 문제 해결과 자율성은 Claude가 한 수 위입니다. 단, 최신 정보 검색은 Gemini가 이깁니다.)
🛠️ 4. 확장성과 생태계
- Gemini CLI: 🔓 오픈소스 & 커스텀
- 완전 오픈소스 (Apache 2.0): 코드를 뜯어보거나 내 입맛대로 개조할 수 있습니다.
- 확장 기능: GitHub, Cloud Run, Firebase 등 구글 생태계와 강력하게 결합됩니다.
- 헤드리스 모드: 스크립트에 넣어 자동화하기 좋습니다.
- Claude Code: 🔒 완성된 제품
- 터미널 UI가 매우 세련되고 사용하기 편리하게 다듬어져 있습니다.
- 하지만 오픈소스가 아니며, 커스터마이징에 제약이 있을 수 있습니다.
📊 한눈에 보는 비교표
| 특징 | Gemini CLI | Claude Code |
|---|---|---|
| 비용 | 무료 (일 1,000회) | 유료 (사용량 비례) |
| 기억력 (Context) | 100만+ 토큰 (초대형) | ~20만 토큰 |
| 성격 | 오픈소스, 검색 연동형 | 완성형 에이전트 |
| 코드 품질 | 우수 (사람의 검토 필요) | 최상 (시니어급) |
| 자율성 | 중간 (확인 과정 많음) | 높음 (알아서 척척) |
| 검색 능력 | Google Search 내장 | 제한적 |
| 추천 대상 | 개인, 학생, 오픈소스 개발자 | 기업, 시니어, 복잡한 설계 |
✅ 결론: 무엇을 선택해야 할까요?
1. 이런 분들은 [Gemini CLI]를 선택하세요!
- 💰 "돈 내기는 싫어!" 무료로 최고 성능의 AI를 쓰고 싶은 분.
- 📚 "코드가 너무 많아." 거대한 레거시 코드를 분석하거나 문서를 뒤져야 하는 분.
- 🌐 "최신 라이브러리 써야 해." 구글 검색을 통해 실시간 정보를 반영한 코딩이 필요한 분.
- 🛠️ "내 맘대로 뜯어고칠래." 오픈소스를 선호하고 커스텀 명령어를 만들고 싶은 분.
2. 이런 분들은 [Claude Code]를 선택하세요!
- 🧠 "돈은 상관없어, 최고의 성능을 줘." 복잡한 리팩토링이나 설계를 맡겨야 하는 분.
- ⏩ "귀찮게 묻지 말고 알아서 해." AI에게 일을 던져놓고 딴짓(?)을 하고 싶은 분.
- 🏢 "실수하면 안 돼." 엔터프라이즈급의 안정적이고 높은 코드 품질이 필요한 분.
💡 고수들의 꿀팁: 하이브리드 전략 많은 개발자가 둘 다 씁니다.
- Gemini CLI로 방대한 문서를 읽고, 프로젝트 구조를 파악하고, 최신 정보를 검색합니다 (무료 & 대용량).
- 그 정보를 바탕으로 Claude Code에게 핵심 로직 구현이나 어려운 리팩토링을 맡깁니다 (고성능).
지금 바로 터미널을 열고 무료인 gemini부터 설치해 보세요. 그리고 한계가 느껴질 때 Claude를 검토해도 늦지 않습니다! 😉
OpenAI Codex CLI vs Gemini CLI: 개발자를 위한 완벽 비교 가이드 🤖⚔️
ChatGPT 구독자와 무료 사용자 관점에서의 승자는?
안녕하세요! 개발자 여러분. 터미널 기반 AI 코딩 도구의 세계에 오신 것을 환영합니다. 요즘 "ChatGPT를 구독 중인데 Codex CLI를 쓸까, 아니면 무료인 Gemini CLI를 쓸까?" 고민하는 분들이 많습니다.
결론부터 말씀드리면, 지갑 사정과 작업 스타일에 따라 정답이 완전히 다릅니다. 이 글 하나로 여러분의 고민을 깔끔하게 해결해 드리겠습니다.
1. 💸 무료 사용자 (Zero Budget)라면?
🏆 압도적 승자: Gemini CLI
지갑을 열고 싶지 않다면 고민할 필요가 없습니다. Gemini CLI가 유일하고도 강력한 선택지입니다.
- 진짜 무료: 개인 구글 계정만 있으면 하루 1,000회 요청까지 완전 무료입니다.
- 하루 1,000회면 24시간 내내 코딩해도 다 쓰기 힘든 양입니다.
- 최신 모델 사용: 무료임에도 구글의 최신 모델인 Gemini 2.5 Pro / Gemini 3 (Preview)를 사용할 수 있습니다.
- 거대한 기억력 (Context Window): 무료 버전에서도 100만 토큰을 제공합니다. 이는 책 수십 권 분량의 코드를 한 번에 기억할 수 있다는 뜻입니다. 웬만한 대형 프로젝트 전체를 AI에게 읽힐 수 있습니다.
💡 요약: 무료 사용자는 무조건 Gemini CLI를 설치하세요. 경쟁자가 없습니다.
2. 💳 ChatGPT 구독자라면? (Plus/Pro 사용자)
🤔 선택의 갈림길: "속도와 생성" vs "분석과 검색"
이미 매달 $20(ChatGPT Plus)를 내고 있다면 OpenAI Codex CLI를 추가 비용 없이 쓸 수 있습니다. 이때는 두 도구의 성격을 보고 골라야 합니다.
🅰️ OpenAI Codex CLI (GPT-5-Codex)
"빠르고 똑똑한 건축가"
- Vibe Coding (직관적 코딩): "이런 앱 만들어줘"라고 대충 말해도, 찰떡같이 알아듣고 UI까지 고려해서 빠르게 뼈대를 만들어줍니다. 신규 프로젝트나 프로토타입을 만들 때 최강입니다.
- 3가지 운전 모드:
- Suggest: AI가 제안하고 내가 승인 (안전).
- Auto-Edit: 파일 수정은 자동, 명령어 실행만 승인 (빠름).
- Full Auto: "알아서 다 해" (완전 자율).
- CI/CD 통합: GitHub Actions 같은 배포 파이프라인에 넣어서 자동화하기가 매우 좋습니다.
🅱️ Gemini CLI (Google Gemini)
"기억력 좋고 검색 잘하는 사서"
- 초대형 컨텍스트 (1M+ 토큰): ChatGPT도 컨텍스트가 크지만, Gemini는 프로젝트 전체 파일을 통째로 밀어 넣고 "여기서 버그 찾아줘"라고 할 때 압도적입니다.
- Google Search 내장: 코딩하다 막히면 AI가 실시간으로 구글 검색을 해서 최신 라이브러리 문서를 찾아보고 답변해줍니다. Codex는 학습된 지식에 의존하는 경향이 더 큽니다.
- 오픈소스: 도구 자체가 오픈소스라 내 입맛대로 개조하거나 확장하기 좋습니다.
🥊 한눈에 보는 상세 비교표
| 특징 | Gemini CLI (Google) | OpenAI Codex CLI (OpenAI) |
|---|---|---|
| 비용 | 무료 (일 1,000회) | 유료 (ChatGPT Plus 구독 필요) |
| 핵심 모델 | Gemini 2.5/3 Pro & Flash | GPT-5-Codex / o1 / o3-mini |
| 기억력 (Context) | 100만 ~ 200만 토큰 (압도적) | 약 128k ~ 400k 토큰 |
| 강점 | 대규모 코드 분석, 구글 검색 연동 | 초기 개발(Prototyping), CI/CD 연동 |
| 자율성 | 중간 (확인 절차 많음) | 높음 (Full Auto 모드 지원) |
| 입력 방식 | 텍스트 + 이미지 + 비디오 + 오디오 | 텍스트 + 이미지 (스크린샷 등) |
| 설치 편의성 | 쉬움 (npm install) | 쉬움 (npm install) |
🚀 결론: 당신의 선택은?
1. "나는 돈 쓰기 싫고, 기존 코드를 분석해야 해" 👉 Gemini CLI
기존에 짜 둔 코드가 많고, 이걸 AI에게 다 읽혀서 리팩토링하거나 버그를 찾고 싶다면 100만 토큰의 Gemini가 답입니다. 게다가 무료니까요.
2. "나는 ChatGPT 구독 중이고, 새 기능을 빨리 짜고 싶어" 👉 Codex CLI
아이디어를 코드로 바꾸는 속도와 퀄리티(Vibe Coding)는 Codex가 앞섭니다. 특히 "Full Auto" 모드로 맡겨놓고 딴짓하기 좋습니다.
3. "나는 둘 다 놓칠 수 없는 고수야" 👉 하이브리드 전략 (강력 추천!)
많은 개발자가 두 개를 섞어서 씁니다.
- Gemini CLI로 방대한 문서를 읽고, 구글 검색으로 최신 정보를 가져옵니다.
- Codex CLI에게 그 정보를 바탕으로 핵심 로직을 짜거나 배포 스크립트를 만들게 시킵니다.
지금 바로 시작하는 법:
- Gemini: 터미널에
npm install -g @google/gemini-cli입력. - Codex: 터미널에
npm install -g @openai/codex입력 (API 키 필요).
어떤 도구를 선택하든, 터미널이 훨씬 똑똑해지는 경험을 하게 되실 겁니다! 😎
Aider vs Gemini CLI: 오픈소스 코딩 도구의 최강자 대결 🤖⚔️🤖
Git 통합부터 모델 지원까지, 개발자를 위한 완벽 비교 분석
안녕하세요! 터미널 기반 AI 코딩 도구를 찾고 계신가요? 현재 오픈소스 진영에는 두 명의 강력한 후보가 있습니다. 바로 오랫동안 사랑받아온 Aider와 구글의 강력한 지원을 받는 Gemini CLI입니다.
둘 다 훌륭하지만, 사용하는 방식과 철학이 완전히 다릅니다. 여러분의 코딩 스타일에는 누가 더 잘 맞을까요? 가장 상세하고 쉽게 비교해 드립니다.
1. 🧬 성격 차이: "짝 코딩 파트너" vs "만능 에이전트"
이 둘의 가장 큰 차이는 도구가 자신을 어떻게 정의하느냐에 있습니다.
- Aider: 🧑💻 "지치지 않는 짝 코딩 파트너 (Pair Programmer)"
- Aider는 철저하게 코드 수정에 집중합니다.
- 여러분의 Git 저장소 안에 살면서, 코드를 고치고, 테스트를 돌리고, 커밋까지 알아서 합니다. 마치 옆자리에 앉은 동료 개발자 같습니다.
- Gemini CLI: 🕵️♂️ "기억력 좋고 검색 잘하는 만능 비서 (Agent)"
- Gemini CLI는 코드만 짜는 게 아니라, 조사(Google Search)도 하고, 문서도 읽고, 외부 도구(MCP)도 사용합니다.
- 코딩뿐만 아니라 "이 에러 로그 검색해서 원인 찾아줘", "이 라이브러리 최신 문서 읽어줘" 같은 광범위한 업무를 수행합니다,.
🐙 2. Git 통합 (Git Integration): Aider의 압승
Aider: "알아서 커밋(Auto-Commit) 해드릴게요"
Aider의 가장 큰 매력은 Git 워크플로우와의 완벽한 통합입니다.
- 자동 커밋: Aider가 코드를 수정할 때마다, 수정 내용을 요약해서 "적절한 커밋 메시지"와 함께 자동으로 커밋합니다.
- 실수 취소: AI가 코드를 망쳤나요? /undo 명령어 한 번이면 Git을 이용해 수정 전 상태로 깔끔하게 되돌립니다.
- Dirty Tree 감지: 작업 중인 파일이 커밋되지 않은 상태면 경고를 줍니다.
Gemini CLI: "명령 내리면 할게요 (Manual/Scripted)"
Gemini CLI는 Git을 하나의 '도구'로 봅니다.
- 수동 조작: 기본적으로 코드를 수정해 주지만, 커밋은 개발자가 직접 하거나 "이 내용으로 커밋해 줘"라고 별도로 시켜야 합니다.
- 스크립트 활용: 지난번에 배운 것처럼 git diff | gemini 같은 파이프라인을 구축하거나 커스텀 명령어를 만들어야 자동화가 가능합니다.
🏆 승자: Aider (Git history를 깔끔하게 관리하고 싶다면 Aider가 최고입니다.)
🧠 3. 모델 지원 (Model Support): 유연함 vs 거대한 기억력
어떤 두뇌(AI 모델)를 쓸 수 있는지도 중요한 결정 포인트입니다.
Aider: "아무거나 다 씁니다 (Model Agnostic)"
Aider는 BYOK (Bring Your Own Key) 방식입니다. 여러분이 API 키만 있다면 세상의 거의 모든 모델을 연결할 수 있습니다,.
- 지원 모델: Claude 3.5/3.7 Sonnet (가장 추천), GPT-4o, DeepSeek R1, 그리고 Ollama를 통한 로컬 모델까지 지원합니다.
- 장점: 코딩 실력이 가장 뛰어난 최신 모델(예: Claude 3.7)이 나오면 바로 갈아타서 쓸 수 있습니다.
Gemini CLI: "Gemini 하나로 끝냅니다 (Massive Context)"
기본적으로 구글의 Gemini 모델(Pro/Flash)에 최적화되어 있습니다. (물론 커뮤니티 포크 버전을 쓰면 다른 모델도 쓸 수는 있지만 기본 기능은 아닙니다).
- 핵심 무기: 100만~200만 토큰 컨텍스트.
- Aider는 토큰을 아끼기 위해 "Repo Map"이라는 기술로 중요한 파일만 골라 읽습니다.
- Gemini는 프로젝트 전체 파일을 그냥 다 읽어버립니다. "이 프로젝트 전체 구조를 파악해 줘" 같은 질문에는 압도적으로 강합니다,.
🏆 승자:
- 최고의 코딩 지능을 원한다면: Aider (Claude/DeepSeek 사용)
- 방대한 코드/문서 분석을 원한다면: Gemini CLI (100만 토큰)
💰 4. 비용 (Pricing): Gemini의 무료 선언
지갑 사정을 고려한다면 이야기가 달라집니다.
- Gemini CLI: 💸 사실상 무료
- 개인 구글 계정만 있으면 하루 1,000회 요청이 무료입니다. 심지어 최신 Pro 모델도 무료 티어에 포함됩니다.
- Aider: 💳 사용량만큼 지불 (Pay-as-you-go)
- Aider 도구 자체는 무료지만, 연결해서 쓰는 API(Claude, OpenAI) 비용은 여러분이 내야 합니다.
- 코딩 작업은 토큰 소모가 많아서, 열심히 쓰면 한 달에 몇 만 원은 쉽게 나갈 수 있습니다.
🏆 승자: Gemini CLI (압도적인 가성비입니다.)
📊 한눈에 보는 비교표
| 특징 | Aider | Gemini CLI |
|---|---|---|
| 핵심 철학 | 짝 코딩 파트너 (Pair Programmer) | 만능 AI 에이전트 (Agent) |
| Git 통합 | 최상 (자동 커밋, Undo 지원) | 기본 (수동 명령 또는 스크립트) |
| 모델 지원 | 다양함 (Claude, GPT, DeepSeek 등) | 주로 Gemini (Pro/Flash) |
| 기억력 (Context) | "Repo Map"으로 중요 부분만 기억 | 100만~200만 토큰 (전체 기억) |
| 비용 | 유료 (API 비용 발생) | 무료 (일 1,000회 제공) |
| 외부 도구 | 코드 편집에 집중 | MCP 지원 (DB, GitHub, Search 등 연결) |
| 설치 난이도 | Python 필요 (pip install) | Node.js 필요 (npm install) |
🚀 최종 결론: 당신의 선택은?
1. 이런 분은 [Aider]를 쓰세요!
- 🐍 "나는 코딩 퀄리티가 제일 중요해." (현재 코딩 대장인 Claude 3.7이나 DeepSeek를 쓰고 싶은 분)
- 🐙 "Git 커밋 메시지 쓰는 거 귀찮아." (알아서 커밋해주길 원하는 분)
- 🏢 "이미 API 키를 가지고 있어." (비용보다 성능이 우선인 분)
2. 이런 분은 [Gemini CLI]를 쓰세요!
- 💰 "돈 쓰기 싫어!" (무료로 강력한 성능을 원하시는 분)
- 📚 "레거시 코드가 너무 방대해." (수십, 수백 개의 파일을 한 번에 읽혀서 분석해야 하는 분)
- 🌐 "최신 정보 검색이 필요해." (코딩하다가 구글 검색 기능이나 외부 도구 연동이 필요한 분)
💡 고수들의 꿀팁: 많은 개발자가 Aider로 핵심 코딩을 하고(Claude 연결), Gemini CLI로 전체 프로젝트 분석이나 문서 작업을 하는(무료 활용) 하이브리드 방식을 사용합니다.
지금 바로 터미널을 열고 두 가지 다 설치해 보세요! 둘 다 오픈소스니까요. 😉
왜 Gemini CLI인가? 무료 티어의 강력함 💸🚀
경쟁 도구 대비 압도적인 무료 혜택(1일 1,000회, 1M 토큰) 분석
안녕하세요! 요즘 터미널 기반의 AI 코딩 도구들이 쏟아져 나오고 있습니다. Claude Code, Aider, GitHub Copilot CLI 등 훌륭한 도구들이 많지만, "지갑을 지키면서도 최고의 성능을 쓰고 싶다"는 개발자에게 정답은 단 하나, 바로 Gemini CLI입니다.
많은 개발자가 유료 구독을 고민할 때, 구글은 놀랍게도 엔터프라이즈급 기능을 무료로 풀었습니다. 도대체 얼마나 강력한지, 왜 이것이 '생태계 파괴자'인지 아주 쉽고 상세하게 분석해 드립니다.
1. 😲 충격적인 무료 혜택: "하루 1,000회 요청"
가장 먼저 눈에 띄는 것은 사용량 제한입니다. 보통 무료 버전은 "하루 10회"나 "느린 속도" 같은 제약이 있기 마련인데, Gemini CLI는 차원이 다릅니다.
- 1일 1,000회 요청 (Requests Per Day): 개인이 하루 종일 코딩해도 다 쓰기 힘든 양입니다. 잠도 안 자고 코딩만 해도 부족하지 않습니다,.
- 분당 60회 요청 (Requests Per Minute): 코드를 짜다가 AI 답변을 기다리느라 흐름이 끊길 일이 거의 없습니다. 1초에 한 번꼴로 질문해도 됩니다.
- 조건: 신용카드 등록? 필요 없습니다. 그냥 평소 쓰는 개인 구글 계정으로 로그인만 하면 끝입니다.
💡 비교: 경쟁자인 Claude Code는 무료 티어가 아예 없습니다. 유료 구독(20 200/월)을 하거나 API 비용을 따로 내야 합니다. 헤비 유저들은 하루에만 수십 달러(50 100)를 쓰기도 합니다.
2. 🧠 압도적인 기억력: "100만 토큰 (1M Context Window)"
AI 코딩 도구의 성능을 좌우하는 핵심은 '얼마나 많은 코드를 한 번에 기억하느냐(Context Window)'입니다.
- Gemini CLI (100만 토큰): 책 수십 권 분량, 혹은 프로젝트 전체 코드를 통째로 AI에게 입력해도 다 기억합니다. "내 프로젝트 전체 구조를 보고 버그를 찾아줘"라는 명령이 가능합니다,. 심지어 일부 환경에서는 200만 토큰까지 지원합니다.
- 경쟁 도구들:
- Claude Code: 약 20만 토큰. (훌륭하지만 대형 프로젝트 전체를 넣기엔 부족함).
- ChatGPT (Codex): 약 12.8만 토큰 수준.
왜 100만 토큰이 중요한가요? 작은 문맥 창을 가진 AI는 파일을 일일이 골라서 먹여줘야 합니다. 하지만 Gemini CLI는 그냥 @src/ 명령어
한 번으로 소스 폴더 전체를 던져주면, 알아서 문맥을 파악합니다. 개발자의 귀차니즘을 완벽하게 해결해 줍니다.
3. 🤖 최신 두뇌 탑재: Gemini 3 & 2.5 Pro 사용
"무료니까 성능이 떨어지는 모델을 주겠지?"라고 생각하셨다면 오산입니다.
- Gemini CLI 무료 티어 사용자는 구글의 최신 모델인 Gemini 2.5 Pro와 Gemini 3 (Preview) 모델을 그대로 사용할 수 있습니다,.
- Gemini 3: 추론 능력이 비약적으로 상승한 최신 모델로, 복잡한 코딩 문제 해결 능력이 경쟁사 유료 모델과 대등하거나 뛰어난 수준입니다,.
4. 🔍 남들은 없는 무기: "구글 검색 (Google Search)" 내장
코딩하다 막히면 어떻게 하시나요? 구글링을 하죠. Gemini CLI는 이 기능이 내장되어 있습니다.
- 실시간 정보 반영: "최신 React 버전의 변경 사항을 반영해서 코드를 짜줘"라고 하면, Gemini는 실시간 구글 검색을 통해 최신 문서를 찾아보고 답변합니다,.
- 경쟁 도구의 한계: 대부분의 AI는 학습된 데이터(과거 데이터)에 의존하거나, 검색을 하려면 복잡한 설정을 추가해야 합니다.
📊 한눈에 보는 비교표 (가성비 끝판왕)
| 특징 | Gemini CLI (Google) | Claude Code (Anthropic) | ChatGPT Codex (OpenAI) |
|---|---|---|---|
| 가격 | 💸 무료 (개인 계정) | 💰 유료 (약 $20~/월) | 💰 유료 ($20/월 구독) |
| 일일 한도 | 1,000회 | 사용량 따라 과금 | 구독 플랜에 따름 |
| 기억력 (Context) | 100만 ~ 200만 토큰 | ~20만 토큰 | ~12.8만 토큰 |
| 인터넷 검색 | 🔍 기본 내장 | 제한적 | 제한적 |
| 설치 난이도 | 쉬움 (npm install) | 쉬움 | 쉬움 |
🚀 요약: 지금 바로 갈아타야 할까요?
이런 분들에게 Gemini CLI는 선택이 아니라 필수입니다.
- 💰 "돈 쓰기 싫다!": 학생, 취준생, 혹은 회사 지원 없이 개발하는 분들에게는 유일한 대안입니다.
- 📚 "코드가 너무 많다!": 거대한 레거시 코드를 분석해야 해서 100만 토큰의 기억력이 필요한 분.
- ☁️ "구글 클라우드 쓴다!": Cloud Run 배포나 Firebase 연동 등 구글 생태계와 찰떡궁합입니다.
물론, 아주 복잡한 아키텍처 설계나 "시니어 개발자급"의 깊은 추론이 필요할 때는 유료인 Claude Code가 더 나을 수 있다는 의견도 있습니다. 하지만 일상적인 코딩, 코드 리뷰, 학습, 문서 작성 용도로는 무료인 Gemini CLI만으로도 차고 넘칩니다.
지금 바로 터미널을 열고 설치해 보세요. 비용은 0원, 생산성은 무한대입니다!
npm install -g @google/gemini-cli
gemini
레거시 코드 리팩토링 실전: 복잡한 옛날 코드를 @src/로 통째로 읽어 최신 문법으로 리팩토링하기 🛠️✨
안녕하세요! 개발자라면 누구나 한 번쯤 마주치는 공포의 대상, '레거시 코드(Legacy Code)'. 변수명은 알 수 없고, 함수는 천 줄이 넘어가며, 문법은 10년 전 스타일인 코드를 보면 한숨부터 나옵니다.
하지만 Gemini CLI와 함께라면 이야기가 다릅니다. Gemini CLI의 가장 강력한 무기인 100만 토큰 컨텍스트(Context Window)를 활용하면, 파일 하나하나가 아니라 프로젝트 전체를 통째로 AI 머릿속에 집어넣고 구조적인 리팩토링을 수행할 수 있습니다.
복잡한 옛날 코드를 최신 트렌드(Modern Syntax)로 재탄생시키는 과정을 가장 쉽고 상세하게 단계별로 알려드립니다.
1. 🧠 핵심 비결: 100만 토큰과 @src/ 명령어
보통의 AI 채팅창은 긴 코드를 넣으면 "너무 깁니다"라며 거부하거나, 앞부분 내용을 까먹습니다. 하지만 Gemini CLI는 책 수십 권 분량(100만~200만 토큰)을 한 번에 기억합니다.
이 능력을 활용하는 열쇠가 바로 @ (At symbol) 명령어입니다.
@파일이름: 특정 파일 하나를 읽습니다.@폴더이름/: (중요) 해당 폴더와 그 하위의 모든 파일을 재귀적으로 읽어들입니다.
즉, @src/ 라고 치면 소스 코드 전체가 AI에게 입력됩니다. AI는 이제 프로젝트의 전체 구조, 의존성, 비즈니스 로직을 완벽하게 파악한 상태가
됩니다.
2. 🧹 사전 준비: .geminiignore (노이즈 제거)
프로젝트 전체를 읽을 때, node_modules나 빌드 결과물(dist/) 같은 쓸모없는 파일까지 읽으면 토큰 낭비고 AI가
헷갈립니다. 이를 방지하기 위해 무시할 파일 목록을 만듭니다.
- 프로젝트 루트에
.geminiignore파일을 만듭니다 (없으면.gitignore를 따릅니다). - 제외할 파일들을 적습니다.
# .geminiignore 예시
node_modules/
dist/
build/
.git/
*.log
package-lock.json
이제 @src/를 입력해도 위 파일들은 똑똑하게 건너뜁니다.
3. 🛡️ 안전장치: 체크포인트 설정 (--checkpointing)
리팩토링은 코드를 대거 수정하는 작업입니다. 혹시 모를 사고에 대비해 자동 백업 기능을 켜두세요.
gemini --checkpointing
이 옵션을 켜고 실행하면, AI가 파일을 수정하기 직전에 자동으로 상태를 저장합니다. 만약 결과가 마음에 안 들면 /restore 명령어 한 번으로
수정 전 상태로 되돌릴 수 있습니다.
4. 🚀 실전 리팩토링 프롬프트 (그대로 베껴 쓰세요!)
이제 진짜 리팩토링을 시작해 봅시다. 단순히 "리팩토링해 줘"라고 하면 안 됩니다. 명확한 지침(Modern Standards)을 줘야 합니다.
시나리오: 오래된 JavaScript(ES5)를 최신 TypeScript로 변환하기
Gemini CLI를 실행하고 다음과 같이 입력하세요.
나: " @src/ 폴더 전체를 분석해 주세요. 이 프로젝트는 오래된 JavaScript(ES5, CommonJS)로 작성되어 있습니다. 다음 규칙에
따라 Modern TypeScript로 리팩토링하고 싶습니다.
require대신import/export(ES Modules)를 사용하세요.var를 모두 없애고const와let을 적절히 사용하세요.- 콜백(Callback) 지옥을
async/await패턴으로 변경하세요. - 모든 파일에 적절한 타입(Type)을 정의하고 적용하세요.
- 기능이나 로직은 변경하지 말고, 코드 구조와 문법만 개선하세요."
Gemini의 행동 과정:
- 전체 읽기:
@src/를 통해 수십 개의 파일을 순식간에 읽습니다. - 구조 파악: 어떤 파일이 어떤 모듈을 부르는지 파악합니다.
- 계획 수립: "먼저 유틸리티 함수부터 변환하고, 메인 로직을 수정하겠습니다"라고 계획을 말합니다.
- 수정 실행:
write_file도구를 사용하여 실제 파일 내용을 최신 코드로 덮어씁니다.
5. ⚡ 고급 기술: 나만의 /refactor 명령어 만들기
리팩토링 작업을 자주 한다면, 매번 긴 프롬프트를 칠 필요 없이 커스텀 명령어로 만들어두면 편합니다.
~/.gemini/commands/refactor.toml파일을 만듭니다.- 아래 내용을 복사해 넣으세요.
# 파일 위치: ~/.gemini/commands/refactor.toml
description = "선택한 파일을 최신 클린 코드 스타일로 리팩토링합니다."
prompt = """
당신은 10년 차 시니어 개발자이자 리팩토링 전문가입니다.
사용자가 제공한 다음 코드({{args}})를 분석하고, 아래 원칙에 따라 리팩토링해 주세요.
[리팩토링 원칙]
1. **가독성:** 변수명과 함수명을 직관적으로 변경하세요.
2. **최신 문법:** 언어의 최신 기능(예: Optional Chaining, Arrow Function 등)을 적극 활용하세요.
3. **함수 분리:** 하나의 함수가 너무 길다면, 단일 책임 원칙(SRP)에 따라 작은 함수로 쪼개세요.
4. **주석:** 복잡한 로직에는 '왜' 이렇게 짰는지 설명하는 주석을 다세요.
작업을 시작하기 전에 어떤 점을 개선할지 먼저 요약해서 말해주세요.
"""
사용법: 이제 터미널에서 이렇게만 입력하면 됩니다.
> /refactor @src/legacy_controller.js
그러면 Gemini가 저장해 둔 '시니어 개발자'의 관점으로 해당 파일을 완벽하게 뜯어고쳐 줍니다.
📝 요약: 리팩토링 3단계 법칙
- 준비:
.geminiignore로 불필요한 파일을 거르고,gemini --checkpointing으로 안전장치를 건다. - 주입:
@src/명령어로 프로젝트 전체 맥락을 AI에게 한 번에 먹인다. - 명령: 구체적인 최신 문법 규칙(ES6+, TS 등)을 명시하여 변환을 지시하거나, 미리 만들어둔
/refactor단축키를 쓴다.
이제 두려웠던 레거시 코드, Gemini CLI에게 통째로 맡기고 커피 한 잔의 여유를 즐기세요! ☕️
자동 문서화: README.md 및 주석 생성하기 📝🤖
프로젝트를 분석해 문서를 자동으로 작성하고 최신화하는 방법
개발자에게 "문서 작성"은 숙제와도 같습니다. 코드를 짜는 건 즐겁지만, README.md를 예쁘게 꾸미거나 함수마다 주석(Docstring)을 다는 일은 귀찮고 지루하죠. 게다가 코드는 바뀌었는데 문서는 옛날 그대로 방치되기 일쑤입니다.
Gemini CLI를 사용하면 이 지루한 작업을 단 몇 초 만에 자동화할 수 있습니다. Gemini의 가장 큰 장점인 대용량 컨텍스트(100만 토큰)를 활용해 프로젝트 전체를 읽고, 완벽한 문서를 작성하는 방법을 아주 쉽고 상세하게 알려드립니다.
📂 1. 프로젝트 전체를 읽고 README.md 자동 생성하기
Gemini CLI는 파일 하나가 아니라, 폴더 전체를 통째로 읽을 수 있는 강력한 기능이 있습니다. 이를 이용해 "이 프로젝트가 뭐 하는 건지"를 파악하고 문서를 쓰게 할 수 있습니다.
1단계: 준비하기 (.geminiignore)
먼저 AI가 node_modules나 .git 처럼 불필요한 파일까지 읽지 않도록 설정해야 합니다. 프로젝트 루트에 .geminiignore 파일을 만들고 제외할 항목을 적으세요.
# .geminiignore
node_modules/
dist/
.git/
*.log
2단계: 명령어 입력하기
이제 터미널에서 다음 명령어를 입력하세요. @. 또는 @src/ 는 "현재 폴더의 모든 파일을 읽으라"는 뜻입니다.
gemini -p "현재 프로젝트(@.)를 분석해서 전문적인 README.md 파일을 작성해줘. 설치 방법, 사용법, 기술 스택, 주요 기능을 포함하고 마크다운 형식으로 출력해." > README.md
- gemini -p "...": 대화창을 열지 않고 명령만 실행합니다 (헤드리스 모드).
- @.: 현재 디렉터리의 모든 소스 코드를 읽어서 Gemini에게 건네줍니다.
- > README.md: Gemini가 쓴 내용을 화면에 출력하는 대신 README.md 파일로 저장합니다.
결과: 눈 깜짝할 사이에 프로젝트 구조를 완벽히 파악한 고품질의 README.md 파일이 생성됩니다.
💬 2. 코드에 주석(Docstring) 자동으로 달기
복잡한 함수나 클래스에 주석이 없어서 나중에 고생한 적 있으시죠? 파일 내용을 읽어서 주석을 단 다음, 다시 저장하게 시킬 수 있습니다.
방법 A: 파일 하나 처리하기
gemini -p "이 파일(@src/utils.py)의 모든 함수에 Python Google Style Docstring을 추가해서 전체 코드를 다시 작성해줘. 코드는 그대로 두고 주석만 추가해." > src/utils_new.py
결과를 확인하고 원본 파일과 교체하면 됩니다.
방법 B: 여러 파일 일괄 처리 (고수용 스크립트)
리눅스/맥 사용자라면 간단한 반복문으로 폴더 내 모든 파일에 주석을 달 수 있습니다.
# src 폴더의 모든 .js 파일에 주석 달기
for file in src/*.js; do
echo "$file 처리 중..."
# 파일을 읽어서 Gemini에게 보내고, 결과를 임시 파일에 저장
cat "$file" | gemini -p "이 코드에 JSDoc 스타일 주석을 상세하게 달아줘. 코드 로직은 바꾸지 마." > "${file}.temp"
# 원본 덮어쓰기 (주의: 백업 필수!)
mv "${file}.temp" "$file"
done
🔄 3. "변경 사항"만 반영해서 문서 업데이트하기 (릴리즈 노트)
코드를 수정했다면 문서도 업데이트해야겠죠? git diff 명령어를 Gemini와 연결하면, "내가 방금 고친 내용"을 분석해서 문서를 갱신할 수 있습니다.
릴리즈 노트(Release Notes) 자동 생성
최근 작업한 내용을 바탕으로 변경 로그를 작성합니다.
# Git 커밋 로그를 읽어서 릴리즈 노트 작성
git log --oneline v1.0.0..HEAD | gemini -p "이 커밋 내역들을 바탕으로 사용자에게 보여줄 친절한 릴리즈 노트를 작성해줘. 기능 추가, 버그 수정으로 분류해." > RELEASE_NOTES.md
- git log ...: 버전 1.0.0 이후의 모든 변경 내역을 가져옵니다.
- | (파이프): 이 내용을 Gemini에게 "읽을거리"로 던져줍니다.
- 결과: 커밋 메시지들을 분석해 "로그인 버그가 수정되었습니다", "다크 모드가 추가되었습니다" 같은 깔끔한 문서를 만들어냅니다.
⚡ 4. 나만의 /docs 명령어 만들기 (커스텀 명령어)
매번 긴 프롬프트를 치기 귀찮다면, 나만의 단축 명령어를 만들어두세요.
~/.gemini/commands/docs.toml파일을 만듭니다.- 아래 내용을 복사해 붙여넣으세요.
# 사용법: /docs @파일이름
description = "선택한 파일의 문서를 자동으로 작성합니다."
prompt = """
당신은 테크니컬 라이터입니다.
다음 파일({{args}})을 분석하고, 이 코드의 목적, 입력/출력, 주요 로직을 설명하는 문서를 작성해주세요.
형식은 마크다운으로 해주세요.
"""
이제 터미널에서 이렇게만 입력하면 됩니다.
/docs @src/auth.ts
그러면 Gemini가 해당 파일을 분석해 전문적인 문서 초안을 즉시 뽑아줍니다.
📝 요약
- 전체 문서화:
gemini -p "..." @src/ > README.md로 프로젝트 전체를 읽혀 한 번에 문서를 만듭니다. - 주석 자동화: 쉘 스크립트와
cat file | gemini를 조합해 코드 파일에 주석을 심습니다. - 최신화 유지: git diff나 git log를 Gemini에게 파이프로 넘겨서 변경 사항에 대한 릴리즈 노트를 씁니다.
이제 "문서화" 때문에 스트레스받지 마세요. 코딩은 여러분이 하고, 설명은 Gemini CLI에게 맡기시면 됩니다! 😎
단위 테스트(Unit Test) 자동 생성 튜토리얼 🧪🤖
코드 파일을 입력받아 Jest, PyTest 등 테스트 코드를 짜게 시키는 법
안녕하세요! 개발자에게 테스트 코드는 '보험'과 같지만, 막상 짜려면 비즈니스 로직 구현보다 더 귀찮을 때가 많습니다.
Gemini CLI를 사용하면 "이 파일 읽고 테스트 코드 짜줘" 한마디로, 복잡한 엣지 케이스(Edge case)까지 고려한 완벽한 테스트 코드를 단 몇 초 만에 얻을 수 있습니다. Python(PyTest), JavaScript(Jest), Go 등 언어에 상관없이 적용 가능한 3단계 자동화 비법을 아주 상세하고 쉽게 알려드립니다.
🟢 1단계: 가장 쉬운 방법 (대화형 모드)
Gemini CLI를 켜고 채팅하듯 파일을 던져주는 방식입니다. 가장 직관적입니다.
- Gemini 실행: 터미널에
gemini를 입력합니다. - 파일 입력(@)과 명령:
@기호를 사용하여 테스트할 코드 파일을 지정하고 명령을 내립니다.
예시 (Python 코드에 PyTest 만들기):
> @src/calculator.py 이 코드에 대한 PyTest 단위 테스트를 작성해줘. 0으로 나누는 경우 같은 예외 처리도 포함해서.
예시 (React 컴포넌트에 Jest 테스트 만들기):
> @components/Button.tsx 이 컴포넌트에 대한 Jest + React Testing Library 테스트 코드를 짜줘. 클릭 이벤트가 잘 동작하는지 확인해.
- 원리:
@파일경로를 입력하면 Gemini가 해당 파일의 내용을 읽어 들여 프롬프트에 포함시킵니다. Gemini는 코드를 분석한 뒤 요구사항에 맞는 테스트 코드를 답변으로 출력해 줍니다.
🚀 2단계: 파일로 바로 저장하기 (헤드리스 모드)
매번 채팅창에서 코드를 복사해서 붙여넣기 귀찮으시죠? 헤드리스 모드(-p)와 리다이렉션(>)을 쓰면, 질문 한 번에
테스트 파일
생성까지 끝납니다.
명령어 구조: gemini -p "프롬프트 @파일" > 저장할_테스트_파일
🐍 Python (PyTest) 자동 생성 예제
gemini -p "당신은 시니어 QA 엔지니어입니다. @src/utils.py 파일을 분석하여 엣지 케이스를 포함한 포괄적인 PyTest 코드를 작성해주세요. 코드 설명 없이 오직 코드만 출력하세요." > tests/test_utils.py
☕ JavaScript (Jest) 자동 생성 예제
gemini -p "@src/auth.js 파일의 모든 함수에 대해 Jest 단위 테스트를 작성해. Mocking이 필요한 부분은 적절히 처리해줘." > tests/auth.test.js
- -p (또는 --prompt): 대화창을 열지 않고 명령만 수행하고 종료합니다.
- >: Gemini가 뱉어낸 코드를 화면에 보여주는 대신 파일로 저장합니다.
⚡ 3단계: 나만의 단축키 만들기 (커스텀 명령어)
테스트 코드를 짤 일이 많다면, 매번 긴 프롬프트를 치지 말고 /test 라는 나만의 명령어를 만들어 봅시다.
- 설정 폴더 이동:
~/.gemini/commands/폴더로 이동합니다 (없으면 만드세요). - 파일 생성:
test.toml파일을 만들고 아래 내용을 붙여넣으세요.
# ~/.gemini/commands/test.toml 내용:
# 설명: /help 메뉴에 표시될 설명
description = "선택한 파일에 대한 전문적인 단위 테스트 코드를 생성합니다."
# 실제 실행될 프롬프트
prompt = """
당신은 10년 차 테스트 자동화 전문가입니다.
사용자가 제공한 다음 코드({{args}})를 분석하고, 적절한 테스트 프레임워크(Python은 PyTest, JS는 Jest 등)를 사용하여 단위 테스트 코드를 작성해주세요.
[요구사항]
1. 모든 분기(if/else)를 커버하세요.
2. 예외 상황(Edge Case)을 반드시 테스트하세요.
3. 설명은 최소화하고, 바로 실행 가능한 코드만 작성하세요.
"""
- {{args}}: 여러분이 명령어 뒤에 입력할 파일 이름이 이 자리에 들어갑니다.
실행하기: 이제 터미널에서 이렇게만 치면 됩니다.
/test @src/user_controller.py
Gemini가 test.toml에 저장된 전문가 프롬프트를 불러와서, 여러분이 지정한 파일(@...)을 분석하고 완벽한 테스트 코드를 짜줍니다.
🍯 꿀팁: 프로젝트 규칙 가르치기 (GEMINI.md)
우리 회사는 테스트 코드 짤 때 꼭 지켜야 하는 규칙(예: "모든 변수명은 스네이크 케이스로", "DB 연결은 반드시 Mocking 처리")이 있나요?
프로젝트 루트 폴더에 GEMINI.md 파일을 만들고 규칙을 적어두세요.
# GEMINI.md (테스트 규칙)
- 테스트 프레임워크는 무조건 PyTest를 사용한다.
- 모든 테스트 함수명은 `test_`로 시작해야 한다.
- 데이터베이스 접근 코드는 `unittest.mock`을 사용해 격리해야 한다.
이제 Gemini는 이 파일을 자동으로 읽고, 시키지 않아도 여러분 팀의 스타일대로 테스트 코드를 작성합니다.
📝 요약
- 간단하게:
gemini실행 후> @파일 테스트짜줘입력. - 파일 저장:
gemini -p "프롬프트 @파일" > test_file.py로 한 방에 생성. - 단축키:
commands/test.toml을 만들어/test @파일로 자동화.
이제 지루한 테스트 코드 작성은 Gemini에게 맡기고, 여러분은 더 창의적인 기능 구현에 집중하세요! 🚀
버그 사냥: 에러 로그 분석 및 자동 수정 🐛🕵️♂️
로그 파일을 파이프로 넘겨 원인을 분석하고 해결책을 제안받는 법
안녕하세요! 개발자의 가장 큰 적, '알 수 없는 에러 로그' 때문에 모니터를 멍하니 바라본 적 있으신가요? 수천 줄의 로그 속에서 원인을 찾는 건 정말 고통스러운 일입니다.
하지만 이제 Gemini CLI가 여러분의 '버그 사냥꾼'이 되어줍니다. 터미널의 파이프(|) 기능을 이용해 로그를 AI에게 먹여주고, "이게 왜
터졌는지, 어떻게 고쳐야 하는지" 즉시 답변을 받아보세요.
로그 분석부터 코드 수정 제안까지, 아주 쉽고 상세하게 알려드립니다.
🧠 1. 기본 원리: 파이프(|)로 로그 먹여주기
우리는 리눅스/유닉스의 파이프(|)를 사용하여 로그 파일의 내용을 Gemini에게 전달할 것입니다.
- 기존 방식: 로그 파일을 열어서, 에러 부분을 복사하고, 챗GPT 웹사이트에 가서 붙여넣기 하고 질문함. (귀찮음 😫)
- Gemini CLI 방식: 터미널에서
cat 로그파일 | gemini입력. (끝! 😎)
🔍 2. 시나리오 A: "도대체 무슨 에러야?" (단순 분석)
서버 로그 파일(server.log)이 있고, 방금 500 에러가 떴다고 가정해 봅시다. 전체 파일을 다 읽을 필요 없이, 마지막 50줄만 읽어서
Gemini에게 물어봅시다.
명령어
tail -n 50 server.log | gemini -p "이 로그를 분석해서 에러의 핵심 원인이 뭔지 한 문장으로 요약해 줘. 그리고 해결책을 3단계로 제안해 줘."
- tail -n 50 server.log: 로그 파일의 끝에서 50줄만 가져옵니다.
- |: 가져온 내용을 Gemini에게 전달합니다.
- gemini -p "...": Gemini가 전달받은 로그를 읽고, 프롬프트의 지시에 따라 분석합니다.
Gemini의 답변 예시:
원인: 데이터베이스 연결 시간 초과(Connection Timeout)로 인해 쿼리를 실행하지 못했습니다.
해결책:
- DB 서버가 실행 중인지 확인하세요.
- config.py 파일의 DB 접속 정보(IP, 포트)가 정확한지 확인하세요.
- 방화벽 설정이 포트를 막고 있는지 확인하세요.
🛠️ 3. 시나리오 B: "코드랑 같이 보고 고쳐줘!" (심화 분석)
로그만 봐서는 부족할 때가 있습니다. 에러가 발생한 소스 코드도 같이 보여줘야 정확한 수정법이 나옵니다. Gemini CLI는 파이프(로그)와
@파일 (코드) 입력을 동시에 받을 수 있습니다.
상황
app.py를 실행했는데 에러가 났습니다.
명령어
# 에러 로그(grep으로 ERROR만 추출)와 소스 코드를 같이 보냅니다.
grep "ERROR" app.log | tail -n 20 | gemini -p "이 에러 로그를 보고, @src/app.py 파일의 어느 부분이 문제인지 찾아서 수정된 코드를 보여줘."
작동 방식:
- 로그 입력: 파이프를 통해 최근 발생한 'ERROR' 로그들이 입력됩니다.
- 코드 입력:
@src/app.py를 통해 실제 소스 코드가 함께 입력됩니다. - 분석 및 수정: Gemini는 로그의 'Line 42 Error' 메시지와 실제 app.py의 42번째 줄을 대조하여, 버그를 수정한 코드를 짜줍니다.
📊 4. 시나리오 C: 에러 리포트 자동 생성 (JSON 활용)
매일 아침 밤새 발생한 에러를 분석해서 보고서를 써야 한다면? 이 과정을 스크립트로 만들어 자동화할 수 있습니다.
명령어
cat error.log | gemini -p "이 로그들에 나타난 주요 에러 패턴을 3가지로 요약하고, 각각의 심각도를 '상/중/하'로 평가해 줘." --output-format json > bug_report.json
- --output-format json: 결과를 기계가 읽기 좋은 JSON 파일로 받습니다.
- > bug_report.json: 결과를 파일로 저장합니다.
이제 이 JSON 파일을 대시보드에 띄우거나 슬랙 봇으로 전송만 하면 자동 에러 리포팅 시스템이 완성됩니다.
🍯 5. 꿀팁: 나만의 디버깅 단축키 만들기 (alias)
매번 긴 명령어를 치기 귀찮다면, .zshrc나 .bashrc에 단축키(Alias)를 등록하세요.
# 'debug'라고 치면 최근 로그 30줄을 분석해줌
alias debug="tail -n 30 server.log | gemini -p '이 에러를 분석하고 고칠 방법을 알려줘'"
이제 에러가 터지면 터미널에 debug 라고만 치세요. 3초 만에 해결책이 나옵니다.
⚠️ 주의사항: 보안 (Security)
로그 파일에는 가끔 비밀번호나 API 키, 개인정보가 찍힐 수 있습니다.
- Gemini에게 로그를 보내기 전에, 민감한 정보가 없는지 꼭 확인하세요.
- .geminiignore 파일 등을 활용해 민감한 파일이 실수로 전송되지 않도록 주의하세요.
📝 요약
- 기본:
tail log.txt | gemini -p "분석해줘"로 로그를 분석합니다. - 코드 결합:
cat log.txt | gemini -p "분석해줘" @소스코드로 코드 수정까지 요청합니다. - 자동화:
--output-format json을 사용해 분석 결과를 데이터로 저장합니다.
이제 "로그 분석"이라는 지루한 작업은 Gemini에게 맡기고, 여러분은 버그 수정(Fix)이라는 즐거운(?) 순간만 누리세요! 🚀
Vibe Coding: 말하는 대로 앱 만들기 🗣️✨
자연어로 기능을 설명하고 폴더 구조부터 코드까지 한 번에 생성하는 과정
안녕하세요! 코딩 문법을 달달 외우지 않아도, "느낌(Vibe)"과 "아이디어"만 있으면 앱을 만들 수 있는 시대가 왔습니다. 이것을 개발자들 사이에서는 바이브 코딩(Vibe Coding)이라고 부릅니다.
Google의 Gemini CLI는 이 바이브 코딩에 최적화된 도구입니다. 복잡한 코드를 직접 짜는 대신, 동료에게 설명하듯 "이런 앱 만들어줘"라고 말하면 폴더 생성부터 파일 작성, 서버 실행까지 알아서 처리해 줍니다.
어떻게 하는지 아주 쉽고 상세하게 단계별로 보여드릴게요.
🎨 1. 바이브 코딩(Vibe Coding)이란?
기존의 코딩이 "건축가가 벽돌을 하나하나 쌓는 것"이라면, 바이브 코딩은 "건축가에게 내가 원하는 집의 느낌과 구조를 설명하는 것"입니다.
- 나: "파스텔 톤의 예쁜 할 일 관리(Todo) 앱을 만들어줘. 완료하면 폭죽이 터지는 효과도 넣어주고!"
- Gemini CLI: (알아서 HTML, CSS, JavaScript 파일을 만들고 디자인까지 적용함)
Gemini CLI는 100만 토큰이라는 거대한 기억력을 가지고 있어서, 프로젝트 전체 구조를 머릿속에 그리며 코딩할 수 있습니다.
🛠️ 2. 준비: 빈 캔버스 만들기
먼저 앱을 만들 빈 폴더를 하나 만들고 Gemini를 실행합니다.
- 터미널을 엽니다.
- 폴더를 만들고 들어갑니다.
- Gemini를 실행합니다.
이제 준비 끝입니다!
🗣️ 3. 실전: 말로 앱 생성하기 (단계별 과정)
예시로 "1일 기술 컨퍼런스 일정 안내 웹사이트"를 만들어 보겠습니다.
1단계: "느낌"과 "요구사항" 설명하기 (프롬프트 입력)
구체적으로 말할수록 좋습니다. 아래 내용을 복사해서 Gemini에게 말해보세요.
2단계: AI의 계획 수립 (Thinking & Planning)
Gemini는 무작정 코드를 짜지 않습니다. 먼저 생각(Thinking)하고 계획을 브리핑합니다.
이때 여러분은 팀장님처럼 "좋아, 진행해!" 혹은 "점심은 1시로 해줘"라고 피드백만 주면 됩니다.
3단계: 폴더 구조와 코드 생성 (Execution)
여러분이 승인하면, Gemini는 도구(Tools)를 사용해 실제로 파일을 만듭니다.
write_file도구를 사용해 server.js, index.html, style.css 등을 순식간에 생성합니다.- 터미널에 "파일을 생성해도 될까요?"라고 물으면 y (Yes)를 눌러주세요 (또는
--yolo모드라면 자동으로 생성합니다).
결과물: 순식간에 폴더 안에 완벽한 구조의 파일들이 생겨납니다.
4단계: 실행 및 확인
코드가 다 만들어지면 Gemini가 실행 방법까지 친절하게 알려줍니다.
✨ 4. 고급 기술: 그림 그려서 코딩하기 (멀티모달)
말로 설명하기 힘들 땐 그림이 최고죠. Gemini 3 Pro 모델은 이미지를 이해합니다.
- 종이에 원하는 웹사이트 레이아웃을 대충 그립니다.
- 사진을 찍어 컴퓨터에 저장합니다 (예:
sketch.png). - Gemini에게 보여줍니다.
@sketch.png 이 그림이랑 똑같이 생긴 로그인 페이지를 만들어줘. 색상은 파란색 계열로.
Gemini는 이미지를 분석해서 버튼 위치, 입력창 배치까지 그대로 코드로 구현해 줍니다. 이것이 진정한 바이브 코딩입니다.
🔄 5. 수정하기: "이건 좀 별로네?"
결과물이 마음에 안 들면 바로 수정 요청을 하세요. 파일 위치를 찾을 필요도 없습니다.
나: "디자인이 너무 밋밋해. 발표 목록에 마우스를 올리면 그림자가 생기고 살짝 떠오르는 애니메이션을 추가해 줘."
Gemini는 프로젝트 전체를 알고 있기 때문에, 정확히 style.css 파일을 찾아 해당 부분만 수정합니다.
📝 요약: 바이브 코딩 3원칙
- Describe (설명하기): 만들고 싶은 앱의 기능과 느낌을 자연스럽게 말하세요. (스케치 사진도 OK!)
- Review (검토하기): Gemini가 제안하는 계획을 듣고 승인하세요.
- Refine (다듬기): 결과물을 보고 "더 예쁘게", "버그 고쳐줘"라고 말하며 완성도를 높이세요.
이제 복잡한 코딩 문법 걱정은 내려놓고, Gemini CLI와 함께 상상했던 앱을 현실로 만들어보세요! 🚀
이미지 기반 코딩: UI 스케치를 코드로 변환 🎨➡️💻
손으로 그린 UI 그림이나 스크린샷을 입력해 HTML/CSS 코드로 변환하는 법
안녕하세요! 혹시 카페 냅킨에 앱 아이디어를 끄적여 본 적 있나요? 아니면 멋진 웹사이트를 보고 "이 디자인 그대로 내 앱에 넣고 싶다"고 생각한 적 있으신가요?
과거에는 그 그림을 보면서 개발자가 일일이 <div>, margin, padding을 입력하며
코드를 짜야 했습니다. 하지만 Gemini CLI의 멀티모달(Multimodal) 기능을 사용하면, "이 그림이랑 똑같이 만들어 줘"라고 말
한마디만 하면 됩니다.
여러분의 손그림을 단 몇 초 만에 작동하는 웹사이트로 바꾸는 마법 같은 과정을 아주 쉽고 상세하게 알려드립니다.
🧠 1. 기본 원리: 멀티모달(Multimodal)이 뭔가요?
'멀티모달'은 AI가 텍스트뿐만 아니라 이미지, 비디오, 오디오를 동시에 이해하는 능력입니다. Gemini CLI는 단순히 그림을 "보는" 것을 넘어, 그 안의 구조(레이아웃), 텍스트(내용), 디자인 스타일(색상, 폰트)을 분석하여 코드로 번역할 수 있습니다.
📸 2. 준비물: 그림 한 장이면 충분해요
코딩을 시작하기 전에 변환하고 싶은 이미지를 준비하세요.
- 손그림 (Sketch): 종이에 연필로 대충 그린 와이어프레임도 괜찮습니다.
- 스크린샷: 벤치마킹하고 싶은 웹사이트나 앱의 화면 캡처.
- 디자인 파일: 피그마(Figma)나 포토샵 작업물을 이미지로 저장한 것.
이미지 파일(예: design.png)을 프로젝트 폴더에 저장해 두세요.
🚀 3. 실전: 터미널에서 명령 내리기
Gemini CLI에서 이미지를 입력하는 방법은 @ (At symbol) 기호를 사용하는 것입니다.
단계 1: Gemini CLI 실행
터미널을 열고 gemini를 입력해 대화 모드를 시작합니다.
단계 2: 이미지 입력하고 명령하기
프롬프트에 @를 치고 이미지 파일 이름을 입력한 뒤, 원하는 내용을 말하세요.
예시 1: 손그림을 HTML로
예시 2: 스크린샷을 Tailwind CSS로 (Vibe Coding)
Gemini의 행동 과정:
- 이미지 분석: Gemini가 이미지를 픽셀 단위로 읽어 버튼 위치, 입력창, 헤더 등을 파악합니다.
- 구조 설계: "아, 이건 상단에 로고가 있고 중간에 2단 그리드가 있구나"라고 추론합니다.
- 코드 생성: 파악한 구조를 바탕으로 HTML/CSS 코드를 작성하여 답변으로 보여줍니다.
💅 4. 디테일 살리기: 더 똑똑하게 명령하는 법
단순히 "만들어줘"보다 구체적인 지시를 내리면 결과물의 퀄리티가 확 올라갑니다.
A. 텍스트까지 읽어내기 (OCR)
Gemini 3 Pro 모델은 이미지 속의 작은 글씨도 잘 읽습니다.
"@menu_board.jpg 이 메뉴판 사진을 보고 웹사이트의 메뉴 리스트 컴포넌트를 만들어. 사진 속에 있는 가격과 메뉴 설명을 그대로 텍스트로 넣어줘."
B. 고화질 모드 사용하기 (Media Resolution)
그림의 글씨가 작거나 디테일이 중요하다면, Gemini에게 이미지를 고화질로 보라고 설정할 수 있습니다. (API 설정을 건드릴 수 있는 경우 media_resolution_high 옵션 사용). CLI에서는 기본적으로 최적화되어 처리됩니다.
C. 수정 요청하기 (Interactive Mode)
만들어진 코드가 마음에 안 들면 바로 수정 요청을 하세요.
📂 5. 바로 파일로 저장하기 (헤드리스 모드)
채팅창에서 코드를 복사하는 게 귀찮다면, 명령 한 번으로 코드를 파일로 저장할 수 있습니다.
gemini -p "이 UI 스케치(@wireframe.png)를 HTML 코드로 짜서 출력해 줘. 설명은 필요 없어." > index.html
- -p: 대화창 없이 명령만 실행합니다.
- > index.html: 결과물을 즉시 index.html 파일로 저장합니다.
⚠️ 주의사항 및 팁
- 경로 확인:
@image.png를 입력할 때 파일 경로가 정확한지 확인하세요 (예:@./images/sketch.png). - 저작권: 다른 웹사이트의 스크린샷을 그대로 베껴서 상업적으로 사용하는 것은 저작권 문제가 될 수 있으니, 학습이나 구조 참고용으로만 활용하세요.
- 모델 선택: 이미지 인식 능력은 Gemini 3 Pro나 Gemini 3 Flash 모델이 가장 뛰어납니다. 가능하다면 최신 모델을 사용하세요.
📝 요약
- 준비: 손그림이나 스크린샷을 준비합니다.
- 입력: 터미널에서
gemini실행 후@파일이름으로 이미지를 넣습니다. - 명령: "이 그림대로 HTML/CSS 짜줘"라고 자연어로 말합니다.
- 결과: 순식간에 눈앞에 코드가 완성됩니다!
이제 디자인 감각이 없어도, 복잡한 CSS 문법을 몰라도 괜찮습니다. 그림 한 장과 Gemini CLI만 있으면 여러분의 상상은 현실이 됩니다. 🎨✨
파일 정리 자동화 에이전트 만들기 🗂️🤖
다운로드 폴더의 난잡한 파일들을 확장자별로 자동 분류하는 스크립트 작성
안녕하세요! 컴퓨터를 쓰다 보면 '다운로드(Downloads)' 폴더가 온갖 파일(이미지, PDF, 설치 파일, 압축 파일 등)로 뒤섞여 난장판이 되곤 하죠? 정리는 해야겠는데 일일이 폴더를 만들고 옮기기는 정말 귀찮습니다.
Gemini CLI를 사용하면 이 지루한 작업을 대신해 주는 '나만의 파일 정리 AI 에이전트'를 만들 수 있습니다. 복잡한 코딩은 필요 없습니다. 우리가 할 일은 AI에게 "정리해 줘"라고 명령을 내리는 스크립트 한 줄을 짜는 것뿐입니다.
아주 쉽고 상세하게, 3단계로 나누어 알려드립니다.
🧠 1단계: 기본 원리 이해하기 (AI는 어떻게 일하나요?)
우리가 만들 에이전트는 Gemini CLI의 헤드리스 모드(Headless Mode)와 도구(Tools) 기능을 사용합니다.
- 관찰: AI가 현재 폴더에 있는 파일 목록을 읽습니다 (
ls또는list_directory). - 판단: 파일 확장자(.jpg, .pdf, .zip)를 보고 어떤 폴더로 보낼지 결정합니다.
- 행동: 필요한 폴더(Images, Docs 등)가 없으면 만들고(
mkdir), 파일을 이동(mv)시킵니다.
이 모든 과정은 자연어 명령 하나로 실행됩니다.
🧪 2단계: 안전하게 테스트하기 (대화형 모드)
스크립트로 자동화하기 전에, 먼저 Gemini가 내 의도대로 잘 움직이는지 대화형 모드에서 테스트해 봅시다.
- 터미널 열기: 정리하고 싶은 폴더(예: Downloads)로 이동합니다.
- Gemini 실행:
gemini를 입력합니다. - 명령 내리기: 아래 프롬프트를 입력하세요. (Source의 예시를 응용)
- 확인 및 실행: Gemini가 "이런 명령을 실행하겠습니다"라고 목록을 보여주면, y를 눌러 승인합니다. 순식간에 파일들이 정리되는 것을 볼 수 있습니다!
🚀 3단계: 자동화 스크립트 만들기 ("정리해!" 한 마디로 끝내기)
매번 Gemini를 켜서 채팅하는 것도 귀찮죠? 터미널에서 명령어 한 단어(cleanup)만 치면 알아서 정리하도록 만들어 봅시다.
A. 스크립트 파일 작성 (cleanup.sh)
좋아하는 에디터로 cleanup.sh 파일을 만들고 아래 내용을 복사해 넣으세요.
#!/bin/bash
# Gemini에게 파일 정리를 시키는 명령어
# -p: 프롬프트를 바로 전달 (Headless Mode)
# --yolo: 묻지 않고 바로 실행 (자동 승인) - 주의 필요!
echo "🧹 AI 청소부가 다운로드 폴더를 정리 중입니다..."
gemini -p "
현재 디렉토리(@./)의 파일들을 분석해서 정리해 주세요.
다음 규칙에 따라 폴더를 생성하고 파일을 이동시키세요:
- 이미지(.jpg, .png, .webp 등) -> 'Images' 폴더
- 문서(.pdf, .docx, .hwp 등) -> 'Documents' 폴더
- 설치파일 및 압축(.dmg, .exe, .zip) -> 'Installers' 폴더
- 기타 파일들은 적절히 판단해서 분류하세요.
단, 이 스크립트 파일(cleanup.sh)은 절대 이동하지 마세요.
" --yolo
echo "✨ 정리 완료!"
핵심 포인트:
-p "...": Gemini 창을 띄우지 않고 명령만 전달합니다.--yolo: "파일을 옮길까요?"라고 묻지 않고 즉시 실행합니다. 완전 자동화를 위해 필수입니다.@./: 현재 폴더의 파일 목록을 컨텍스트로 제공합니다.
B. 실행 권한 부여 및 실행
터미널에서 다음 명령어로 스크립트를 실행 가능한 상태로 만듭니다.
chmod +x cleanup.sh
이제 폴더가 지저분해질 때마다 다음 명령만 입력하세요.
./cleanup.sh
🌟 심화: 더 똑똑한 에이전트 만들기 (멀티모달 활용)
단순히 확장자만 보고 분류하는 건 옛날 방식입니다. Gemini 3 Pro 모델을 사용하면 파일의 내용을 보고 분류할 수도 있습니다.
"스크린샷 내용보고 이름 바꾸기" 프롬프트
이미지 파일이 많은 폴더에서 다음과 같이 시켜보세요.
gemini -p "이 폴더의 모든 이미지 파일(@./)을 분석해줘. 이미지가 영수증이면 'Receipt_날짜.jpg'로, 풍경 사진이면 'Landscape_설명.jpg'로 파일 이름을 변경해서 'Images' 폴더로 옮겨줘."
Gemini는 이미지를 직접 보고(Vision) 내용을 이해한 뒤, 파일 이름을 스마트하게 변경하여 정리해 줍니다.
⚠️ 주의사항: 안전제일!
- YOLO 모드 주의:
--yolo옵션은 AI가 파일을 삭제하거나 덮어쓰는 명령도 승인 없이 수행합니다. 처음에는--yolo를 빼고 테스트하여 AI가 엉뚱한 짓을 하지 않는지 확인하는 것이 좋습니다. - 중요 파일 백업: 자동화 스크립트를 돌리기 전에는 중요한 파일을 백업해 두는 습관을 들이세요.
- 샌드박스: 더 안전하게 사용하고 싶다면
gemini --sandbox옵션을 사용하여, AI가 시스템의 다른 부분은 건드리지 못하게 격리된 환경(Docker)에서 실행할 수도 있습니다.
📝 요약
- 준비: gemini가 설치된 상태에서 정리할 폴더로 이동.
- 작성:
gemini -p "규칙대로 파일 정리해" --yolo명령어가 담긴 쉘 스크립트 생성. - 실행: 스크립트 실행 한 번으로 지저분한 폴더가 깔끔하게 자동 분류됨.
이제 파일 정리는 Gemini에게 맡기고, 여러분은 쾌적한 바탕화면을 즐기세요! 🧹✨
가짜 데이터(Mock Data) 생성기: 개발 테스트용 더미 데이터 대량 생성 팁 🎲📄
JSON, SQL, CSV 더미 데이터를 1초 만에 만들어 파일로 저장하는 방법
안녕하세요! 개발하다 보면 기능 테스트를 위해 가짜 데이터(Mock Data)가 필요할 때가 정말 많습니다. "test1", "abc", "123" 같은 성의 없는 데이터 말고, 그럴듯한 이메일, 실제 같은 주소, 다양한 날짜가 포함된 데이터가 필요하죠.
하지만 이걸 일일이 타이핑하거나 온라인 생성 사이트를 찾아다니는 건 시간 낭비입니다. Gemini CLI를 사용하면 이 지루한 작업을 단 하나의 명령어로 끝낼 수 있습니다. JSON, SQL, CSV 등 원하는 형식을 말만 하면 파일로 딱 만들어주는 비법을 아주 쉽고 상세하게 알려드립니다.
🧱 1. 기본 원리: "만들어서 저장해(>)"
우리는 Gemini CLI의 헤드리스 모드(-p)와 리눅스/맥의 리다이렉션(>) 기능을 사용할 것입니다.
- 구조:
gemini -p "데이터 만들어줘" > 파일이름.확장자 - 의미: "Gemini야, 내가 시키는 대로 데이터를 만들어서 화면에 출력하지 말고 파일에 저장해."
📦 2. JSON 데이터 생성 (프론트엔드/API 테스트용)
API가 아직 안 만들어졌는데 프론트엔드 UI를 테스트해야 하나요? 가짜 응답 데이터를 만들어 봅시다.
상황: 쇼핑몰 상품 목록 10개가 필요함
상품명, 가격, 설명, 카테고리, 재고 유무가 포함된 JSON이 필요합니다.
명령어 입력:
gemini -p "
스마트폰 쇼핑몰을 위한 가짜 상품 데이터 10개를 JSON 배열 포맷으로 만들어줘.
각 아이템은 다음 필드를 가져야 해:
- id: UUID 형식
- name: 현실적인 스마트폰 이름 (예: Galaxy S24, iPhone 15 등)
- price: 500달러에서 1500달러 사이의 정수
- description: 20단어 내외의 마케팅 문구
- inStock: true 또는 false
코드 블록 없이 오직 순수한 JSON 데이터만 출력해줘.
" > products.json
결과: products.json 파일이 생성되고, 열어보면 완벽한 구조의 JSON 데이터가 들어있습니다. 이제 이 파일을
프론트엔드 코드에서 import 해서 쓰면 됩니다.
🗄️ 3. SQL 데이터 생성 (데이터베이스 시딩용)
DB 테이블을 만들고 나서 테스트용으로 데이터를 채워 넣는(Seeding) 작업, 정말 귀찮죠? INSERT 문을 자동으로 짜달라고 하세요.
상황: 사용자(Users) 테이블에 넣을 데이터 20명
이름, 이메일, 가입일, 비밀번호 해시값이 필요합니다.
명령어 입력:
gemini -p "
'users' 테이블에 넣을 SQL INSERT 문 20개를 작성해줘.
컬럼은 다음과 같아:
- id: 자동 증가 정수 (1부터 시작)
- username: 영어 소문자와 숫자 조합
- email: 실제 같은 이메일 주소 (@gmail.com, @yahoo.com 등)
- password_hash: 'hashed_pw_x' 같은 더미 값
- created_at: 2024년 1월 1일 이후의 랜덤한 날짜/시간 (YYYY-MM-DD HH:MM:SS)
설명 없이 오직 SQL 쿼리문만 출력해.
" > seed_users.sql
결과: seed_users.sql 파일에 20줄의 INSERT INTO users ... 문장이 저장됩니다. DB 툴에서
이 파일을 실행하기만 하면 데이터가 꽉 찹니다.
📊 4. CSV 데이터 생성 (엑셀/데이터 분석용)
데이터 분석 연습이나 엑셀 보고서 테스트를 위해 엑셀 파일(CSV)이 필요할 때도 있습니다.
상황: 지난달 매출 내역 50건
날짜, 상품명, 수량, 단가, 총액이 필요합니다.
명령어 입력:
gemini -p "
지난달 매출 기록 데이터 50건을 CSV 포맷으로 만들어줘.
헤더(첫 줄)를 포함하고 다음 컬럼을 가져야 해:
- TransactionDate: 지난달 날짜 중 랜덤
- Product: 'Laptop', 'Mouse', 'Keyboard', 'Monitor' 중 하나
- Quantity: 1에서 5 사이 정수
- UnitPrice: 10.00에서 2000.00 사이 실수
- Total: Quantity * UnitPrice 계산된 값
설명은 빼고 CSV 텍스트만 출력해줘.
" > sales_data.csv
결과: 엑셀로 바로 열 수 있는 sales_data.csv 파일이 뚝딱 만들어집니다.
🧪 5. 고급 팁: "엣지 케이스(Edge Case)" 데이터 만들기
테스트할 때 항상 "예쁜 데이터"만 넣으면 안 됩니다. 사용자가 이상한 값을 넣었을 때 앱이 죽는지 확인해야죠. Gemini에게 "일부러 망가진 데이터"를 요청하세요.
gemini -p "
회원가입 테스트를 위한 JSON 데이터 10개를 만들어줘.
그중 3개는 정상 데이터고,
나머지 7개는 '이메일에 @가 없음', '이름에 특수문자 포함', '나이가 음수' 같은
유효성 검사에 실패할 만한 악성 데이터를 섞어서 만들어줘.
" > test_edge_cases.json
이 데이터로 테스트하면 여러분의 앱을 훨씬 튼튼하게 만들 수 있습니다.
⚠️ 주의사항 및 한계
- 용량 제한: Gemini CLI(특히 무료 모델)는 한 번에 출력할 수 있는 텍스트 길이에 제한이 있습니다. 한 번에 "10,000개 만들어줘"라고 하면 중간에 끊깁니다. 50개~100개 정도로 나눠서 요청하는 것이 좋습니다.
- 민감 정보: 실제 사람의 전화번호나 주소가 우연히 생성될 수도 있으니, 생성된 데이터는 반드시 내부 테스트용으로만 사용하세요.
📝 요약
- JSON:
gemini -p "JSON 구조 설명..." > 파일명.json - SQL:
gemini -p "INSERT 문 작성해줘..." > 파일명.sql - CSV:
gemini -p "CSV 포맷으로..." > 파일명.csv - 팁: "오직 데이터만 출력해(no explanations)"라고 해야 파일이 깔끔해집니다.
이제 더미 데이터 만드느라 고민하지 마세요. Gemini에게 주문하고 커피 한 잔 하시면 됩니다! ☕️