Gemini CLI 직접 사용

1. 소개

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

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

학습할 내용

  1. Gemini CLI 설치 및 구성
  2. Gemini CLI에서 도구, 기본 제공 명령어, MCP 서버 구성 살펴보기
  3. GEMINI.md 파일을 통해 Gemini CLI 맞춤설정
  4. Gemini CLI를 사용한 몇 가지 사용 사례 살펴보기

필요한 항목

이 Codelab은 Gemini CLI가 사전 설치된 Google Cloud Shell 내에서 완전히 실행할 수 있습니다.

또는 자체 머신에서 작업하려는 경우 Gemini CLI를 로컬로 설치하는 섹션이 있습니다.

다음이 필요합니다.

  • Chrome 웹브라우저
  • Gmail 계정

이 Codelab은 초보자를 포함한 모든 수준의 사용자 및 개발자를 위해 설계되었습니다. Codelab의 사용 사례는 개발자 작업과 비개발자 작업으로 분류되었습니다. 개발자 사용 사례에서는 Gemini CLI로 코드를 분위기 있게 만들고 GitHub 저장소와 협업하여 코드 설명/이해, 문서 생성, 문제 해결 등 일반적인 개발 작업을 수행하는 방법을 보여줍니다. Codelab에서 이러한 사용 사례를 완료하는 것이 좋습니다. 마지막에는 개발자 중심이 아닌 여러 일상적인 작업을 다루는 선택사항 섹션이 있습니다.

2. 시작하기 전에

프로젝트 만들기

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
  2. Cloud 프로젝트에 결제가 사용 설정되어 있어야 하므로 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
  1. bq가 미리 로드되어 제공되는 Google Cloud에서 실행되는 명령줄 환경인 Cloud Shell을 사용합니다. Google Cloud 콘솔 상단에서 Cloud Shell 활성화를 클릭합니다.

Cloud Shell 활성화 버튼 이미지

  1. Cloud Shell에 연결되면 다음 명령어를 사용하여 인증이 완료되었고 프로젝트가 해당 프로젝트 ID로 설정되었는지 확인합니다.
gcloud auth list
  1. Cloud Shell에서 다음 명령어를 실행하여 gcloud 명령어가 프로젝트를 알고 있는지 확인합니다.
gcloud config list project
  1. 프로젝트가 설정되지 않은 경우 다음 명령어를 사용하여 설정합니다.
gcloud config set project <YOUR_PROJECT_ID>

3. 설치

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

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

mkdir gemini-cli-projects

해당 폴더로 이동해 보겠습니다.

cd gemini-cli-projects

gemini 명령어를 통해 Gemini CLI를 직접 실행할 수 있습니다.

다음 섹션 (settings.json을 통한 Gemini CLI 구성)으로 바로 이동하세요.

Gemini CLI를 로컬로 설치하려면 아래 안내를 따르세요.

첫 번째 단계는 머신에 Node 20 이상을 설치하는 것입니다. 작업이 완료되면 다음 방법 중 하나를 통해 Gemini CLI를 설치하고 실행할 수 있습니다.

  1. 먼저 시스템에 Gemini CLI를 전역적으로 설치할 수 있습니다. 이 단계를 수행하려면 관리자 액세스 권한이 필요할 수 있습니다.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. 다음 명령어를 사용하여 실행합니다.
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

다음을 실행하여 CLI가 설치되었는지 확인할 수 있습니다.

gemini --version

위의 방법 중 하나를 통해 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

4. settings.json을 통한 Gemini CLI 구성

Cloud Shell을 선택하여 Gemini를 실행하면 Gemini CLI의 기본 테마와 인증 방법이 이미 선택되고 구성됩니다.

머신에 Gemini CLI를 설치하고 처음 실행한 경우 테마와 인증 방법을 선택했습니다.

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

설정은 다음 우선순위에 따라 적용됩니다 (Cloud Shell에서는 사용자 설정만 사용할 수 있음).

  1. 시스템: /etc/gemini-cli/settings.json (모든 사용자에게 적용되며 사용자 및 워크스페이스 설정을 재정의함)
  2. 작업공간: .gemini/settings.json (사용자 설정을 재정의함)
  3. 사용자: ~/.gemini/settings.json

Windows 사용자: %USERPROFILE%.gemini\settings.json (일반적으로 C:\Users&lt;YourUsername>.gemini\settings.json으로 확장됨)

시스템: %ProgramData%\gemini-cli\settings.json (일반적으로 C:\ProgramData\gemini-cli\settings.json으로 확장됨)

Mac 사용자: ~/.gemini/settings.json(/Users/<YourUsername>/.gemini/settings.json으로 확장됨)

시스템: /etc/gemini-cli/settings.json

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

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

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5. Gemini CLI와의 첫 번째 상호작용

Gemini CLI를 시작하고 아래와 같이 첫 번째 쿼리를 입력해 보겠습니다.

Give me a famous quote on Artificial Intelligence and who said that?

예상되는 응답은 다음과 같습니다.

4dc0961206c1b568.png

쿼리 결과로 호출된 GoogleSearch 도구 (Gemini CLI의 내장 도구)가 표시됩니다. 즉, 웹에서 가져온 정보를 기반으로 대답을 제공하는 Gemini CLI의 강력한 기본 제공 도구인 GoogleSearch를 이미 사용한 것입니다. 다음 섹션에서 도구에 대해 자세히 알아보세요.

Gemini CLI와 지원되는 다양한 명령어를 빠르게 이해하려면 /help (슬래시)를 입력하세요. 아래와 같이 다양한 명령어와 단축키가 표시됩니다.

d333742310905dcc.png

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

6. 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"

후속 질문으로 대화를 이어갈 수는 없습니다. 이 모드에서는 WriteFile을 비롯한 도구를 승인하거나 셸 명령어를 실행할 수도 없습니다.

7. 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

8. Gemini CLI - 셸 모드

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

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

9e239408835a3acd.png

아래와 같이 pwdls와 같은 표준 명령어를 사용하여 직접 확인할 수 있습니다. 명령어는 Linux 유형 OS를 가정합니다. 다른 운영체제 (Windows)를 사용하는 경우 (cd, dir, type)와 같은 동등한 명령어를 사용하세요. 이러한 호출의 출력은 모델의 컨텍스트 창에 포함됩니다.

2f5d53d3c77fc8e2.png

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

2249b5c80e3ae2c0.png

연습: 다음은 시도해 볼 수 있는 간단한 연습입니다. 원하는 RSS 피드를 선택합니다. Gemini CLI에 프롬프트를 제공하여 RSS 피드의 콘텐츠를 가져오고 결과를 특정 방식으로 형식화합니다. 이는 하루를 시작할 때 작업을 자동화하는 좋은 방법입니다. Gemini CLI에 특정 영역(예: Google Cloud Platform 출시 노트)의 RSS 피드가 있는지 확인해 달라고 요청할 수도 있습니다.

샘플 프롬프트는 다음과 같습니다.

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

이 프롬프트는 먼저 GoogleSearch 도구를 호출하여 Google Cloud Platform RSS 피드를 찾은 다음 WebFetch 도구를 사용하여 RSS 피드의 콘텐츠를 가져와 표시해야 합니다.

9. Model Context Protocol (MCP) 서버 구성

MCP 서버는 Model Context Protocol을 통해 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 서버 중 하나를 구성해 보겠습니다. 시스템에 Git 및 기타 관련 도구가 이미 설정되어 있는 경우 GitHub MCP 서버가 여전히 필요한지 궁금할 수 있습니다.

Gemini CLI는 시스템에 있는 Git 도구를 호출하며, Gemini CLI가 이를 사용하도록 지시할 수도 있습니다. 따라서 Gemini CLI는 자연어 쿼리를 시스템에 있을 수 있는 동등한 도구로 변환하는 데 도움이 되며 프롬프트에서 이를 명시적으로 언급해야 할 수 있습니다.

시스템에 다음이 이미 설정되어 있는 경우 다음 섹션에서 GitHub MCP 서버를 설정하지 않아도 됩니다.

  • Git 도구 (시스템에서 git init, git add 등의 명령어를 실행할 수 있음)
  • gh : 명령줄에서 GitHub를 사용합니다. Git 및 코드를 사용하고 있는 터미널 옆에 풀 요청, 문제, 기타 GitHub 개념을 가져옵니다. 여기에서 설치하고 몇 가지 명령어를 통해 설정을 검증합니다. 특히 머신에서 GitHub로의 인증과 관련된 명령어를 사용합니다.

GitHub MCP 서버를 계속 사용하려면 다음 섹션을 참고하세요.

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>을 클론해 줘.
  • @<file-name> 또는 @<directory-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 서버 설정에 관한 안내는 이 블로그 게시물에 게시되어 있습니다.

10. GEMINI.md로 Gemini CLI 맞춤설정

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

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

GEMINI.md을 입력합니다. 이는 Gemini 모델에 제공되는 안내 컨텍스트('메모리'라고도 함)를 구성하는 데 중요한 컨텍스트 파일 (기본값은 GEMINI.md이지만 settings.json 파일의 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'를 확인하는 것이 좋습니다.

Gemini CLI와 상호작용하면서 GEMINI.md 파일을 빌드할 수도 있습니다. 언제든지 /memory add <일부 지침/규칙> 명령어를 사용하면 Gemini CLI가 GEMINI.md 파일에 이를 추가합니다. 자연어를 사용하여 Gemini CLI에 메모리(예: GEMINI.md)를 추가하도록 요청할 수도 있습니다. 예를 들어 ' <일부 지침/규칙>을 기억해' 또는 ' <일부 지침/규칙>을 메모리에 추가해'와 같은 프롬프트를 사용하면 됩니다.

11. Gemini CLI - 맞춤 슬래시 명령어

방금 GEMINI.md를 맞춤설정하여 계획 모드를 만드는 방법을 살펴보았습니다. 이전 섹션에서는 설명 모드로 연결되는 링크도 제공했습니다.

이러한 모드를 모두 구성하고 /plan 또는 /explain 슬래시 명령어를 통해 Gemini CLI가 이러한 모드 중 하나로 전환되도록 지시하려면 어떻게 해야 할까요? 이것이 바로 Gemini CLI 맞춤 슬래시 명령어의 목적입니다.

문서에 명시된 바와 같이 '맞춤 명령어를 사용하면 즐겨찾기 또는 가장 자주 사용하는 프롬프트를 Gemini CLI 내에서 개인 단축키로 저장하고 재사용할 수 있습니다. 단일 프로젝트에만 적용되는 명령어 또는 모든 프로젝트에서 전역적으로 사용할 수 있는 명령어를 만들어 워크플로를 간소화하고 일관성을 유지할 수 있습니다.'

/plan/explain과 같은 맞춤 슬래시 명령어를 만들어 보겠습니다.

다음 단계는 Gemini CLI가 맞춤 명령어를 가져오는 위치를 파악하는 것입니다. 문서에 따르면 특정 순서로 로드된 두 위치에서 명령어를 검색합니다.

  1. 사용자 명령어 (전역): ~/.gemini/commands/에 있습니다. 이러한 명령어는 작업 중인 모든 프로젝트에서 사용할 수 있습니다.
  2. 프로젝트 명령어 (로컬): <your-project-root>/.gemini/commands/에 있습니다. 이러한 명령어는 현재 프로젝트에만 적용되며 버전 제어에 체크인하여 팀과 공유할 수 있습니다.

Gemini CLI를 실행한 현재 프로젝트 폴더를 선택해 보겠습니다. 따라서 <your-project-root>/.gemini/commands/ 폴더가 됩니다. 폴더 구조를 만듭니다.

이 폴더 안에 무엇을 만들어야 하나요? 두 개의 TOML 파일 (plan.tomlexplain.toml)이 필요합니다. 네임스페이스 및 이름 지정 규칙에 대해 자세히 알아보려면 여기를 참고하세요.

각 TOML 파일에는 descriptionprompt라는 두 필드가 있어야 합니다. Gemini CLI의 명령어 옆에 표시되므로 설명이 짧고 명확해야 합니다. 아래의 TOML 파일 샘플은 공식 맞춤 슬래시 명령어 블로그 게시물에서 가져온 것입니다.

샘플 plan.toml 파일은 아래와 같습니다. 프롬프트에는 특수 자리표시자 {{args}}가 포함되어 있습니다. CLI는 이 자리표시자를 명령 이름 뒤에 사용자가 입력한 모든 텍스트로 바꿉니다.

description="Investigates and creates a strategic plan to accomplish a task."
prompt = """
Your primary role is that of a strategist, not an implementer.
Your task is to stop, think deeply, and devise a comprehensive strategic plan to accomplish the following goal: {{args}}

You MUST NOT write, modify, or execute any code. Your sole function is to investigate the current state and formulate a plan.

Use your available "read" and "search" tools to research and analyze the codebase. Gather all necessary context before presenting your strategy.

Present your strategic plan in markdown. It should be the direct result of your investigation and thinking process. Structure your response with the following sections:

1.  **Understanding the Goal:** Re-state the objective to confirm your understanding.
2.  **Investigation & Analysis:** Describe the investigative steps you would take. What files would you need to read? What would you search for? What critical questions need to be answered before any work begins?
3.  **Proposed Strategic Approach:** Outline the high-level strategy. Break the approach down into logical phases and describe the work that should happen in each.
4.  **Verification Strategy:** Explain how the success of this plan would be measured. What should be tested to ensure the goal is met without introducing regressions?
5.  **Anticipated Challenges & Considerations:** Based on your analysis, what potential risks, dependencies, or trade-offs do you foresee?

Your final output should be ONLY this strategic plan.
"""

explain.toml 파일도 만들어 보세요. Gemini 설명 모드를 참고하여 콘텐츠를 선택할 수 있습니다.

Gemini CLI를 다시 시작합니다. 이제 아래와 같이 슬래시 명령어 (/plan)가 표시됩니다.

8b0720ba31b6c251.png

12. 시도해 볼 사용 사례

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

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

Gemini CLI를 사용한 바이브 코딩

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

선행 조건

이 섹션의 작업을 수행하려면 몇 가지 기본 요건이 있습니다.

  • Git
  • Github MCP 서버를 사용하는 Gemini CLI (앞에서 수행함)를 사용하거나 gh ( Github CLI 도구)를 설정한 경우에도 작동합니다.
  • Git 기본사항에 대한 지식과 약간의 프로그래밍 지식

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

초기 프롬프트로 시작합니다. 필요에 따라 수정하세요. Gemini CLI와의 세션 중에 파일을 만드는 등의 권한을 요청합니다. 필요한 권한을 부여하세요.

이 작업에서는 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

Gemini CLI가 때때로 더 많은 작업을 수행하려고 시도하고 실행하려는 명령어를 제공할 수도 있습니다. 이 연습에서는 작업 진행 방식과 먼저 검증할 항목을 더 세부적으로 제어할 수 있도록 하지 않는 것이 좋습니다.

예를 들어 명령어를 실행하라는 메시지가 표시되면 단순히 종료하고 아래와 같이 메시지를 입력하면 됩니다.

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 (앞에서 수행함)를 사용하거나 gh ( Github CLI 도구)를 설정한 경우에도 작동합니다.
  • Git 기본사항에 대한 지식과 약간의 프로그래밍 지식 (Gemini CLI를 설치했으므로 머신에 환경이 이미 준비되어 있을 수 있으므로 이 예에서는 Node.js를 사용함) 하지만 나중에 다른 프로그래밍 언어와 프레임워크를 사용하는 원하는 저장소를 선택해도 됩니다.
  • 이전 섹션을 완료하고 이벤트 강연 웹사이트를 만든 저장소를 준비해야 합니다.

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

코드 베이스 이해

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

README 파일 생성

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

이 경우 Gemini CLI는 README 파일을 생성했을 뿐만 아니라 Git 저장소에 추가하고 변경사항을 원격으로 푸시하는 명령어를 실행하려고 했습니다. 이러한 작업을 수행하는 경우 허용할 수 있습니다.

경우에 따라 LICENSE 파일을 자동으로 생성해 주기도 합니다. 이 작업을 실행할지 여부를 결정할 수 있습니다. 결과에 따라 README 또는 LICENSE 파일이 생성되고 변경사항이 GitHub에 푸시됩니다.

d77239c8fae0aa8b.png

새 기능 구현

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

승인할 수 있는 계획이 제공됩니다. 승인되면 Gemini CLI가 이러한 변경사항을 적용합니다. 변경사항을 테스트하고 버그가 있으면 (있을 가능성이 높음) 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

(선택사항) 일상적인 작업

아래에 제시된 사용 사례는 정기적으로 수행하게 될 수 있는 작업입니다. 여기에는 파일을 폴더로 정리하고, 웹에서 콘텐츠를 가져와 요약하고, 이미지 파일을 처리하고, 이미지 파일에서 콘텐츠를 추출하고, 데이터베이스를 사용하는 등의 작업이 포함됩니다.

원하는 사용 사례를 자유롭게 살펴보세요.

파일/폴더 정리

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

다음은 샘플 폴더이며 폴더의 콘텐츠는 아래에 표시되어 있습니다 (다른 파일이 있을 수 있음).

e9d70be5bbea46d5.png

해당 폴더로 이동하여 Gemini CLI를 시작합니다. 먼저 Gemini CLI에 이미지, 문서, 동영상과 같은 폴더를 만들라고 요청한 다음 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.

폴더의 최종 상태의 예는 아래와 같습니다. 새 하위 폴더가 생성되고 파일이 유형에 따라 해당 하위 폴더로 이동됩니다.

7e27d4c88416f62.png

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

  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페이지의 표에서 데이터를 추출하여 마크다운 표 형식으로 표시해 줘.
  • 뉴스 웹사이트에서 뉴스 헤드라인과 소스 추출: 'https://news.google.com/' (또는 유사한 뉴스 사이트)로 이동합니다. 첫 페이지에서 주요 헤드라인과 해당 뉴스 소스를 추출해 줘. 글머리 기호 목록으로 표시해 줘.
  • 전자상거래 페이지에서 제품 사양 찾기: 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441'로 이동합니다(책의 예). 도서 제목, 저자, 기타 세부정보를 추출합니다. 구조화된 JSON 형식으로 표시해 줘.
  • 동영상에서 길이를 특정 형식 (예: '2시간 37분 42초')으로 추출해 줘.

콘텐츠 기반 질문 답변 (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 files in Image format. 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

파생 열을 추가로 요청할 수 있는 또 다른 시나리오가 있습니다. 이전 인보이스 기한에 빨간색 십자 이모티콘을 표시한다고 가정해 보겠습니다. 다음과 같이 프롬프트를 입력할 수 있습니다.

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

그러면 다음과 같은 출력이 생성됩니다.

f65f6ca8308c7053.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 file: 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).

13. 축하합니다

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

참조 문서