핵심 요약 (Executive Summary)
이번 포스트는 Google Cloud Tech의 “Vibe coding with Gemini CLI” 기술 세션 분석 및 Gemini CLI의 핵심 기능과 개발 워크플로우를 설명합니다.
Gemini CLI는 터미널 기반의 AI 코딩 에이전트로, 단순히 코드를 생성하는 것을 넘어 개발자가 AI의 컨텍스트를 제어하고 외부 도구와 통합하여 효율적으로 협업할 수 있도록 설계되었습니다.
주요 핵심 사항은 다음과 같다:
- Vibe Coding의 정의: AI 모델의 확률적 특성을 이해하고, 컨텍스트 관리와 지시어 설계를 통해 에이전트의 출력을 정밀하게 제어하는 기술적 숙련도를 의미한다.
- 컨텍스트 엔지니어링:
gemini.md파일을 활용하여 사용자 수준(글로벌)과 프로젝트 수준(로컬)의 메모리를 구분하여 관리함으로써 에이전트에게 최적화된 배경 지식을 제공한다. - 확장성 (MCP 및 확장 프로그램): 모델 컨텍스트 프로토콜(MCP)을 통해 외부 서버(예: Gitia)와 통업하고, 확장 프로그램을 통해 고성능 모델(예: Nana Banana 이미지 생성 모델) 기능을 통합한다.
- SDLC 통합: 이슈 생성, 코드 푸시, 브랜치 관리 등 소프트웨어 개발 생명주기 전반을 AI 에이전트가 직접 수행하도록 지원한다.
| 단계 | 학습 주제 | 사용된 도구 및 익스텐션 |
| 준비 단계 | Google Cloud 환경 설정 및 크레딧 등록 | Google Cloud Console, Cloud Shell |
| 프로젝트 설정 | 실습용 프로젝트 복제 및 API 활성화 | Git, Artifact Registry |
| 권한 설정 | 서비스 계정 권한 부여 | IAM (Identity and Access Management) |
| CLI 설치 및 확인 | Gemini CLI 설치 및 기본 사용법 | Gemini CLI (GSLI) |
| 컨텍스트 관리 | 사용자 레벨 vs 프로젝트 레벨 메모리 차이 | gemini.md, skill.md |
| 도구 및 익스텐션 탐색 | 기본 제공 도구 및 익스텐션 확인 | Google Search, Read File |
| MCP 서버 연결 | Gitea MCP 서버를 통한 SDLC 관리 | MCP (Model Context Protocol), Gitea, settings.json |
| 이미지 생성 활용 | Nana Banana 익스텐션을 사용한 이미지 생성 | Nana Banana Extension, Gemini API Key |
| 코드 배포 및 완료 | 코드 수정, 푸시 및 이슈 종료 | Gitea, Python (local server) |
1. Gemini CLI 개요 및 개발 환경
Gemini CLI는 터미널 내에서 직접 작동하는 에이전트 도구로, 개발자가 “Vibe Coding”을 수행할 수 있도록 지원한다. 이는 단순한 코드 완성을 넘어 복잡한 개발 워크플로우를 관리하는 ‘터미널 내의 에이전트’ 역할을 한다.
1.1 개발 환경 구성
- Google Cloud Shell: 브라우저 기반의 원격 VM으로, VS Code와 유사한 에디터와 터미널을 동시에 제공한다. 파일 시스템이 영구적으로 유지되어 개발 환경으로 권장된다.
- 인증 및 설정:
gcloud auth list를 통해 인증하며, 개인 Gmail 계정 사용이 권장된다. (기업/교육 계정의 제한 사항 회피 목적) - Gemini CLI 설치: 한 줄의 명령어로 설치 가능하며, 무료 계정은 모델 사용량에 제한이 있을 수 있으나 유료 계정은 더 높은 한도를 제공한다.
1.2 주요 인터페이스 및 명령어
| 명령어 | 기능 설명 |
gemini | Gemini CLI 세션 시작 |
/help | 사용 가능한 도움말 및 명령 목록 표시 |
! (Exclamation mark) | Shell Mode: Gemini 에이전트를 거치지 않고 직접 터미널 명령(ls, cd, echo 등) 실행 |
tools | 현재 활성화된 내장 도구(Google Search, Read File 등) 목록 표시 |
memory show | 현재 로드된 메모리(컨텍스트) 내용 확인 |
quit / exit | 세션 종료 (종료 시 세션 ID가 제공되어 추후 복구 가능) |
2. 컨텍스트 엔지니어링 및 메모리 관리
AI 에이전트의 출력 품질은 제공된 컨텍스트에 직결된다. Gemini CLI는 이를 체계적으로 관리하기 위해 두 가지 계층의 메모리 구조를 사용한다.
2.1 메모리 계층 구조
- 사용자 수준 (User Level): 모든 터미널 폴더와 프로젝트에 전역적으로 적용되는 설정 및 지침이다.
- 프로젝트 수준 (Project Level): 특정 폴더 내에서만 유효한 정의와 컨텍스트이다.
.md파일(예:gemini.md)을 해당 폴더에 배치하여 관리한다.
2.2 지연 로딩(Lazy Loading) 및 효율성
- 메모리(Memory): 시스템 프롬프트처럼 항상 로드되어 에이전트의 행동 지침 역할을 한다.
- 스킬(Skills): 컨텍스트 윈도우의 낭비를 방지하기 위해 필요한 시점에만 동적으로 로드되는 ‘지연 로딩’ 방식을 취한다. (기술 상세는 다음 에피소드에서 다루어질 예정)
3. 확장성: MCP 서버와 확장 프로그램
Gemini CLI는 외부 도구 및 서비스와의 연결을 위해 두 가지 주요 메커니즘을 제공한다.
3.1 모델 컨텍스트 프로토콜 (MCP)
MCP는 에이전트와 도구 간의 통신 언어를 표준화하는 프로토콜이다.
- Gitia MCP 서버: 로컬 소스 제어 저장소 역할을 하며, 에이전트가 이슈 생성, 브랜치 관리, 코드 커밋 등을 수행할 수 있도록 도구를 노출한다.
- 설정 파일 (
settings.json): 커스텀 MCP 연결, 인증 설정, 훅(Hooks) 통합을 관리하는 통합 설정 파일이다.
3.2 확장 프로그램 (Extensions)
확장 프로그램은 Gemini CLI를 위한 패키지 매니저와 같다.
- Nana Banana 확장: 텍스트-이미지 생성 모델로, 고해상도(4K 등) 및 다양한 종횡비의 이미지를 생성한다. 프롬프트 준수 능력이 뛰어나 이미지 편집 및 생성에 강점을 가진다.
- 기타 확장: Google Maps, Google Workspace 등 다양한 외부 서비스와의 통합이 가능하다.
4. 실전 워크플로우 분석: “Shadow Blade” 프로젝트
소스 컨텍스트는 ‘Shadow Blade’라는 가상의 히어로 웹사이트를 구축하는 과정을 통해 실질적인 도구 활용법을 제시한다.
4.1 웹사이트 구축 및 이미지 통합
- 초기 생성: Gemini CLI에 “다크 퓨처리즘 테마”의 웹사이트 생성을 요청하면
index.html과style.css를 분리하여 생성한다. - 이슈 관리: 에이전트가 Gitia MCP 서버를 사용하여 “이미지 누락” 이슈를 스스로 생성한다.
- 이미지 생성: Nana Banana 확장을 호출하여 히어로 캐릭터의 초상화를 생성하고, 에이전트가 HTML 코드를 직접 수정하여 이미지를 웹사이트에 반영한다.
4.2 SDLC 자동화
- 개발자는 직접
git명령어를 입력하는 대신, Gemini CLI에 “코드를 푸시하고 이슈를 종료하라”고 지시한다. - 에이전트는 내부적으로
push_code,close_issue등의 도구를 호출하여 버전 관리 시스템의 상태를 업데이트한다.
5. 향후 과제 및 고도화 기술
본 분석의 대상인 세션 이후, 다음과 같은 고도화된 주제들이 예고되었다.
- 에이전트 스킬 및 훅(Hooks): 에이전트의 행동을 제어하고 가드레일을 추가하는 기술.
- 에이전트 배포: Cloud Run을 통한 에이전트의 클라우드 배포 및 에이전트 간 통신(A2A) 테스트.
- 평가 및 모니터링: CI/CD 파이프라인 내에서의 에이전트 성능 평가 및 테스트 자동화.
주요 인용구 (Key Quotes)
“Vibe coding은 예술이자 기술입니다. 컨텍스트를 관리하고 명령어를 제공하는 방법을 배워야 하며, 이는 시간이 지나면서 숙련되는 기술입니다.”
“MCP(Model Context Protocol)는 에이전트와 도구 사이의 통신 언어를 표준화하여 유니버설하게 만듭니다.”
“Gemini CLI의 settings.json 파일은 커스텀 MCP 연결, 훅 통합 등을 제공하는 원스톱 샵과 같습니다.”