Gemini CLI 직접 사용

1. 소개

이 Codelab에서는 Gemini의 기능을 터미널에서 직접 사용할 수 있도록 지원하는 오픈소스 AI 에이전트인 Gemini CLI에 대해 알아봅니다.

Gemini CLI 프로젝트는 오픈소스이며 공개 로드맵은 여기에서 확인할 수 있습니다.

Codelab을 통해 다음과 같은 활동에서 단계별 접근 방식을 사용합니다.

  1. Gemini CLI 설치
  2. 기본 구성
  3. Gemini CLI의 도구 및 기본 제공 명령어 살펴보기
  4. GEMINI.md 파일을 통해 Gemini CLI 맞춤설정
  5. Gemini CLI로 몇 가지 사용 사례 살펴보기

필요한 항목

  • Chrome 웹브라우저
  • Gmail 계정
  • Node 20 이상이 설치된 로컬 머신

이 Codelab은 초보자를 포함한 모든 수준의 사용자 및 개발자를 위해 설계되었습니다.

2. 설치

설정을 실행하고 Gemini CLI를 실행하기 전에 폴더를 만들어 보겠습니다. 이 폴더는 이 폴더 내에서 만들 수 있는 모든 프로젝트의 홈 폴더로 사용됩니다. 이는 Gemini CLI가 작동하는 시작점입니다. 필요에 따라 시스템의 다른 폴더도 참조하며 이에 대해서는 나중에 설명합니다.

샘플 폴더 (gemini-cli-projects)를 만들고 아래에 표시된 명령어를 통해 해당 폴더로 이동합니다. 다른 폴더 이름을 사용하려면 그렇게 하세요.

mkdir gemini-cli-projects

해당 폴더로 이동합니다.

cd gemini-cli-projects

Gemini CLI를 실행하려면 다음 방법 중 하나를 사용하면 됩니다.

  1. 다음 명령어를 사용하여 실행합니다.
npx https://github.com/google-gemini/gemini-cli
  1. 먼저 시스템에 Gemini CLI를 전역적으로 설치할 수 있습니다. 이를 수행할 수 있는 관리자 권한이 있는지 확인합니다.
npm install -g @google/gemini-cli

그런 다음 다음 명령어를 사용하여 실행합니다.

gemini

위의 방법 중 하나를 통해 Gemini CLI를 실행했다면 테마 선택을 묻는 다음 화면이 표시됩니다. 다음 중 원하는 것을 선택하세요.

9b02bd0bf1c670d.png

이 옵션을 선택하면 인증 방법을 묻는 메시지가 표시됩니다. 이 실습에서는 개인 Google 계정을 사용하고 Google 또는 Google Workspace 관련 계정은 사용하지 않는 것이 좋습니다. 이 무료 라이선스를 통해 Gemini 2.5 Pro와 100만 토큰 컨텍스트 윈도우를 사용할 수 있습니다. 무료 등급에서는 분당 60개의 모델 요청과 일일 1,000개의 요청을 무료로 허용합니다.

Google 계정에 제공되는 현재 무료 할당량에 도달한 경우 Gemini API 키 또는 Google Cloud Vertex AI를 사용할 수 있습니다. 이 경우 프로젝트 ID와 해당 프로젝트의 위치 이름이 필요합니다. 다른 인증 방법을 사용하려면 문서의 인증 섹션을 참고하세요.

afce8d90e20adb6.png

Enter를 클릭합니다. 그러면 브라우저에서 Google 인증 페이지가 열립니다. Google 계정으로 인증을 진행하고 약관에 동의하면 인증이 완료된 후 Gemini CLI가 준비되어 명령을 기다리고 있음을 확인할 수 있습니다. 샘플 스크린샷은 아래와 같습니다.

ffd8ddfede565612.png

/help (슬래시)를 입력하면 아래와 같이 다양한 명령어와 단축키가 표시됩니다.

d333742310905dcc.png

Gemini CLI와의 첫 번째 상호작용

상자에 첫 번째 메시지를 입력합니다. 다음과 같은 쿼리를 입력합니다.

4dc0961206c1b568.png

쿼리 결과로 호출된 GoogleSearch 도구 (Gemini CLI의 내장 도구)가 표시됩니다. 이것은 Gemini CLI의 강력한 내장 도구 중 하나인 GoogleSearch를 이미 사용한 흥미로운 방법입니다. 이 도구는 웹에서 가져온 정보를 기반으로 대답을 제공합니다. 도구에 대한 자세한 내용은 다음 섹션에서 살펴보겠습니다.

지금은 Gemini CLI를 종료하겠습니다. /quit 명령어를 사용하거나 대화형 Gemini CLI 터미널 세션에서 Ctrl-C를 두 번 실행하면 됩니다.

Gemini CLI 맞춤설정 파일 : settings.json

Gemini CLI를 처음 시작했을 때 테마와 인증 방법을 선택하라는 메시지가 표시되었습니다. 이후 Gemini CLI를 실행할 때는 테마와 인증 방법을 다시 선택하라는 메시지가 표시되지 않습니다. 즉, 어딘가에 지속되고 사용되는 파일은 settings.json이라고 하며 Gemini CLI를 맞춤설정하는 방법입니다.

설정은 다음 우선순위에 따라 적용됩니다.

  1. 작업공간: .gemini/settings.json (사용자 및 시스템 설정보다 우선함)
  2. 사용자: ~/.gemini/settings.json (시스템 설정 재정의)
  3. 시스템: /etc/gemini-cli/settings.json (모든 사용자에게 적용됨)

테마를 선택할 때 사용자 설정에 설정을 저장하도록 요청했습니다. ~/.gemini folder을 방문하면 settings.json 파일이 표시됩니다.

settings.json 파일은 아래와 같습니다. 다른 테마를 선택한 경우 해당 이름이 표시됩니다.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal"
}

3. Gemini CLI 명령어 매개변수

Gemini CLI를 시작할 때 제공할 수 있는 몇 가지 명령줄 매개변수가 있습니다. 옵션의 전체 목록을 가져오려면 아래와 같이 --help를 사용하면 됩니다.

gemini --help

그러면 사용 가능한 전체 옵션이 표시됩니다. 여기에서 문서를 확인하세요.

몇 가지를 살펴보겠습니다. 첫 번째 방법은 Pro 또는 Flash 모델을 사용하도록 Gemini CLI를 구성하는 것입니다. 현재 이 실습을 작성하는 시점에는 이 두 모델만 지원됩니다. 기본적으로 Gemini 2.5 Pro 모델이 사용되지만 Flash 모델을 사용하려면 아래와 같이 -m 매개변수를 통해 Gemini CLI를 시작할 때 사용하면 됩니다.

gemini -m "gemini-2.5-flash"

위와 같은 방식으로 시작하면 아래와 같이 Gemini CLI 터미널의 오른쪽 하단에서 모델을 확인할 수 있습니다.

6e662d03b61b2b3f.png

비대화형 모드

비대화형 모드에서 Gemini CLI를 실행하는 것도 흥미로운 옵션입니다. 즉, 프롬프트를 직접 제공하면 Gemini CLI 대화형 터미널이 열리지 않고 바로 응답합니다. 스크립트 또는 기타 자동화 프로세스의 일부로 자동화된 방식으로 Gemini CLI를 사용하려는 경우에 매우 유용합니다. 아래와 같이 -p 매개변수를 사용하여 Gemini CLI에 프롬프트를 제공합니다.

gemini -p "What is the gcloud command to deploy to Cloud Run"

후속 질문으로 대화를 이어갈 수는 없습니다.

4. Gemini CLI - 기본 제공 도구

Gemini CLI에는 기본 제공 도구 세트가 함께 제공되며 도구 문서에는 'Gemini 모델은 이러한 도구를 사용하여 로컬 환경과 상호작용하고, 정보에 액세스하고, 작업을 실행합니다. 이러한 도구는 CLI의 기능을 향상시켜 텍스트 생성을 넘어 다양한 작업을 지원할 수 있습니다.'

현재 내장 도구 목록을 가져오려면 아래와 같이 /tools 명령어를 호출하면 됩니다.

39939257e3f3818e.png

가장 먼저 떠올려야 할 점은 Gemini CLI가 원할 때 이러한 도구를 간단히 호출할 수 있는지 묻는 것입니다. 로컬 시스템에 쓰거나, 외부 시스템에서 읽거나, 외부 네트워크로 이동하는 등 민감한 작업의 경우 기본 대답은 아니요입니다.

CLI를 시작할 때 --yolomode가 제공되지만 사용하지는 않습니다. Gemini CLI에서 선택한 도구를 실행할 권한을 요청하는 메시지가 표시됩니다. 권한을 거부하거나, 한 번 실행하도록 허용하거나, 항상 실행되도록 전체 권한을 부여할 수 있습니다. 모든 것을 완전히 제어할 수 있어야 합니다.

Gemini CLI가 실행할 내장 도구 중 하나를 선택하고 모든 작동 방식을 잘 이해할 수 있는 프롬프트를 입력해 보겠습니다.

전 세계의 최신 금융 뉴스를 확인하고 Gemini CLI를 실행한 로컬 작업 디렉터리의 파일에 저장하고 싶습니다. 다음과 같은 프롬프트를 입력합니다.

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

잠시 동안 무엇을 해야 하는지 상상해 보세요. 이상적으로는 Google 검색을 실행하여 금융 뉴스를 제공할 수 있는 관련 정보 소스에서 뉴스를 가져와야 합니다. 그런 다음 콘텐츠가 포함된 finance-news-today.txt라는 파일을 만들어야 합니다 (권한이 필요한 로컬 시스템의 쓰기 작업).

어떤 일이 일어나는지 살펴보겠습니다 (머신에서도 동일한 작업을 진행해야 함).

가장 먼저 GoogleSearch 도구를 호출하여 웹을 검색합니다.

122e6e4b01d05e69.png

검색이 완료되면 아래와 같이 데이터를 가져옵니다.

b721f40e6f643318.png

이 작업이 완료되면 파일에 쓸 준비가 되고 WriteFile 도구를 사용하지만 민감한 작업 (쓰기)이므로 권한을 요청합니다. '한 번만 허용', '항상 허용' 등 권한 유형을 결정할 수 있습니다. 여기서는 '한 번만 허용'을 선택합니다.

e92f3a4774dc1e7.png

그러면 정보가 파일에 기록되고 아래에 성공 메시지가 표시됩니다.

33c6afdb89033c35.png

파일이 작성되었는지 확인하려면 어떻게 해야 하나요? @file를 사용하여 콘텐츠를 읽어 달라고 요청할 수 있습니다. 아래와 같이 프롬프트를 제공합니다. @을 입력하면 현재 폴더의 파일 목록이 표시되고 방금 만든 파일이 표시됩니다. 이 옵션을 선택하고 프롬프트를 제출합니다. 프롬프트는 다음과 같습니다.

read the contents of @finance-news-today.txt

이렇게 하면 필요한 도구 (ReadManyFiles, ReadFile)가 호출되고 콘텐츠가 아래와 같이 표시됩니다.

6f214cd743646f44.png

이때 Gemini CLI 내에서 셸을 직접 사용하는 방법을 알아보는 것도 좋습니다. 메시지 상자에서 !를 눌러 셸 모드로 전환할 수 있습니다. 셸 모드로 전환됩니다. !를 다시 누르거나 ESC 키를 누르면 돌아갈 수 있습니다.

셸 모드에서는 아래와 같이 프롬프트 시작 부분에 !가 표시됩니다.

9e239408835a3acd.png

아래와 같이 pwdls와 같은 표준 명령어를 사용하여 직접 확인할 수 있습니다.

2f5d53d3c77fc8e2.png

현재 cat 명령어를 통해 파일의 콘텐츠를 출력할 수 있습니다.

2249b5c80e3ae2c0.png

연습: 다음은 시도해 볼 수 있는 간단한 연습입니다. 원하는 RSS 피드를 선택합니다. Gemini CLI에 프롬프트를 제공하여 RSS 피드의 콘텐츠를 가져오고 결과를 특정 방식으로 포맷합니다. 이는 하루를 시작할 때 작업을 자동화하는 좋은 방법입니다.

도움말: Gemini CLI가 WebFetch 도구를 사용하도록 해야 합니다.

5. 모델 컨텍스트 프로토콜 (MCP) 서버 구성

MCP 서버는 모델 컨텍스트 프로토콜을 통해 Gemini CLI에 도구와 리소스를 노출하여 외부 시스템 및 데이터 소스와 상호작용할 수 있도록 하는 애플리케이션입니다. MCP 서버는 Gemini 모델과 로컬 환경 또는 API와 같은 기타 서비스 간의 브리지 역할을 합니다.

MCP 서버를 사용하면 Gemini CLI가 도구를 검색하고 실행할 수 있으므로 데이터베이스, API, 맞춤 스크립트 또는 전문 워크플로와 상호작용하는 등 기본 제공 기능을 넘어 작업을 실행할 수 있도록 Gemini CLI의 기능이 확장됩니다.

Gemini CLI는 맞춤 도구를 검색하고 사용하기 위한 MCP 서버 구성을 지원합니다. Gemini CLI가 실행된 경우 아래와 같이 /mcp 명령어를 통해 구성된 MCP 서버를 확인할 수 있습니다.

255a14eb31529370.png

MCP 서버를 구성하지 않은 경우 Gemini CLI의 MCP 서버 문서가 실행됩니다.

~/.gemini/settings.json 파일 또는 프로젝트의 루트 디렉터리에서 전역 수준으로 MCP 서버를 구성할 수 있습니다. .gemini/settings.json 파일을 만들거나 엽니다. 파일 내에 아래와 같이 mcpServers 구성 블록을 추가해야 합니다.

"mcpServers": {
    "server_name_1": {},
    "server_name_2": {},
    "server_name_n": {}
 }

각 서버 구성은 다음 속성을 지원합니다 ( 참조 문서).

필수 (다음 중 하나)

  • command (문자열): Stdio 전송 실행 파일의 경로
  • url (문자열): SSE 엔드포인트 URL입니다 (예: "http://localhost:8080/sse")
  • httpUrl (문자열): HTTP 스트리밍 엔드포인트 URL

선택사항

  • args (string[]): Stdio 전송의 명령줄 인수
  • headers (객체): url 또는 httpUrl을 사용할 때의 맞춤 HTTP 헤더
  • env (객체): 서버 프로세스의 환경 변수입니다. 값은 $VAR_NAME 또는 ${VAR_NAME} 구문을 사용하여 환경 변수를 참조할 수 있습니다.
  • cwd (문자열): Stdio 전송의 작업 디렉터리
  • timeout(숫자): 요청 제한 시간(밀리초)(기본값: 600,000ms = 10분)
  • trust (불리언): true인 경우 이 서버의 모든 도구 호출 확인을 우회합니다 (기본값: false).
  • includeTools (string[]): 이 MCP 서버에서 포함할 도구 이름 목록입니다. 지정된 경우 여기에 나열된 도구만 이 서버에서 사용할 수 있습니다 (허용 목록 동작). 지정하지 않으면 서버의 모든 도구가 기본적으로 사용 설정됩니다.
  • excludeTools (string[]): 이 MCP 서버에서 제외할 도구 이름 목록입니다. 여기에 나열된 도구는 서버에서 노출되더라도 모델에서 사용할 수 없습니다. 참고: excludeTools가 includeTools보다 우선합니다. 도구가 두 목록에 모두 있으면 제외됩니다.

GitHub를 사용하는 경우 필요할 수 있는 주요 MCP 서버 중 하나를 구성해 보겠습니다. Gemini CLI는 시스템에 있는 git 도구를 호출하며, 대신 해당 도구를 사용하도록 Gemini CLI에 지시할 수도 있습니다. 따라서 명령을 지원하고 실행하는 데 도움이 되지만 시스템에 이러한 도구가 설정되어 있어야 합니다.

GitHub MCP 서버

GitHub 공식 MCP 서버는 노출하는 도구와 이를 구성하는 방법에 관한 충분한 문서를 제공합니다. Gemini CLI는 원격 MCP 서버도 지원하므로 로컬 또는 원격으로 실행할 수 있습니다.

이 튜토리얼에서는 GitHub의 원격 MCP 서버 옵션을 사용합니다. 이를 위해서는 먼저 GitHub의 개인 액세스 토큰 (PAT)이 있어야 합니다.

이러한 서버가 있으면 settings.json 파일에 MCP 서버 객체를 추가해야 합니다. 내 시스템의 전체 settings.json 파일은 아래와 같습니다. 추가 설정이 있을 수 있지만 mcpServers 객체는 아래와 같아야 합니다.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "GITHUB_PAT"
            },
            "timeout": 5000
       }
  }
}

Github MCP 서버 구성으로 settings.json를 업데이트한 후 Gemini CLI를 다시 시작하거나 /mcp refresh 명령어를 실행하면 됩니다. 아래 스크린샷은 내 머신에 구성된 GitHub MCP 서버와 이제 Gemini CLI에서 MCP와 함께 사용할 수 있는 다양한 도구를 강조 표시합니다.

e34f348129d448e9.png

GitHub MCP 서버의 도구 중 하나를 호출하는 프롬프트로 시작해 보겠습니다. 다음 프롬프트를 입력합니다.

da643d182ac3fca4.png

GitHub MCP 서버에서 올바른 도구를 선택하지만 다른 내장 도구와 마찬가지로 도구를 호출할 명시적 권한을 제공해야 합니다. 출력을 확인해 보세요.

이제 GitHub 프로젝트 중 하나를 사용해야 합니다. 다음과 같이 자연어로 질문을 입력하세요.

  • <repo-name>을 설명해 줘.
  • 내 로컬 머신에서 <repo-name>을 클론해 줘.
  • @<파일 이름> 또는 @<디렉터리 이름>을 설명해 줘.
  • 이 저장소의 구성요소에는 무엇이 있나요?
  • 필요한 변경사항을 적용했습니다. 변경사항을 GitHub에 푸시하고 GitHub MCP 서버 도구를 사용하여 이를 수행할 수 있나요?

실습 후반부에서 GitHub MCP 서버를 자세히 다루는 연습이 있습니다.

Context7 MCP 서버

Context7은 LLM 및 AI 코드 편집기에 관한 최신 문서를 제공합니다. 선택한 프레임워크의 최신 문서를 사용하여 LLM에 컨텍스트를 제공하려는 경우 Context7 MCP 서버를 구성하는 것이 좋습니다.

Context7 홈페이지에 라이브러리가 표시되어 있는지 확인합니다.

settings.json 파일에 추가해야 하는 MCP 서버는 다음과 같습니다.

"context7": {
      "httpUrl": "https://mcp.context7.com/mcp"
    }

MCP 서버가 구성되고 Gemini CLI가 MCP 서버와 함께 로드되면 아래와 같이 Context7 도구를 볼 수 있습니다.

92f715d87989ff72.png

이제 프롬프트에서 구체적으로 지정하여 특정 XYZ 프레임워크를 사용하여 애플리케이션이나 코드 스니펫을 생성할 때 최신 문서를 위해 Context7를 사용하도록 Gemini CLI에 요청할 수 있습니다.

다음은 Google의 에이전트 개발 키트 (ADK)를 사용하여 에이전트를 작성하려는 프롬프트의 예입니다. 프롬프트에서 Context7 MCP 서버를 통해 동일한 문서를 조회하도록 지정하고 있습니다.

I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki 

수신된 출력은 다음과 같습니다.

fe79972a61372d59.png

Google Slides MCP 서버

https://github.com/matteoantoci/google-slides-mcp의 GitHub 프로젝트는 Google Slides API와 상호작용하기 위한 MCP 서버를 제공합니다. 이를 통해 프로그래매틱 방식으로 Google Slides 프레젠테이션을 만들고, 읽고, 수정할 수 있습니다.

MCP 서버를 구성하는 단계는 프로젝트에 나와 있습니다. 서버를 빌드하고, Google Cloud 프로젝트 및 OAuth 2.0 토큰을 구성한 다음, settings.json 파일에서 MCP 서버를 구성하는 Node.js 환경이 필요합니다.

설정이 완료되면 다음과 같은 프롬프트를 실행할 수 있습니다.

  • 'web_url'에서 최신 정보를 추출하고 핵심 사항으로 요약한 다음 'my_presentation'이라는 프레젠테이션을 만들어 줘.

한번 사용해 보세요.

MCP 서버 더보기

다음은 관심이 있을 수 있는 MCP 서버의 추가 목록입니다.

  1. Firebase MCP 서버
  2. Google 생성형 AI 미디어 서비스 (Imagen, Veo, Lyria)
  3. 데이터베이스용 MCP 도구 상자 (Firestore, BigQuery, Google Cloud 데이터베이스 사용)
  4. Google Workspace MCP 서버 (Docs, Sheets, Calendar, Gmail과 호환)

위 MCP 서버 설정에 관한 안내는 이 블로그 게시물에 게시되어 있습니다.

6. 시도해 볼 사용 사례

Gemini CLI는 개발자와 비개발자 모두에게 적용되는 광범위한 사용 사례에 적용할 수 있습니다. 다음은 몇 가지 시나리오이며 관심 분야에 따라 일부 또는 전체를 시도해 볼 수 있습니다.

이러한 각 경우에 프롬프트가 제공됩니다. Gemini CLI를 실행할 때 -p 매개변수를 통해 Gemini CLI 대화형 모드 또는 비대화형 모드에서 이를 자유롭게 사용해 볼 수 있습니다.

파일/폴더 정리

필요에 따라 Gemini CLI를 사용하여 다양한 폴더의 유형에 따라 파일을 정리할 수 있습니다. 컴퓨터에서 .txt, .png, .jpg, .pdf, .mp4 등의 파일이 여러 개 있는 폴더로 이동합니다. 바탕 화면 또는 다운로드 폴더일 가능성이 큽니다.

해당 폴더로 이동하여 Gemini CLI를 시작합니다. 먼저 이미지, 문서, 동영상과 같은 여러 폴더를 만들어 달라고 요청한 다음 폴더에 있는 파일을 정리해 달라고 요청합니다.

Gemini CLI는 명령어를 실행하기 전에 권한을 요청하는 경우가 많으며, 특히 파일 시스템을 수정하는 명령어 (예: 파일 쓰기, 이동, 삭제)의 경우 더욱 그렇습니다. 권한을 부여하기 전에 항상 이러한 메시지를 주의 깊게 검토하세요. 이는 안전망과 같습니다.

Create the following folders "Images","Documents","Videos"

그런 다음 다음 프롬프트를 입력합니다.

Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.

기타 정리 시나리오 (프롬프트는 각 시나리오 옆에 제공됨):

  1. 요약: 'Documents' 폴더의 각 문서에 대해 문서의 주요 사항을 3문장으로 요약한 'summary_ORIGINAL_FILENAME.txt'라는 txt 파일을 동일한 폴더에 만듭니다.
  2. 유형별 분류: 이 디렉터리의 모든 PDF 및 DOCX 파일을 스캔합니다. 이름이나 콘텐츠에 '인보이스'가 포함된 모든 파일을 '재무/인보이스' 폴더로 이동해 줘. '영수증'이 포함된 파일을 '재무/영수증'으로 이동합니다. 다른 .docx 파일은 '보고서'에 저장됩니다.
  3. 주요 정보 추출 (및 '태그'): 'Financial/Invoices' 폴더에 있는 각 PDF 파일의 콘텐츠를 읽습니다. 날짜를 찾은 경우 YYYY-MM-DD 형식으로 날짜를 포함하도록 파일 이름을 바꿉니다.예를 들면 다음과 같습니다. ‘invoice_2025-07-26_original_name.pdf'.

이미지 정리

머신에서 이미지 콘텐츠를 정리하는 방법을 살펴보겠습니다.

이 기능을 사용해 보려면 다음 단계를 따르세요.

  • 다양한 이미지 파일 (.jpg, .png 등)이 포함된 디렉터리/폴더가 있어야 합니다. EXIF 데이터가 있는 사진을 포함합니다 (카메라/휴대전화의 대부분의 사진에 이 데이터가 있음).
  • 이 디렉터리로 이동합니다.
  • Gemini CLI를 실행합니다.

다음 시나리오를 사용해 보세요 (프롬프트는 각 시나리오 옆에 제공됨).

  • 날짜별로 이름 바꾸기 (EXIF 데이터): 이 디렉터리에 있는 모든 .jpg 및 .png 파일의 이름을 EXIF 데이터의 생성 날짜를 포함하는 'YYYYMMDD_HHMMSS_original_name.jpg' 형식으로 바꿉니다. EXIF 날짜가 없으면 파일의 마지막 수정 날짜를 사용합니다.
  • 이미지 설명 만들기: 이 폴더의 각 이미지에 대해 이미지에 있는 내용을 설명하고 해당 설명을 동일한 디렉터리의 'description_ORIGINAL_FILENAME.txt'라는 텍스트 파일에 저장합니다.
  • 중복 식별 (개념적, 고급 논리 필요): 시각적 콘텐츠를 기반으로 이 폴더에서 중복 이미지를 찾아 파일 이름을 나열해 줘. 아직 삭제하지 마세요.

기사 요약 (로컬 파일 또는 웹)

아래 각 시나리오에서 필요에 따라 URL, 관심 주제, 로컬 파일 이름을 변경해도 됩니다. 제공된 파일 이름은 샘플 파일 이름이며, 시스템에 있는 파일의 파일 이름으로 바꿀 수 있습니다.

다음 시나리오를 사용해 보세요 (프롬프트는 각 시나리오 옆에 제공됨).

  • 웹 기사 요약 (단일 URL): https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371로 이동하여 이 뉴스 기사의 주요 사항 3개를 요약해 줘.
  • 여러 웹 문서 요약 (예: 검색 결과): Google 검색을 사용하여 'Gemini CLI'에 관한 최신 뉴스 기사를 찾습니다. 관련성이 높은 상위 5개 기사에 대해 각각 2~3문장으로 요약하고 URL을 나열해 줘.
  • 로컬 텍스트 파일 요약: 'my_research_paper.txt'에 있는 논문의 주요 내용을 요약해 줘. 방법론과 결론에 집중하세요.
  • 로컬 PDF 요약: 'financial_report_Q2_2025.pdf'을 읽어 줘. 언급된 재무 실적과 주요 과제를 요약해 줘.

특정 정보 추출 (로컬 파일 또는 웹)

아래 각 시나리오에서 필요에 따라 URL, 관심 주제, 로컬 파일 이름을 변경해도 됩니다. 제공된 파일 이름은 샘플 파일 이름이며, 시스템에 있는 파일의 파일 이름으로 바꿀 수 있습니다.

다음 시나리오를 사용해 보세요 (프롬프트는 각 시나리오 옆에 제공됨).

  • 로컬 기사에서 항목 추출: 'biography.txt'에서 이름이 지정된 모든 개인과 관련된 중요한 날짜를 나열해 줘.
  • PDF의 표에서 데이터 추출: 'quarterly_sales.pdf'에서 '지역별 제품 판매'를 보여주는 3페이지의 표에서 데이터를 추출하고 Markdown 표 형식으로 표시해 줘.
  • PDF의 표에서 데이터 추출: 'quarterly_sales.pdf'에서 '지역별 제품 판매'를 보여주는 3페이지의 표에서 데이터를 추출하고 Markdown 표 형식으로 표시해 줘.
  • 뉴스 웹사이트에서 뉴스 헤드라인과 소스 추출: 'https://news.google.com/' (또는 유사한 뉴스 사이트)로 이동합니다. 첫 페이지에서 주요 헤드라인과 해당 뉴스 소스를 추출해 줘. 글머리 기호 목록으로 표시해 줘.
  • 전자상거래 페이지에서 제품 사양 찾기: 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441'로 이동합니다(책의 예). 도서 제목, 저자, 기타 세부정보를 추출합니다. 구조화된 JSON 형식으로 표시해 줘.

콘텐츠 기반 질문 답변 (RAG와 유사한 동작)

아래 각 시나리오에서 필요에 따라 URL, 관심 주제, 로컬 파일 이름을 변경해도 됩니다. 제공된 파일 이름은 샘플 파일 이름이며, 시스템에 있는 파일의 파일 이름으로 바꿀 수 있습니다.

다음 시나리오를 사용해 보세요 (프롬프트는 각 시나리오 옆에 제공됨).

  • 로컬 문서에 대한 Q&A:'user_manual.pdf'을 첨부합니다. 네트워크 연결 문제를 해결하는 단계는 무엇인가요?
  • 웹페이지의 Q&A: 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health'의 콘텐츠를 사용하여 WHO에 따르면 기후 변화와 관련된 주요 건강 위험은 무엇인가요?
  • 여러 소스의 정보 비교: 최근 경제 정책 변경사항을 다루는 뉴스 기사 두 개(article1.txt, article2.txt)가 있습니다. 소규모 비즈니스에 미칠 수 있는 잠재적 영향에 대한 두 사람의 견해를 비교하고 대조해 보세요.

추출된 정보를 기반으로 콘텐츠 생성

아래 각 시나리오에서 필요에 따라 URL, 관심 주제, 로컬 파일 이름을 변경해도 됩니다.

다음 시나리오를 사용해 보세요 (프롬프트는 각 시나리오 옆에 제공됨).

  • 기사에서 뉴스 브리프 생성: @tech_innovation_article.txt를 읽어 줘. 회사의 뉴스레터에 적합한 짧고 흥미로운 뉴스 브리프 (약 150단어)를 작성하여 새로운 기술과 그 잠재력을 강조해 줘.
  • 회의 스크립트를 요약하는 이메일 초안을 작성해 줘: 회의 스크립트 파일은 @meeting_transcript.txt입니다. 팀에 보낼 이메일을 작성하여 결정된 주요 사항과 할당된 작업 항목을 요약하고 각 항목의 담당자를 포함해 줘.

Gemini CLI 멀티모달 지원

Gemini CLI는 Gemini를 통해 멀티 모델을 지원하며, 요구사항에 따라 다양한 콘텐츠 형식의 파일을 처리하도록 요청할 수 있습니다.

Gemini CLI로 여러 청구서 이미지를 처리하고 핵심 정보를 추출합니다. 아래 단계를 따르세요.

  • 머신에 폴더를 만들고 다음 GitHub 저장소에서 인보이스를 다운로드합니다.
  • 해당 폴더에서 Gemini CLI를 실행합니다.

다음 프롬프트를 사용하여 인보이스에서 표 형식으로 정보를 추출해 보겠습니다.

The current folder contains a list of invoice image files. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.

다음과 같은 출력이 표시됩니다.

fb4183498d02229.png

텍스트가 아닌 형식의 자체 파일에 적용합니다.

Gemini CLI를 사용하여 데이터베이스 작업하기

Gemini CLI를 사용하면 다양한 데이터베이스를 더 효율적으로 사용할 수 있습니다. 자연어로 쿼리, 데이터 내보내기, 데이터베이스 스키마 설계, 실제 테스트 데이터 생성 등 다양한 시나리오에 사용할 수 있습니다.

이를 설명하기 위해 SQLite3를 사용합니다. SQLite3를 설치하고 샘플 Chinook 데이터베이스가 있어야 합니다.

SQLite3 설정에 관한 간단한 안내는 다음과 같습니다.

  1. macOS: SQLite3가 사전 설치되어 있습니다. sqlite3 --version으로 인증합니다. 필요한 경우 Homebrew를 사용하여 설치합니다(brew install sqlite3).
  2. Windows: SQLite 웹사이트에서 사전 컴파일된 바이너리를 다운로드합니다. 파일을 디렉터리 (예: C:\sqlite)에 있습니다. 이 디렉터리를 시스템의 PATH 환경 변수에 추가합니다.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

샘플 Chinook 데이터베이스를 다운로드합니다 (다운로드할 수 있는 바로가기).

이러한 프롬프트를 실행하려면 gemini-cli-projects 디렉터리에 폴더 (database-tasks)를 만드는 것이 좋습니다. Chinook 데이터베이스 파일을 해당 폴더에 복사합니다. Gemini CLI가 사용할 수 있도록 시스템에 sqlite3 도구가 설정되어 있고 경로에서 사용할 수 있는지 확인합니다. Gemini CLI를 실행합니다.

데이터베이스 스키마 다이어그램은 아래와 같습니다.

fb8e96c21ad57590.png

database-tasks이라는 폴더에 있고 Chinook 데이터베이스 파일의 이름이 chinook.db이라고 가정합니다.

데이터베이스를 사용하는 데 도움이 되는 몇 가지 프롬프트가 아래에 나와 있습니다. 요청되는 권한을 보여주기 위해 첫 번째 항목을 간략하게 살펴보겠습니다.

데이터베이스에 있는 테이블을 나열하라는 프롬프트로 시작합니다. 다음과 같은 프롬프트를 입력합니다.

What tables are present in the @chinook.db 

이 도구를 사용하여 파일을 읽은 다음 시스템에 있는 sqlite3 유틸리티를 사용하여 필요한 작업을 수행하려고 합니다.

b2a17ef60706c3f5.png

한 번 실행할 권한을 제공하면 필요한 출력이 표시됩니다.

8d40754b830f4697.png

다음 프롬프트 또는 원하는 다른 프롬프트를 사용해 보세요.

  • 직원 수는 몇 명인가요?
  • 인보이스 테이블의 스키마는 무엇인가요?
  • 총액을 기준으로 상위 3개 인보이스는 무엇이고 어떤 고객이 해당 인보이스를 발급했어?

Gemini CLI는 요구사항을 충족하는 올바른 SQL 문을 생성하고 올바른 sqlite3 명령어를 제공하는 두 가지 작업을 처리합니다.

Gemini CLI를 사용하여 데이터 생성

Gemini CLI에 다양한 데이터 형식으로 데이터를 생성하도록 프롬프트를 지정할 수 있습니다. 콘텐츠 조각부터 모의해야 할 수 있는 JSON 데이터까지 다양합니다. 여기서는 개발자/테스터에게 적용되는 시나리오에 중점을 둡니다.

다음은 시도해 볼 수 있는 프롬프트입니다.

샘플 고객 리뷰의 JSON 데이터 생성

Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).

모의 API 응답 생성 (JSON)

Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').

샘플 데이터베이스 삽입 문 생성 (SQL)

Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.

데이터 로드/분석을 위한 CSV 데이터 생성

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

구성 파일 (YAML) 생성

Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.

특이 사례/검증을 위한 테스트 데이터 생성

Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).

Gemini CLI를 사용한 바이브 코딩

Gemini CLI를 사용하여 애플리케이션을 바이브 코딩해 보겠습니다. Gemini CLI에 애플리케이션을 생성하도록 요청한 다음 초기 버전을 GitHub 저장소에 푸시합니다.

선행 조건

이 섹션의 작업을 수행하려면 다음이 필요합니다.

  • Git
  • GitHub MCP 서버가 있는 Gemini CLI (앞서 수행함)
  • Git 기본사항에 대한 지식과 약간의 프로그래밍 지식

원하는 특정 폴더에서 Gemini CLI를 실행했다고 가정합니다. MCP 서버, 특히 GitHub MCP 서버가 성공적으로 시작되었는지 확인합니다.

다음 프롬프트를 입력합니다. 필요에 따라 수정하세요. Gemini CLI와의 세션 중에 파일을 만드는 등의 권한을 요청합니다. 필요한 권한을 부여하세요.

또한 Google에서 애플리케이션을 실행하거나 테스트할 수 있도록 Gemini CLI를 요청하지 않습니다. 하지만 어떤 방식으로 할지는 전적으로 사용자에게 달려 있습니다.

Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.

I would like you to proceed in the following way: 
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally. 

첫 번째 대답은 다음과 같았습니다. 완전히 다른 대답이 나올 수 있으므로 계획을 검토하고 필요에 따라 Gemini CLI와 양방향으로 상호작용하세요.

90232297f1e952f8.png

서버를 실행하지 말라고 요청했지만 서버의 셸 명령어를 표시하고 실행해도 되는지 물었습니다. 직접 시작하는 것이 더 편리하다고 생각해서 그렇게 하지 않았습니다.

다음 메시지를 입력했습니다.

d74e235b0db77c51.png

안내에 따라 서버를 시작했으며 다음 사이트가 잘 작동하는 것을 확인할 수 있습니다.

71a0a6123a90e068.png

Gemini CLI를 사용하여 계속 변경해도 되지만 지금은 GitHub 저장소에 푸시해야 하므로 여기까지만 하겠습니다.

먼저 .gitignore 파일을 만들고 Gemini CLI의 도움을 받겠습니다.

Create a .gitignore file for this project.

이제 Gemini CLI에 GitHub 계정 아래에 이 저장소를 푸시하라는 안내를 제공할 것입니다. 그러면 백그라운드에서 GitHub MCP 서버 도구가 실행됩니다.

아래와 비슷한 프롬프트를 입력합니다.

Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app

여기에서는 여러 명령어를 실행합니다.

  1. 저장소를 만듭니다.
  2. 로컬 Git 저장소를 관리하기 위해 init, add, commit 등 여러 Git 명령어를 사용합니다.
  3. 그런 다음 Git 원격을 설정하고 푸시합니다.

참고: Gemini CLI가 타임아웃되거나 잘못된 사용자 이름 등을 사용하는 경우가 있습니다. 상호작용하여 수정사항을 제안하세요.

모든 것이 잘 진행되면 GitHub 저장소가 있어야 합니다. 샘플 스크린샷은 아래에 나와 있습니다.

35c2db48c39fb21a.png

README.md 및 일반적으로 수행하는 다른 작업은 생성하지 않았지만, 이제 방금 만든 이 저장소로 작업할 다음 섹션에서 좋은 연습이 될 것입니다.

Gemini CLI를 사용하여 GitHub 저장소에서 작업

이 사용 사례에서는 Gemini CLI를 사용하여 GitHub 저장소와 상호작용합니다. 다음과 같은 여러 시나리오를 살펴보겠습니다.

  • 코드베이스 이해
  • 문서 생성
  • 새 기능 구현
  • 변경사항을 커밋하고 저장소로 다시 푸시합니다.
  • GitHub 문제에 대해 작업하고 제안된 변경사항 구현

이렇게 하면 저장소를 사용하고 Gemini CLI를 이러한 개발자 관련 작업에 대한 어시스턴트로 사용할 수 있는 기반이 마련됩니다.

선행 조건

이 섹션의 작업을 수행하려면 다음이 필요합니다.

  • Git
  • GitHub MCP 서버가 있는 Gemini CLI (앞서 수행함)
  • Git 기본사항에 대한 지식과 약간의 프로그래밍 지식 (Gemini CLI를 설치했으므로 머신에 환경이 이미 준비되어 있을 수 있으므로 이 예에서는 Node.js를 사용함) 하지만 나중에 다른 프로그래밍 언어와 프레임워크를 사용하는 원하는 저장소를 선택해도 됩니다.
  • 이전 섹션에서 이벤트 강연 웹사이트를 만들었으므로 이전 섹션을 완료하고 저장소를 준비해야 합니다.

Event Talks 애플리케이션을 생성하는 데 사용한 폴더/디렉터리에서 Gemini CLI를 계속 사용합니다. 필요한 경우 저장소를 로컬 머신에 클론한 다음 해당 디렉터리에서 Gemini CLI를 시작할 수 있습니다. 아래에 나열된 시나리오를 시도해 보세요.

코드베이스 이해

  • 이 프로젝트에 대해 자세히 알고 싶습니다. 주요 기능을 이해할 수 있도록 도와주고 서버 측과 클라이언트 측으로 구분해 줘. 샘플 흐름을 가져와 요청과 응답이 어떻게 작동하는지 보여 줘.
  • @server.js를 설명해 줘

README 파일 생성

  • 이 프로젝트의 README 파일을 생성합니다.

이 경우 Gemini CLI는 README 파일을 생성했을 뿐만 아니라 Git 저장소에 추가하고 변경사항을 원격으로 푸시하는 명령어를 실행하려고 했으며, 이를 허용했습니다. 또한 라이선스 파일을 생성해 주겠다고 제안했고, 이를 허용했습니다.

이제 README 파일과 LICENSE 파일이 생성되었고 변경사항이 GitHub에 푸시되었습니다.

d77239c8fae0aa8b.png

새 기능 구현

  • 사용자가 특정 화자로도 검색할 수 있는 새로운 기능을 구현하고 싶습니다. 먼저 이 변경사항을 구현하는 방법을 보여주는 계획을 제시해 줘. 그런 다음 코드를 생성할 수 있어.

계획을 제공해 주었고, 제가 승인한 후 변경이 진행되었습니다. 변경사항을 테스트하고 버그가 있으면 (있을 가능성이 높음) Gemini CLI에 수정해 달라고 요청하세요.

변경사항이 제대로 표시되면 동일한 단계에 따라 변경사항을 커밋하고 원격 저장소에 푸시할 수 있습니다.

추천 기능을 기반으로 문제 생성

여기서 흥미로운 것을 시도해 보겠습니다. Gemini CLI에 이 애플리케이션의 사용자 환경을 개선할 수 있는 방법을 물어보고, Gemini CLI의 평가를 바탕으로 동일한 GitHub 저장소에 문제로 이러한 제안을 만들 수 있습니다. Github MCP 서버의 'create_issue' 도구를 사용합니다.

다음 프롬프트를 사용해 보세요.

  • 사용자 경험 관점에서 애플리케이션을 평가해 줘. 사용 편의성, 응답성, 유용한 메시지 등 개선사항 목록을 작성한 후 GitHub 저장소에서 문제로 만들어 줘.

개선사항을 먼저 공유한 후 허락을 받아 GitHub 저장소에 문제를 생성합니다. 다음은 실행에서 가져온 샘플 스크린샷입니다.

495b0f7afab91ec6.png

GitHub 문제에 대해 작업하고 제안된 변경사항 구현

이제 이전에 생성된 문제 중 하나를 가져와 Gemini CLI에 작업을 요청하고 구현할 수 있습니다.

생성된 샘플 문제는 다음과 같습니다.

2e41f9f6eac3d1b.png

전체 문제 URL을 가져와 다음과 같은 프롬프트를 제공합니다.

  • 문제: <YOUR_ISSUE_URL>을 살펴보고 변경해야 할 사항을 파악하세요. 먼저 계획을 설명한 다음 코드에서 제안된 변경사항을 보여줘.

변경사항을 승인하고 저장소에 푸시하세요. 문제를 종료해 달라고 요청할 수도 있습니다.

cd3c89cf3d47723b.png

7. (선택사항) GEMINI.md로 Gemini CLI 맞춤설정

지금까지 Gemini CLI를 사용해 보셨다면 프롬프트를 제공하고 Gemini CLI가 이를 실행하도록 기대하는 경우가 있었을 것입니다. 때로는 결과가 기대에 미치지 못하기도 했습니다. 일부 프롬프트에서는 수행해야 할 작업을 구체적으로 명시하고 이러한 안내를 프롬프트에 포함했습니다.

Gemini CLI에 지시한 내용과 얻은 결과에 따라 이 방법이 적합할 수 있습니다. 하지만 대부분의 경우 규칙을 준수해야 합니다. 이러한 규칙은 사용할 특정 프로그래밍 언어 또는 프레임워크일 수 있습니다. 특정 도구일 수도 있습니다. 코딩 스타일일 수도 있습니다. 생성뿐만 아니라 Gemini CLI가 '계획' 모드에만 있도록 하고 계획만 제시하고 시스템에서 코드를 생성하거나 파일을 수정하지 않도록 할 수도 있습니다.

GEMINI.md을 입력합니다. 이는 Gemini 모델에 제공되는 명령어 컨텍스트('메모리'라고도 함)를 구성하는 데 중요한 컨텍스트 파일 (기본값은 GEMINI.md이지만 contextFileName 설정을 통해 구성 가능)입니다. 이 파일을 사용하면 프로젝트별 안내, 코딩 스타일 가이드 또는 관련 배경 정보를 AI에 제공하여 대답이 요구사항에 맞춤화되고 정확해집니다.

GEMINI.md 파일은 마크다운 형식이며 여러 위치에서 결합된 계층적 방식으로 로드됩니다.

로드 순서는 다음과 같습니다.

  1. 전역 컨텍스트: **~/.gemini/GEMINI.md** (모든 프로젝트에 적용되는 안내)
  2. 프로젝트/상위 컨텍스트: CLI는 현재 디렉터리에서 프로젝트 루트까지 GEMINI.md 파일을 검색합니다.
  3. 하위 디렉터리 컨텍스트: CLI는 하위 디렉터리에서 GEMINI.md 파일도 검색하여 구성요소별 안내를 허용합니다.

/memory show를 사용하여 모델에 전송되는 최종 결합 컨텍스트를 확인할 수 있습니다.

GEMINI.md는 어떻게 생겼고 공식 문서에서 하나를 생성합니다.

# Project: My Awesome TypeScript Library

## General Instructions:

- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.

## Coding Style:

- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).

## Specific Component: `src/api/client.ts`

- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.

## Regarding Dependencies:

- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.

일반적인 안내와 코딩 스타일, 종속 항목 관리 등에 관한 매우 구체적인 안내가 제공됩니다. 이는 TypeScript 프로젝트의 샘플 GEMINI.md 파일이지만 프로그래밍 언어, 프레임워크, 코딩 스타일, 기타 환경설정에 따라 직접 작성할 수 있습니다.

맞춤 GEMINI.md 파일을 사용해 보겠습니다. 이는 계획 모드에서만 Gemini CLI를 사용하는 방법을 보여주는 gist에서 가져온 것입니다. 파일은 여기에 재현됩니다.

# Gemini CLI Plan Mode

You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.

Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.

## Core Principles of Plan Mode

*   **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
*   **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
    *   Editing, creating, or deleting files.
    *   Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
    *   Altering system configurations or installing packages.

## Steps

1.  **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2.  **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3.  **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4.  **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval. 

## Output Format

Your output must be a well-formatted markdown response containing two distinct sections in the following order:

1.  **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2.  **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.


NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.

위 콘텐츠를 GEMINI.md 파일에 저장하고 ~/.gemini/GEMINI.md에 저장합니다. 이 폴더는 settings.json 파일을 만든 폴더와 동일합니다. <current project folder>/.gemini 폴더에 GEMINI.md 파일을 보관하거나 지침이 다른 경우 하위 디렉터리에 GEMINI.md 파일을 여러 개 둘 수도 있습니다.

애플리케이션을 생성하라는 프롬프트를 입력하고 어떻게 대답하는지 확인합니다.

다음은 학습한 후 요구사항에 맞게 용도를 변경하여 사용할 수 있는 또 다른 GEMINI.md 파일 ( Gemini 설명 모드)입니다. 이는 Gemini CLI가 대화형 가이드가 되어 사용자가 검색의 대화형 프로세스를 통해 복잡한 코드베이스를 이해하도록 지원하는 데 중점을 둡니다.

GEMINI.md 파일은 Gemini CLI가 환경설정을 따르도록 하는 데 중요하며, 이 영역, 프로젝트용 파일을 자동 생성하는 방법, 시스템 프롬프트 맞춤설정 등을 자세히 다루는 실용적인 시리즈 '실용적인 Gemini CLI'를 확인하는 것이 좋습니다.

8. 축하합니다

축하합니다. Gemini CLI와 그 기능을 살펴보고 몇 가지 사용 사례에 적용했습니다.

참조 문서