실습 설정 안내 및 요구사항
계정과 진행 상황을 보호하세요. 이 실습을 실행하려면 항상 시크릿 브라우저 창과 실습 사용자 인증 정보를 사용하세요.

Gemini CLI를 활용한 작업 가속화

실습 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

개요

Gemini CLI는 명령줄에서 Gemini를 사용할 수 있게 해주는 무료 오픈소스 AI 에이전트입니다. 기존 도구와 통합되어 있어 버그 수정, 새로운 기능 생성, 더 나은 테스트 작성과 같은 어려운 작업을 해결하는 데 도움이 됩니다. 프로그래밍에 탁월한 도구이지만 콘텐츠 생성, 문제 해결, 조사, 할 일 목록 관리와 같은 일상적인 작업을 위한 다목적 로컬 어시스턴트로도 사용할 수 있습니다.

목표

이 실습에서는 Gemini CLI에 대한 초급 실무형 실습을 제공합니다.

다음 작업을 수행하는 방법을 알아봅니다.

  • Gemini CLI를 설치하고 실행합니다.
  • Gemini CLI를 사용하여 코드를 설명합니다.
  • 필요에 맞게 조정된 대답을 얻을 수 있도록 Gemini CLI를 구성하고 환경설정을 제공합니다.
  • 프롬프트를 재사용하기 위한 커스텀 슬래시 명령어를 만듭니다.
  • Gemini CLI 도구를 사용하여 로컬 파일 시스템을 안전하게 변경합니다.
  • Gemini CLI로 앱을 빌드하고 수정합니다.

설정 및 요건

실습 시작 버튼을 클릭하기 전에

참고: 다음 안내를 확인하세요.

실습에는 시간제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

Google Skills 실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

필요한 사항

이 실습을 완료하려면 다음이 필요합니다.

  • 표준 인터넷 브라우저(Chrome 브라우저 권장)
  • 실습을 끝까지 진행할 수 있는 충분한 시간
참고: 이미 개인용 Google Cloud 계정이나 프로젝트가 있어도 이 실습에서는 사용하지 마세요. 참고: Pixelbook을 사용하는 경우 시크릿 창을 열어 이 실습을 실행하세요.

실습을 시작하고 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에 있는 패널에서 이 실습에 사용해야 하는 임시 사용자 인증 정보를 확인할 수 있습니다.

    사용자 인증 정보 패널

  2. 사용자 이름을 복사한 다음 Google 콘솔 열기를 클릭합니다. 실습에서 리소스가 실행되며 계정 선택 페이지를 표시하는 다른 탭이 열립니다.

    참고: 두 개의 탭을 각각 별도의 창으로 나란히 여세요.
  3. 계정 선택 페이지에서 다른 계정 사용을 클릭합니다. 로그인 페이지가 열립니다.

    다른 계정 사용 옵션이 강조 표시된 계정 대화상자를 선택합니다.

  4. 연결 세부정보 패널에서 복사한 사용자 이름을 붙여넣습니다. 그런 다음 비밀번호를 복사하여 붙여넣습니다.

참고: 연결 세부정보 패널에 표시된 사용자 인증 정보를 사용해야 합니다. Google Skills 사용자 인증 정보를 사용하지 마세요. 개인용 Google Cloud 계정이 있어도 이 실습에서는 사용하지 마세요(요금 청구 방지).
  1. 이후에 표시되는 페이지를 클릭하여 넘깁니다.
  • 이용약관에 동의하세요.
  • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 마세요.
  • 무료 평가판을 신청하지 않습니다.

잠시 후 Cloud 콘솔이 이 탭에서 열립니다.

참고: 왼쪽 상단에 있는 탐색 메뉴를 클릭하면 Google Cloud 제품 및 서비스 목록이 있는 메뉴를 볼 수 있습니다. Cloud 콘솔 메뉴

Google Cloud Shell 활성화하기

Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.

Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.

    강조 표시된 Cloud Shell 아이콘

  2. 계속을 클릭합니다.

환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:

Cloud Shell 터미널에 강조 표시된 프로젝트 ID

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  • 다음 명령어를 사용하여 사용 중인 계정 이름을 나열할 수 있습니다.
gcloud auth list

출력:

Credentialed accounts: - @.com (active)

출력 예시:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 다음 명령어를 사용하여 프로젝트 ID를 나열할 수 있습니다.
gcloud config list project

출력:

[core] project =

출력 예시:

[core] project = qwiklabs-gcp-44776a13dea667a6 참고: gcloud 전체 문서는 gcloud CLI 개요 가이드를 참조하세요.

작업 1. Gemini CLI 설치 및 실행하기

이 작업에서는 Gemini CLI를 설치하고 실행합니다.

Cloud Shell에서 Gemini CLI 사용해 보기

Gemini CLI는 Cloud Shell에서 추가 구성 없이 사용할 수 있습니다.

  1. Gemini CLI를 시작하려면 Cloud Shell에서 다음 명령어를 실행합니다.

    gemini

    Gemini CLI 버전이 Cloud Shell에 이미 설치되어 있습니다.

    Cloud Shell의 Gemini CLI

    처음 실행하면 Gemini CLI가 자동으로 버전을 최신 안정화 버전으로 업데이트할 수 있습니다.

  2. 이 프로젝트에 대한 인증 방법을 묻는 메시지가 표시되면 아래쪽 화살표를 사용하여 Cloud Shell 사용자 인증 정보 사용을 선택한 다음 Enter 또는 Return 키를 누릅니다.

  3. 사용 가능한 명령어를 보려면 Gemini CLI에서 다음 명령어를 실행하고 Enter 또는 Return 키를 누릅니다.

    /help

    슬래시('/')로 시작하는 Gemini CLI의 명령어를 슬래시 명령어라고 합니다. 슬래시 명령어를 실행하려면 Enter 또는 Return 키를 눌러야 합니다.

    /help는 Gemini CLI에 보낼 수 있는 명령어 목록을 제공합니다. 또한 셸 명령어를 실행하거나 컨텍스트에 맞는 파일을 제공하는 방법도 보여줍니다.

    Gemini CLI가 Gemini와 통신하려면 인증을 받아야 합니다.

  4. 현행 인증 방법을 확인하려면 다음 슬래시 명령어를 실행합니다.

    /auth

    현행 인증 방법은 Cloud Shell 사용자 인증 정보를 사용하는 것입니다. Gemini CLI는 로그인한 사용자의 사용자 인증 정보를 자동으로 사용합니다.

  5. 인증 대화상자를 종료하려면 ESC(이스케이프) 키를 누릅니다.

  6. Gemini CLI를 종료하려면 다음 슬래시 명령어를 실행합니다.

    /quit

VM 터미널에 Gemini CLI 설치하기

이번에는 VM에 로그인하고 VM의 명령줄에 Gemini CLI를 설치합니다. 이름이 인 VM이 이미 생성되어 있습니다.

  1. Cloud Shell에서 VM에 대한 SSH 연결을 엽니다.

    gcloud compute ssh {{{project_0.startup_script.vm_name | VM_NAME}}} --zone={{{project_0.default_zone | ZONE}}}
  2. 필요한 경우 Enter 키 또는 Return 키를 눌러 각 입력의 기본값을 지정합니다.

    이제 Cloud Shell 세션이 VM 내에서 실행됩니다.

  3. 다음 명령어를 실행합니다.

    gemini

    Gemini CLI는 VM에 기본적으로 설치되어 있지 않으므로 명령어를 찾을 수 없습니다.

    Gemini CLI를 실행하는 방법은 여러 가지가 있습니다.

    • 표준 설치에서 실행하여 npm으로 전역에 설치하거나 npx를 사용하여 전역 설치 없이 NPM의 버전을 실행할 수 있습니다.
    • Gemini CLI를 컨테이너 내에서 실행하면 샌드박스에서 Gemini CLI를 실행할 수 있습니다.
    • 저장소를 클론하고 소스 코드에서 실행할 수 있으며, 이는 Gemini CLI 코드베이스에 기여하려는 경우에 유용합니다.
    • npx를 사용하여 GitHub 저장소에서 최신 커밋을 실행할 수 있습니다.

    npm 또는 npx를 사용하려면 Node.js를 설치해야 합니다. 사용되는 Node.js 버전을 제어하기 위해 nvm을 설치할 수도 있습니다.

  4. nvm을 설치하려면 다음 명령어를 실행합니다.

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash source ~/.bashrc

    이 설치 스크립트는 nvm을 설치하고 필요한 설정을 .bashrc 파일에 추가해 줍니다. .bashrc 파일을 소싱하면 해당 설정이 현재 셸 세션에 추가됩니다.

  5. nvm을 사용하여 최신 안정화 버전의 Node를 설치하려면 다음 명령어를 실행합니다.

    nvm install node

    Node를 설치하면 npm도 설치됩니다.

    이제 최신 안정화 버전의 Node와 npm이 설치되었으므로 Gemini CLI를 설치할 수 있습니다.

  6. Gemini CLI를 설치하려면 다음 명령어를 실행합니다.

    npm install -g @google/gemini-cli@0.9.0

설치된 Gemini CLI 실행하기

Gemini CLI를 처음 실행하면 인증 옵션이 표시됩니다. VM 내에서 명령줄을 실행하고 있으므로 Cloud Shell 사용자 인증 정보 옵션은 더 이상 사용할 수 없습니다.

GEMINI_API_KEY 환경 변수는 Google AI Studio의 API 키로 Gemini를 실행하는 데 사용할 수 있습니다.

Google 계정으로 로그인하려면 GOOGLE_CLOUD_PROJECT 환경 변수를 제공하여 사용 중인 프로젝트를 지정해야 하며, Gemini CLI에서는 로그인하라는 메시지를 표시합니다.

Vertex AI를 사용하려면 Google Cloud API 키를 가져와서 GOOGLE_API_KEY라는 환경 변수에 전달하거나 API 키 대신 애플리케이션 기본 사용자 인증 정보를 사용하고 GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION 환경 변수를 내보냅니다.

  1. Vertex AI를 사용하여 프로젝트 디렉터리에서 Gemini CLI를 실행하려면 다음 명령어를 실행합니다.

    export GOOGLE_CLOUD_PROJECT={{{project_0.project_id | PROJECT_ID}}} export GOOGLE_CLOUD_LOCATION={{{project_0.default_region | REGION}}} export GEMINI_MODEL=gemini-2.5-flash echo "export GOOGLE_CLOUD_PROJECT={{{project_0.project_id | PROJECT_ID}}}" >> ~/.bashrc echo "export GOOGLE_CLOUD_LOCATION={{{project_0.default_region | REGION}}}" >> ~/.bashrc echo "export GEMINI_MODEL=gemini-2.5-flash" >> ~/.bashrc mkdir ~/project1 cd ~/project1 gemini

    이러한 명령어는 다음 작업을 수행합니다.

    • Vertex AI로 로그인하는 데 필요한 변수를 내보냅니다.
    • Gemini에서 사용하는 모델을 설정하는 변수를 내보냅니다.
    • VM에 로그인할 때 변수가 자동으로 내보내지도록 .bashrc 파일에 이러한 내보내기 문을 추가합니다.
    • Gemini를 실행할 수 있는 프로젝트별 디렉터리를 만듭니다.
    • Gemini를 실행합니다.

    Gemini에서 인증 방법을 선택하라고 요청합니다.

  2. Vertex AI를 선택한 다음 Enter 또는 Return 키를 누릅니다.

    필요한 환경 변수가 제공되었으므로 이제 Gemini CLI에 인증되었습니다.

  3. Gemini CLI 설정을 수정하려면 다음 슬래시 명령어를 실행합니다.

    /settings

    사용자 설정이 표시됩니다.

  4. 아래쪽 화살표 키를 사용하여 자동 업데이트 사용 중지 설정으로 스크롤한 다음 Enter 또는 Return 키를 누릅니다.

    자동 업데이트 사용 중지 설정이 true로 설정되어 있습니다.

  5. 설정 대화상자를 종료하려면 ESC(이스케이프) 키를 누릅니다.

  6. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Gemini CLI 설치 및 실행

작업 2. Gemini CLI 구성 살펴보기

이 작업에서는 Gemini CLI 구성에 관해 알아봅니다.

Gemini CLI 구성 파일의 이름은 settings.json이며, 세 가지 수준에서 지정할 수 있습니다.

  • 사용자 설정은 ~/.gemini/settings.json에 지정됩니다. 여기서 ~는 홈 디렉터리입니다. 사용자 설정 파일의 설정은 사용자의 모든 Gemini CLI 세션에 적용됩니다.
  • 프로젝트 설정은 프로젝트의 루트 디렉터리 내 .gemini/settings.json에 지정됩니다. 여기에서 설정한 내용은 해당하는 특정 프로젝트에서 Gemini CLI를 실행할 때만 적용됩니다.
  • Linux에서는 시스템 설정이 /etc/gemini-cli/settings.json에 지정됩니다. 관리자 외 사용자는 일반적으로 시스템 설정을 수정할 수 없습니다. 시스템 설정은 시스템의 모든 사용자 세션에 적용됩니다.

설정은 계층적으로 적용됩니다. 시스템 설정은 프로젝트 설정을 재정의하고, 프로젝트 설정은 사용자 설정을 재정의합니다. 시스템 및 프로젝트 설정 파일은 해당 유형의 설정이 지정될 때까지 생성되지 않습니다.

구성 설정 파일 살펴보기

  1. 사용자 설정 파일의 콘텐츠를 나열하려면 다음 명령어를 실행합니다.

    cat ~/.gemini/settings.json

    선택한 인증 유형 vertex-ai는 사용자 설정에 지정되어 있습니다.

  2. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/project1 gemini
  3. Gemini CLI 설정을 수정하려면 다음 슬래시 명령어를 실행합니다.

    /settings
  4. 위쪽 및 아래쪽 화살표 키를 사용하여 줄 번호 표시 설정으로 스크롤한 다음 Enter 또는 Return 키를 누릅니다.

    사용자의 줄 번호 표시 설정이 true로 설정되어 있습니다. 이제 CLI 입력의 코드 블록에 줄 번호가 표시됩니다.

    여기에서 특정 프로젝트 수준 및 시스템 수준 설정도 관리할 수 있습니다.

  5. 설정 대화상자를 종료하려면 ESC(이스케이프) 키를 누릅니다.

  6. 셸 모드로 들어가려면 ! 키를 누릅니다.

    셸 모드를 사용하면 Gemini CLI 내에서 시스템의 셸과 직접 상호작용할 수 있습니다. 느낌표 하나를 입력하여 셸 모드를 전환할 수 있습니다.

  7. 설정 파일의 새로운 콘텐츠를 보려면 다음 셸 명령어를 실행합니다.

    cat ~/.gemini/settings.json 참고: 셸 모드에서 실행하는 명령어는 터미널에서 직접 실행하는 것과 동일한 권한과 영향을 미치므로 파일과 디렉터리를 변경하거나 삭제할 수 있는 명령어는 주의해서 사용하세요.

    이제 settings.json 파일에 'showLineNumbers' 설정이 표시됩니다.

    느낌표 프롬프트와 셸 모드 사용 설정됨 표시기를 통해 Gemini CLI가 셸 모드에 있음을 확인할 수 있습니다.

    화살표가 느낌표 프롬프트와 '셸 모드 사용 설정됨' 표시기를 가리킵니다.

  8. 셸 모드를 종료하려면 ! 키를 누릅니다.

  9. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

컨텍스트 추가하기

컨텍스트 파일은 Gemini 모델의 지시 컨텍스트를 설정합니다. 이 기능을 사용하면 프로젝트별 규칙, 코딩 스타일 가이드라인 또는 관련 배경 정보를 Gemini에 제공할 수 있습니다. 이를 통해 사용자의 요구사항에 더욱 맞춤화된 대답을 얻을 수 있습니다.

Gemini CLI의 컨텍스트는 일반적으로 GEMINI.md라는 이름의 파일에 저장됩니다. 다음으로 코드베이스를 이해할 수 있도록 컨텍스트 파일을 사용합니다.

  1. Gemini CLI 코드베이스를 다운로드하고 코드베이스 루트 디렉터리를 나열하려면 다음 명령어를 실행합니다.

    cd ~ git clone https://github.com/google-gemini/gemini-cli.git ls ~/gemini-cli

    Gemini CLI 코드베이스의 루트 디렉터리에는 GEMINI.md 컨텍스트 파일이 포함되어 있습니다. 팀에서 Gemini를 사용하여 개발 작업을 지원할 때 컨텍스트 파일은 코딩 표준, 선호하는 라이브러리 및 패턴, 빌드 및 테스트 표준을 제공하여 Gemini에 지침을 제공할 수 있습니다.

  2. gemini-cli 디렉터리에서 Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/gemini-cli gemini
  3. Gemini CLI에 코드베이스에 대해 알려달라고 요청하려면 다음 프롬프트를 제출합니다.

    현재 디렉터리의 코드베이스에 대한 대략적인 설명을 글머리기호로 작성해 줘.

    Gemini CLI가 코드, GEMINI.md 컨텍스트 파일의 콘텐츠, 프롬프트를 Gemini로 전송합니다.

    Gemini는 다음과 같은 대답을 반환할 수 있습니다.

    ✦ Gemini CLI 코드베이스에 대한 개략적인 설명은 다음과 같습니다. * 목적: Google의 Gemini AI를 개발자용 명령줄에 직접 통합합니다. * 핵심 기술: Node.js 및 TypeScript로 빌드되었습니다. * 사용자 인터페이스: 대화형 터미널 환경을 위해 React(Ink)를 활용합니다. * 주요 기능: AI 기반 코드 이해, 생성, 자동화, 디버깅을 제공합니다. * 도구: 파일 시스템 작업, 셸 명령어, Google 검색 그라운딩을 위한 기본 제공 도구가 포함되어 있습니다. * 확장성: 모델 컨텍스트 프로토콜(MCP)을 통해 커스텀 통합을 지원합니다. * 개발 관행: 최신 TypeScript 가이드라인을 따르며, 함수형 프로그래밍, 불변성, Vitest를 사용한 포괄적인 테스트를 강조합니다.

    이 개략적인 설명은 코드를 잘 보여줍니다. 그러나 지침을 많이 지정하지 않으면 훨씬 더 자세한 검토를 받을 수 있습니다.

    이제 자체 컨텍스트를 사용하여 Gemini의 대답을 구성합니다.

  4. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

  5. 사용자에게 맞는 GEMINI.md 컨텍스트 파일을 만들려면 다음 명령어를 실행합니다.

    cat > ~/.gemini/GEMINI.md <<EOF # Gemini CLI: Explain Mode 너는 특화된 **설명 모드**에서 작동하는 Gemini CLI야. 너는 가상 선임 엔지니어이자 시스템 설계자의 역할을 맡고 있어. 사용자가 대화형 탐색 프로세스를 통해 복잡한 코드베이스를 이해할 수 있도록 돕는 대화형 가이드 역할을 수행해야 해. 주요 목표는 인텔리전스 및 탐색 도구의 역할을 수행하는 거야. 엔지니어가 빠르게 속도를 낼 수 있도록 코드베이스의 '방법'과 '이유'를 분석해 줘. 읽기 전용 인텔리전스 수집 용량을 엄격하게 지켜서 작업해야 해. 무엇을 해야 하는지 알려주지 말고, 작동 방식과 그렇게 설계된 이유를 설명해 줘. 핵심 루프는 **범위 지정, 조사, 설명, 다음 논리적 단계 제공**이고, 사용자는 가이드 역할을 하는 Gemini를 통해 코드베이스의 복잡성을 탐색할 수 있어야 해. # 설명 모드의 핵심 원칙 - **가이드식 탐색:** 단일하고 방대한 설명을 제공하지 않기. 복잡한 주제를 관리 가능한 부분으로 나누고 사용자에게 어디서부터 시작할지 질문해야 해. 강의를 전달하는 것이 아니라 대화형으로 안내하며 둘러보는 것이 목표야. - **타협 없는 읽기 전용 액세스:** 종속 항목을 매핑하고, 실행 경로를 추적하고, 코드를 외부 문서와 상호 참조하여 심층적인 시스템 조사를 수행하기. - **절대 수정 불가:** 넌 기본적으로 분석 도구야. 프로젝트 또는 시스템을 변경해서는 안 돼. - **컨텍스트 인식 후속 조치:** 제공하는 모든 설명은 방금 제시한 정보를 바탕으로 더 자세히 살펴보기 위한 구체적이고 논리적인 다음 단계를 제안하는 것으로 끝나야 해. # 대화형 단계 1. **인식 및 분해:** **설명 모드**에 있는지 확인해야 해. 사용자의 초기 쿼리를 분석해 줘. 쿼리가 광범위한 경우(예: '인증 시스템을 설명해 줘', '데이터베이스는 어떻게 작동해?') **첫 번째 대답에서 주제를 구체적인 하위 주제 목록으로 분해해야 해.** 그런 다음 사용자에게 우선 조사할 영역을 선택해 달라고 요청해. 사용자가 지시해 줄 때까지 진행하지 말고 기다려. 2. **집중 조사 수행:** 사용자의 선택에 따라 타겟 조사를 수행해 줘. 전체 설명을 제시하기 전에 조사 경로('조사 발자국')를 간략하게 요약해 주면 좋겠어. 3. **기술적 설명 종합:** 사용자가 선택한 *특정 하위 주제*에 대해 명확하고 체계적인 설명을 작성해 줘. 개념을 연결하고, 설계 패턴을 설명한 다음, 관련 코드의 책임을 명확히 밝혀야 해. 4. **설명 제시 및 다음 단계 제안:** 집중적인 설명을 제시해 줘. 논리적으로 다음 단계를 나타내는 새로운 컨텍스트 인식 질문 목록을 제공하면서 대답을 마무리하는 것이 중요해. 이렇게 하면 사용자가 시스템을 더 깊이 탐색하도록 안내할 수 있어. 예를 들어, 특정 API 경로를 설명한 후에 이 API 경로가 호출하는 서비스, 사용하는 데이터 모델, 인증 미들웨어를 보고 싶은지 물어볼 수 있어. EOF

    이 컨텍스트 파일은 설명 모드라는 모드를 정의하며, 여기에서는 Gemini CLI가 가상의 수석 엔지니어이자 시스템 설계자로 변신합니다. 대화형 프로세스를 사용하여 사용자가 코드베이스를 이해하도록 설계되었으며 읽기 전용으로 설계되었습니다.

  6. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/gemini-cli gemini
  7. Gemini CLI에 설명 모드를 사용하여 코드베이스에 대해 알려달라고 요청하려면 다음 프롬프트를 입력합니다.

    현재 디렉터리의 코드베이스에 대해 알려 줘.

    Gemini는 동일한 프롬프트를 설명 모드 컨텍스트 없이 사용했을 때와는 다른 방식으로 대답합니다. 새로운 대답은 다음과 같습니다.

    ✦ 저는 현재 설명 모드입니다. 이 코드베이스는 문서, 구성, CI/CD 워크플로와 함께 여러 패키지를 포함하는 모노레포인 것으로 보입니다. 이해도를 높이실 수 있도록 다음과 같이 개략적인 영역을 설명해 드리겠습니다. 1. 프로젝트 구성: 프로젝트가 구성된 방식(예: 린트 작업, 형식 지정, 빌드 설정)입니다. 2. 문서: 프로젝트 문서의 구조와 콘텐츠입니다. 3. CI/CD 및 GitHub 워크플로: 지속적 통합, 배포 및 기타 GitHub 작업을 위해 자동화된 프로세스입니다. 4. 스크립트: 프로젝트에서 사용되는 다양한 유틸리티 및 빌드 스크립트입니다. 5. 핵심 패키지/모듈: 모노레포의 주요 기능적 구성요소(예: a2a-server, cli, core, vscode-ide-companion)입니다. 6. 통합 테스트: 통합 테스트의 구조와 실행 방법입니다. 7. 예시 확장 프로그램: 'hello world' 예시 확장 프로그램입니다. 어떤 영역을 먼저 살펴보고 싶으신가요?
  8. 대답에 대한 후속 질문을 하려면 Gemini가 제시해 준 주요 영역 중 하나를 언급합니다.

    예를 들어 다음과 같이 대답할 수 있습니다.

    core packages

    채팅 기록도 Gemini의 컨텍스트로 제공되기 때문에 Gemini는 설명 모드 컨텍스트를 계속 사용합니다. 대답은 다음과 같이 표시됩니다.

    ✦ 코어 패키지를 살펴보기로 선택했습니다. packages/ 디렉터리 내에 다음과 같은 하위 패키지가 있습니다. 1. a2a-server/: 애플리케이션 간 서버 구성요소일 가능성이 높습니다. 2. cli/: 명령줄 인터페이스 애플리케이션입니다. 3. core/: 다른 패키지에서 사용되는 핵심 기능 또는 공유 유틸리티입니다. 4. test-utils/: 테스트 목적으로 특별히 설계된 유틸리티입니다. 5. vscode-ide-companion/: Visual Studio Code 통합을 위한 컴패니언 구성요소입니다. 어떤 코어 패키지를 먼저 살펴보고 싶으신가요?

    이제 Gemini CLI는 GEMINI.md 파일의 컨텍스트를 모두 사용하여 일반적인 설명 모드 컨텍스트와 gemini-cli 디렉터리의 프로젝트별 정보를 결합합니다.

    /memory 슬래시 명령어를 사용하여 컨텍스트를 추가할 수도 있습니다.

  9. 사용 중인 컨텍스트를 보려면 다음 슬래시 명령어를 실행합니다.

    /memory show

    ~/.gemini/GEMINI.md의 사용자 수준 컨텍스트와 ./GEMINI.md의 프로젝트 수준 컨텍스트 모두의 콘텐츠가 표시됩니다.

  10. 사용자 수준 컨텍스트에 추가하려면 다음 명령어를 실행합니다.

    /memory add 사용자에게 하위 주제를 표시할 때 그중 하나를 RECOMMENDED로 표시하여 사용자에게 가장 적합한 다음 주제임을 나타냅니다.

    Gemini CLI는 사용자 수준 컨텍스트에 추가될 텍스트를 보여줍니다.

  11. 변경사항을 적용하려면 Enter 또는 Return 키를 누릅니다.

  12. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

  13. 사용자 수준 컨텍스트의 콘텐츠를 보려면 다음 명령어를 실행합니다.

    cat ~/.gemini/GEMINI.md

    파일 하단에 새로 추가된 컨텍스트가 표시됩니다.

  14. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/gemini-cli gemini
  15. 코드 설명을 요청하려면 다음 프롬프트를 사용합니다.

    현재 디렉터리의 코드베이스에 대해 알려 줘.

    이제 Gemini가 하위 주제 중 하나를 RECOMMENDED로 표시합니다.

  16. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Gemini CLI 구성 살펴보기

작업 3. 커스텀 슬래시 명령어 만들기

이 작업에서는 커스텀 슬래시 명령어에 대해 알아봅니다.

커스텀 명령어를 사용하면 즐겨 사용하거나 가장 많이 사용하는 프롬프트를 Gemini CLI 내에서 개인 단축키로 저장하고 재사용할 수 있습니다. 커스텀 명령어는 특정 디렉터리에 있는 TOML 파일에 저장됩니다.

~/.gemini/commands/ 내에서 전역적으로 사용할 수 있는 명령어를 만들 수 있으며, 프로젝트 디렉터리 내의 .gemini/commands/에서 특정 프로젝트 내에서 사용 가능한 명령어를 만들 수도 있습니다.

컨텍스트 파일의 설명 콘텐츠를 대체할 설명 슬래시 명령어를 만듭니다.

  1. 사용자 수준 컨텍스트 파일을 삭제하려면 다음 명령어를 실행합니다.

    rm ~/.gemini/GEMINI.md

    Gemini CLI에서 더 이상 설명 모드 컨텍스트를 사용할 수 없습니다.

  2. 명령어 파일을 만들려면 다음 명령어를 실행합니다.

    mkdir ~/.gemini/commands cat > ~/.gemini/commands/explain.toml <<EOF description = "use Explain Mode" prompt = ''' # Gemini CLI: Explain Mode 너는 특화된 **설명 모드**에서 작동하는 Gemini CLI야. 너는 가상 선임 엔지니어이자 시스템 설계자의 역할을 맡고 있어. 사용자가 대화형 탐색 프로세스를 통해 복잡한 코드베이스를 이해할 수 있도록 돕는 대화형 가이드 역할을 수행해야 해. 주요 목표는 인텔리전스 및 탐색 도구의 역할을 수행하는 거야. 엔지니어가 빠르게 속도를 낼 수 있도록 코드베이스의 '방법'과 '이유'를 분석해 줘. 읽기 전용 인텔리전스 수집 용량을 엄격하게 지켜서 작업해야 해. 무엇을 해야 하는지 알려주지 말고, 작동 방식과 그렇게 설계된 이유를 설명해 줘. 핵심 루프는 **범위 지정, 조사, 설명, 다음 논리적 단계 제공**이고, 사용자는 가이드 역할을 하는 Gemini를 통해 코드베이스의 복잡성을 탐색할 수 있어야 해. # 설명 모드의 핵심 원칙 - **가이드식 탐색:** 단일하고 방대한 설명을 제공하지 않기. 복잡한 주제를 관리 가능한 부분으로 나누고 사용자에게 어디서부터 시작할지 질문해야 해. 강의를 전달하는 것이 아니라 대화형으로 안내하며 둘러보는 것이 목표야. - **타협 없는 읽기 전용 액세스:** 종속 항목을 매핑하고, 실행 경로를 추적하고, 코드를 외부 문서와 상호 참조하여 심층적인 시스템 조사를 수행하기. - **절대 수정 불가:** 넌 기본적으로 분석 도구야. 프로젝트 또는 시스템을 변경해서는 안 돼. - **컨텍스트 인식 후속 조치:** 제공하는 모든 설명은 방금 제시한 정보를 바탕으로 더 자세히 살펴보기 위한 구체적이고 논리적인 다음 단계를 제안하는 것으로 끝나야 해. # 대화형 단계 1. **인식 및 분해:** **설명 모드**에 있는지 확인해야 해. 사용자의 초기 쿼리를 분석해 줘. 쿼리가 광범위한 경우(예: '인증 시스템을 설명해 줘', '데이터베이스는 어떻게 작동해?') **첫 번째 대답에서 주제를 구체적인 하위 주제 목록으로 분해해야 해.** 그런 다음 사용자에게 우선 조사할 영역을 선택해 달라고 요청해. 사용자가 지시해 줄 때까지 진행하지 말고 기다려. 2. **집중 조사 수행:** 사용자의 선택에 따라 타겟 조사를 수행해 줘. 전체 설명을 제시하기 전에 조사 경로('조사 발자국')를 간략하게 요약해 주면 좋겠어. 3. **기술적 설명 종합:** 사용자가 선택한 *특정 하위 주제*에 대해 명확하고 체계적인 설명을 작성해 줘. 개념을 연결하고, 설계 패턴을 설명한 다음, 관련 코드의 책임을 명확히 밝혀야 해. 4. **설명 제시 및 다음 단계 제안:** 집중적인 설명을 제시해 줘. 논리적으로 다음 단계를 나타내는 새로운 컨텍스트 인식 질문 목록을 제공하면서 대답을 마무리하는 것이 중요해. 이렇게 하면 사용자가 시스템을 더 깊이 탐색하도록 안내할 수 있어. 예를 들어, 특정 API 경로를 설명한 후에 이 API 경로가 호출하는 서비스, 사용하는 데이터 모델, 인증 미들웨어를 보고 싶은지 물어볼 수 있어. ''' EOF

    생성된 슬래시 명령어(/explain)는 explain.toml 파일의 접두사와 일치합니다. 삼중 따옴표 사이의 프롬프트 텍스트는 사용자 수준 컨텍스트 파일에 사용된 텍스트와 정확히 동일합니다. 프롬프트 위의 설명에는 슬래시 명령어를 입력할 때 표시되는 텍스트가 포함되어 있습니다.

  3. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/gemini-cli gemini
  4. 설명 모드가 아닌 설명을 가져오려면 다음 프롬프트를 사용합니다.

    코드에 대해 알려 줘

    Gemini가 설명 모드 컨텍스트 없이 대답합니다.

  5. 설명 모드를 사용하려면 다음 커스텀 슬래시 프롬프트를 사용하세요.

    /explain tell me about the code

    Gemini가 설명 모드로 응답합니다. 이제 이전과 같이 양방향 대화를 계속할 수 있습니다.

  6. Gemini에게 모드에 대해 물어보려면 다음 프롬프트를 사용하세요.

    지금 어떤 모드야?

    Gemini가 여전히 설명 모드라고 대답합니다.

  7. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 커스텀 슬래시 명령어 만들기

작업 4. Gemini CLI 도구 사용하기

이 작업에서는 Gemini CLI 도구에 관해 알아봅니다.

Gemini CLI에는 Gemini 모델이 로컬 환경과 상호작용하고, 정보를 검색하며, 작업을 실행할 수 있도록 하는 기본 제공 도구가 포함되어 있습니다. 이 기능을 통해 Gemini CLI는 다양한 활동을 지원할 수 있습니다.

이러한 도구에는 다음이 포함됩니다.

  • 디렉터리 나열, 파일 읽기 및 쓰기, 와일드 카드로 파일 검색, 파일 내 텍스트 검색, 파일 내 텍스트 업데이트를 위한 파일 시스템 도구
  • 기본 시스템과 상호작용하고, 스크립트를 실행하며, 명령줄 작업을 수행하는 셸 도구
  • 웹 검색 및 가져오기 도구
  • 세션 전반에 걸쳐 정보를 저장하고 불러오는 메모리 도구

Gemini는 기본 제공 도구를 사용하여 인터넷에서 정보를 검색하고 해당 정보가 포함된 파일을 만듭니다.

Gemini CLI 체크포인트

Gemini CLI에는 AI 기반 도구가 파일을 수정하기 전에 프로젝트 상태의 Git 스냅샷을 자동으로 생성하는 체크포인트 기능이 포함되어 있습니다. 이렇게 하면 필요에 따라 변경사항을 즉시 되돌릴 수 있으므로 변경사항을 생성하는 Gemini CLI를 안전하게 실험해 볼 수 있습니다.

각 체크포인트는 ~/.gemini 디렉터리 내 홈 디렉터리에 있는 특수한 섀도우 Git 저장소에서 만들어집니다. 스냅샷은 해당 시점의 프로젝트 파일의 전체 상태를 캡처하며 프로젝트의 Git 저장소에는 영향을 미치지 않습니다. 또한 해당 시점까지 에이전트와 나눈 전체 대화와 실행될 예정이었던 특정 도구 호출도 캡처됩니다.

체크포인트를 복원하려면 /restore 슬래시 명령어를 사용합니다. 이렇게 하면 파일이 캡처된 상태로 되돌아가고, 대화 기록이 복원되며, 원래 도구 호출이 다시 제안됩니다. 다시 실행하거나 수정하거나 무시할 수 있습니다.

--checkpointing 플래그를 사용하거나 settings.json 파일에서 체크포인트를 사용 설정하여 세션의 체크포인트를 켤 수 있습니다.

참고: 이 실습에서는 체크포인트를 사용하지 않습니다. 미션 크리티컬 프로젝트에는 이 기능을 사용하는 것이 좋습니다.

인터넷에서 최신 정보 검색하기

  1. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/project1 gemini
  2. 셸 모드를 사용 설정하려면 ! 키를 누릅니다.

    Gemini CLI는 셸 모드가 사용 중지될 때까지 입력된 텍스트를 셸 명령어로 실행합니다.

  3. 인터넷에서 Google Cloud RSS 피드를 가져오려면 다음 셸 명령어를 실행합니다.

    wget -O ~/project1/rss.xml "https://cloudblog.withgoogle.com/rss/"

    피드 XML은 rss.xml이라는 이름의 파일로 ~/project1 디렉터리에 저장됩니다.

    참고: 일반적인 프롬프트로 요청해도 Gemini CLI가 피드를 가져올 수 있지만, 이 실습에서는 일관되게 가져오기 위해 셸 명령어를 사용합니다.
  4. 셸 모드를 사용 중지하려면 !를 누릅니다.

  5. 피드의 정보를 요약하려면 다음 프롬프트를 제출합니다.

    RSS XML 파일의 콘텐츠를 요약해 줘

    RSS 피드 파일을 성공적으로 가져왔다면 다음과 비슷한 정보가 반환될 수 있습니다.

    ✦ Google Cloud 블로그의 RSS 피드에는 Google Cloud 제품의 다양한 발전과 업데이트를 다루는 최근 게시물이 여러 개 포함되어 있습니다. 주요 주제는 다음과 같습니다. * AI 보안: Model Armor는 프롬프트 인젝션, 탈옥, 민감한 정보 노출 및 기타 위협으로부터 AI 애플리케이션을 보호하는 솔루션으로 설명되며, Apigee와의 통합에 대한 세부정보가 함께 제공됩니다. * 멀티 아키텍처 마이그레이션: 프로덕션 서비스를 위한 멀티 아키텍처(x86 및 Arm) 환경으로 향하는 Google 여정을 자세히 설명하고, 이 대규모 마이그레이션에서 CogniPort와 같은 AI 및 자동화 도구의 역할을 강조합니다. * 클라우드 보안 개선: Cloud Armor는 계층적 보안 정책, 향상된 WAF 검사, JA4 네트워크 지문 날인, Media CDN용 네트워크 위협 인텔리전스 등의 새로운 기능을 도입하여 웹 애플리케이션 방화벽 솔루션 분야의 강력한 제품으로서의 입지를 강화합니다. * AI 신뢰를 위한 데이터 계보: Dataplex는 이제 데이터 여정을 세밀하게 파악하여 AI 시스템에 대한 신뢰와 컨텍스트를 구축할 수 있도록 BigQuery 데이터에 대한 열 수준 계보를 제공합니다. * AI 하이퍼컴퓨터 업데이트: AI 하이퍼컴퓨터의 주요 업데이트에는 LLM 추론 개선을 위한 TPU의 vLLM, 향상된 XProf 프로파일러, NVIDIA Dynamo 및 NeMo RL을 위한 새로운 레시피가 포함됩니다. * GPU 발전: NVIDIA RTX PRO 6000 Blackwell GPU 기반 G4 VM의 정식 버전 출시가 발표되어 AI, 시각적 컴퓨팅, 시뮬레이션의 성능이 크게 향상되었으며 멀티 GPU 워크로드에 맞춤설정된 P2P 패브릭도 제공됩니다. 피드에서는 전반적으로 기업에 안전하고 확장 가능한 고성능 솔루션을 제공하기 위한 AI, 머신러닝, 보안, 인프라 분야의 Google Cloud의 지속적인 혁신을 강조합니다. 참고: Gemini CLI가 피드의 세부정보를 요약할 수 없는 경우 스테이징된 버전의 파일을 검색해야 합니다.
  6. RSS XML 파일을 성공적으로 가져오지 못한 경우 셸 모드를 사용 설정하고 이 명령어를 사용하여 피드 파일의 스테이징된 버전을 가져옵니다.

    wget -O ~/project1/rss.xml "https://storage.googleapis.com/cloud-training/CBL547/rss.xml"

    다음 작업에서는 피드 파일을 웹 앱의 데이터 소스로 사용합니다. Gemini CLI를 사용하면 파일을 이동하고 이름을 바꿀 수 있습니다.

  7. 셸 모드인 경우 ! 키를 눌러 셸 모드를 사용 중지합니다.

  8. 파일 및 디렉터리 구조를 수정하려면 다음 프롬프트를 제출합니다.

    'data'라는 디렉터리를 만들고 rss 파일을 해당 디렉터리로 이동한 다음 파일 이름을 'feed.xml'로 바꿔 줘.
  9. Gemini CLI에서 계속 진행할지 묻는 메시지가 표시될 때마다 Enter 키를 눌러 도구 사용을 허용합니다.

    참고: 이 실습에서는 항상 변경사항을 수락하라고 되어 있지만, 실제 사용 시에는 제안된 변경사항을 분석한 다음 수락하거나 거부하는 것이 일반적입니다.
  10. 결과 디렉터리 구조를 보려면 다음 프롬프트를 제출합니다.

    모든 디렉터리와 하위 디렉터리의 콘텐츠를 나열하는 긴 목록을 반환해 줘.
  11. Gemini CLI를 종료하려면 /quit 슬래시 명령어를 입력합니다.

  12. SSH 세션을 종료하려면 exit를 입력한 다음 Enter 또는 Return 키를 누릅니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Gemini CLI 도구 사용

작업 5. Gemini CLI로 웹 앱 빌드하기

이 작업에서는 Gemini CLI 바이브 코딩으로 웹 앱을 빌드합니다.

바이브 코딩은 인공지능을 사용하여 자연어 프롬프트에서 기능 코드를 생성하는 소프트웨어 개발 방식입니다. 바이브 코딩을 사용하면 개발자가 앱을 빠르게 개발하고, 프로그래밍 경험이 제한적인 개발자도 작동하는 앱을 빌드할 수 있습니다.

참고: 생성형 AI 대규모 언어 모델의 프롬프트를 작성할 경우 대답과 생성된 콘텐츠는 실행할 때마다 다를 수 있습니다.
  1. Cloud Shell에서 VM에 대한 SSH 연결을 엽니다.

    gcloud compute ssh {{{project_0.startup_script.vm_name | VM_NAME}}} --zone={{{project_0.default_zone | ZONE}}} -- -L 8080:localhost:5000 참고: SSH 명령어를 자세히 살펴보면 이전 명령어와 다릅니다. 명령어의 끝부분은 로컬 포트 전달 터널을 설정하며, 여기에서 포트 8080의 로컬 트래픽이 VM의 포트 5000으로 자동 전달됩니다. 이 작업에서 빌드하는 웹 앱을 테스트하는 데 사용됩니다.
  2. Gemini CLI를 시작하려면 다음 명령어를 실행합니다.

    cd ~/project1 gemini

    첫 번째 단계는 다운로드한 feed.xml 파일을 조사하는 것입니다.

  3. 피드에 어떤 항목이 있는지 확인하려면 다음 프롬프트를 제출합니다.

    @data/feed.xml 피드 항목에는 어떤 데이터 필드가 있어?

    At 명령어(@)에는 data/feed.xml 파일의 콘텐츠가 Gemini에 대한 프롬프트의 일부로 포함됩니다.

    Gemini CLI 대답은 다음과 비슷할 수 있습니다.

    ✦ feed.xml 파일의 피드 항목(<item>)에는 다음 데이터 필드가 있습니다. * title * link * description * pubDate * guid * category * og:type * og:title * og:description * og:site_name * og:url * author:name * author:title * author:department * author:company

    다음으로 피드에서 정보를 표시하는 Python Flask 웹 앱을 빌드합니다.

  4. Gemini CLI에 앱 빌드를 요청하려면 다음 프롬프트를 제출합니다.

    변경하기 전에 할 일에 관한 계획을 세우고 계획을 승인해 달라고 요청해 줘. 1. Python3에는 가상 환경(venv)을 사용해. 2. Flask 라이브러리를 사용하고 feed.xml을 데이터 소스로 사용하는 Python 웹 앱을 만들어. 3. index.html 페이지는 feed.xml 파일을 읽은 다음 블로그 항목 목록을 최신 항목부터 오래된 항목 순으로 표시해야 해. 4. 항목마다 블로그 게시물의 날짜와 링크가 표시되어야 해. 여기에서 링크의 텍스트는 블로그 제목이고, URL은 새 탭에서 블로그 항목 URL을 열어. 5. 앱은 포트 5000에서 호스팅되어야 해. 6. 그런 다음 웹 서버를 시작해 줘.

    첫 번째 문은 Gemini CLI에 계획을 설계한 다음 승인을 요청하도록 지시합니다. 이는 AI 도구를 사용하여 시스템을 변경하기 위해 권장되는 방법입니다.

    번호 매기기 목록은 Gemini CLI에 앱과 관련된 몇 가지 요구사항을 제공합니다.

    앱에 대한 계획은 Gemini CLI가 설계해야 합니다. Gemini CLI가 제공하는 계획을 검토합니다.

    대답은 다음과 같을 수 있습니다.

    ✦ Flask 웹 애플리케이션을 만들기 위한 계획은 다음과 같습니다. 1. Python 가상 환경 설정하기: * venv라는 가상 환경을 만듭니다. * 가상 환경을 활성화합니다. * 가상 환경 내에 Flask와 feedparser(간편한 XML 파싱용)를 설치합니다. 2. Flask 애플리케이션 개발(app.py): * Python 파일 app.py를 만듭니다. * Flask 애플리케이션을 초기화합니다. * 기준 URL(/)의 경로를 정의합니다. * 경로 함수 내부: * feedparser를 사용하여 feed.xml 파일을 읽고 파싱합니다. * 블로그 항목을 게시일 기준 내림차순(최신 항목부터)으로 정렬합니다. * HTML 템플릿(index.html)을 렌더링하여 정렬된 블로그 항목을 전달합니다. 3. HTML 템플릿 만들기(templates/index.html): * templates라는 디렉터리를 만듭니다. * templates 내부에 index.html을 만듭니다. * 이 템플릿은 다음을 수행합니다. * 블로그 게시물의 제목을 표시합니다. * 블로그 게시물 목록을 반복합니다. * 항목마다 게시 날짜와 블로그 게시물의 URL로 연결되어 새 탭에서 열리는 클릭 가능한 제목을 표시합니다. 4. Flask 웹 서버 실행: * FLASK_APP 환경 변수를 app.py로 설정합니다. * 포트 5000에서 Flask 개발 서버를 시작합니다. 이 계획을 승인하시겠습니까?
  5. Gemini CLI에서 계획을 승인할지 묻는 메시지를 표시하면 yes를 입력하고 Enter 또는 Return 키를 누릅니다.

    Gemini CLI가 변경사항을 구현하기 시작합니다. 이 실습에서는 Gemini CLI의 각 요청을 수락합니다.

  6. Gemini CLI에서 계속 진행할지 묻는 메시지가 표시될 때마다 Enter 키를 눌러 도구 사용을 허용합니다.

    확인해야 하는 여러 단계를 거치면 Gemini CLI가 애플리케이션을 만들고 시작합니다.

    참고: 프롬프트가 아직 반환되지 않았더라도 Shell 도구에 Flask 앱이 제공되고 있다고 표시되면 다음 단계로 진행할 수 있습니다.
  7. 웹브라우저에서 애플리케이션을 실행하려면 웹 미리보기를 클릭하고 포트 8080에서 미리보기를 선택합니다.

    포트 8080에서 웹 미리보기

    브라우저에 새 탭이 열리고 애플리케이션이 실행됩니다. 링크를 클릭하면 블로그 항목이 새 탭에서 열립니다.

    앱은 아마도 상당히 단순할 것입니다. Gemini CLI에 개선을 요청할 수 있습니다.

  8. 셸 도구가 여전히 실행 중인 경우 ESC를 눌러 취소합니다.

  9. Gemini CLI에 앱 수정을 요청하려면 Gemini CLI로 돌아가서 다음 프롬프트를 제출합니다.

    몇 가지 변경하고 싶은 사항이 있어. 앞서 말한 것처럼 먼저 계획을 승인하려고 해. 1. 이제 index.html의 링크로 entry.html이라는 새 페이지를 열어. 2. 새 페이지인 entry.html은 항목의 고유 식별자의 URL 인코딩된 버전을 포함하는 쿼리 매개변수를 가져와서 피드의 모든 블로그 항목 정보를 읽을 수 있는 형식으로 표시해. 3. entry.html 상단에 있는 링크를 클릭하면 실제 블로그 항목이 새 탭에서 열려. 4. index.html로 돌아갈 수 있도록 entry.html에 뒤로 버튼을 추가해 줘. 5. CSS를 추가해서 앱을 보기 좋게 만들고 Google 로고의 파란색과 녹색을 사용해 줘.

    Gemini가 요청을 고려한 다음 계획을 세웁니다. Gemini CLI가 제공하는 계획을 검토합니다.

    대답은 다음과 같을 수 있습니다.

    ✦ 요청하신 변경사항을 구현하기 위한 계획은 다음과 같습니다. 1. app.py 업데이트: * 새 경로 /entry 추가: 이 경로는 개별 블로그 항목에 대한 요청을 처리합니다. * 블로그 항목의 고유 식별자인 guid 쿼리 매개변수가 필요합니다. * feed.xml을 다시 파싱하여 제공된 guid와 일치하는 항목을 찾습니다. * 항목이 발견되면 새 템플릿 entry.html을 렌더링하여 발견된 항목의 데이터를 전달합니다. * 항목을 찾을 수 없는 경우 홈페이지로 리디렉션되거나 오류가 표시됩니다. * feed.xml 파싱 로직이 강력한지 확인: 색인 경로가 feed.xml을 계속 파싱하고 기본 등록정보의 항목을 정렬합니다. 2. templates/index.html 수정: * 항목 링크 업데이트: 각 블로그 항목 제목의 href를 새 /entry 경로를 가리키도록 변경하고 항목의 guid를 URL 인코딩된 쿼리 파라미터로 전달합니다. * CSS 링크: 새 style.css 파일을 포함하도록 <head> 섹션에 <link> 태그를 추가합니다. 3. templates/entry.html 만들기: * 새 HTML 파일: templates 디렉터리에 entry.html을 만듭니다. * 항목 세부정보 표시: 이 페이지에는 다음을 포함하여 선택한 블로그 항목의 전체 세부정보가 표시됩니다. * 제목 * 게시 날짜 * 작성자(사용 가능한 경우) * 설명(피드에 이미 HTML이 있으므로 원시 HTML 콘텐츠가 표시됨) * 원본 게시물 링크: 눈에 띄는 링크(예: '원본 문서 읽기')를 포함합니다. 이 링크는 entry.link와 target="_blank"를 사용하여 원본 블로그 게시물을 새 탭에서 엽니다. * 뒤로 버튼: url_for('index')를 사용하여 index.html로 돌아가는 링크 또는 버튼을 추가합니다. * CSS 링크: 새 style.css 파일을 포함하도록 <head> 섹션에 <link> 태그를 추가합니다. 4. static/style.css 만들기: * 새 CSS 파일: static 디렉터리를 만들고 그 안에 style.css를 만듭니다. * 스타일 지정: index.html과 entry.html 모두에 CSS 규칙을 적용하여 보기 좋게 만듭니다. Google의 브랜드 색상을 사용합니다. * Google Blue: #4285F4 * Google Green: #34A853 * 항목의 일반적인 레이아웃, 서체, 링크 스타일, 박스 모델이 정의됩니다. 5. Flask 애플리케이션 다시 시작: * app.py의 변경사항과 새 템플릿/정적 파일을 적용하려면 Flask 서버를 다시 시작해야 합니다. 이 상세 계획을 승인하시겠습니까?
  10. Gemini CLI가 계획을 승인할지 묻는 메시지를 표시하면 yes를 입력한 다음 Enter 또는 Return 키를 누릅니다.

  11. Gemini CLI에서 계속 진행할지 묻는 메시지가 표시될 때마다 Enter 키를 눌러 도구 사용을 허용합니다.

    Gemini CLI가 업데이트를 다시 적용하고 웹 서버를 다시 시작합니다.

  12. 웹 앱 페이지를 새로고침하거나 웹 미리보기를 사용하여 새 탭을 엽니다.

    업데이트된 앱에는 이제 블로그 항목당 하나의 페이지가 포함되어야 하며 요청된 Google Blue와 Green을 사용해야 합니다.

    참고: 앱이 변경되지 않은 것처럼 보인다면 Gemini CLI가 웹 서버를 성공적으로 종료하지 못했을 수 있습니다. Gemini CLI가 웹 서버를 다시 시작할 수 있도록 '웹 서버를 종료하고 다시 시작해 줘'와 같은 프롬프트를 사용합니다.

    다음은 Gemini CLI로 생성된 블로그 페이지의 예시입니다.

    Google Green과 Blue를 사용하고 &#39;홈으로 돌아가기&#39; 링크와 원본 게시물을 볼 수 있는 버튼이 포함된 블로그 항목의 예시입니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Gemini CLI로 웹 앱 빌드하기

선택사항: 5단계의 진행 상황을 성공적으로 확인한 후 Gemini CLI를 사용하여 앱을 추가로 변경하거나 수정할 수 있습니다.

수고하셨습니다

Gemini CLI를 성공적으로 설치하고, 필요에 맞게 대답을 얻을 수 있도록 구성한 후 컨텍스트를 제공했으며, Gemini CLI를 사용하여 코드를 설명하고 앱을 빌드했습니다.

설명서 최종 업데이트: 2025년 10월 22일

실습 최종 테스트: 2025년 10월 22일

Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하는 가장 좋은 방법은 시크릿 모드 또는 시크릿 브라우저 창을 사용하는 것입니다. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.