

- 신영선의 AI탐구
- 조코딩 JoCoding
- CONNET AI LAB
- 편집자P
- 필로소피AI
- 코드팩토리
- 코난쌤
- 메타코드M
- 개발동생
- 메이커에반
- 바이브랩스
- 단테랩스
- 괴발자
- 홍정모AI
- 한빛미디어
- 칼퇴왕김과장N8N
- 퀀텀점프클럽N8N
- 짐코딩
- 시현의모험
- AI겸임교수 이종범
- AI ON
- 태오의실행비즈니스
- 오후다섯씨
- 코드깎는노인
- 데브남
- 스테판초 AI
- 빌더조쉬
- Claudical (클로디컬)
- 테크브릿지
- 실밸개발자
- Ai 서대표
- 일하는 Ai
- 시민개발자 구씨
- 일잘러 장피엠
- 이동훈의 루트ai
- 조태호교수
- 아는개발자 캐슬
- Jay Choi 인디해커
- 기술노트with일렉
- 제초초토크
- Ai IMPACT
- 오늘노트
- 알쓸신작 AI 이야기
- AI 튜터랩
- CODE DECK ★ 중요함
- 샘호트만 AI엔지니어
- 테디노트
- 경희대학교 SW사업단
- 강원대학교 SW사업단
- 지투지 AI STUDY
- 바퍼
- 소스놀이터
샌드박스부터 훅(Hook)까지: Gemini CLI 보안 및 고급 도구 설정 방법
## Gemini CLI 개요 및 기본 환경
Gemini CLI는 터미널 환경에서 Google의 강력한 Gemini 3 Pro 및 Flash 모델을 직접 활용할 수 있도록 설계된 도구입니다. 사용자는 Google 계정, Gemini API 키, Vertex AI 등 다양한 인증 방식을 통해 시스템에 접근할 수 있으며, 각 방식에 따라 무료 사용량이나 구독 기반의 할당량을 유연하게 관리할 수 있습니다. 복잡한 작업이나 단순한 코드 수정 등 상황에 맞게 최적의 모델을 자동으로 라우팅하거나 사용자가 직접 지정할 수 있는 기능을 제공합니다.
## 에이전트 스킬과 하위 에이전트 (Agent Skills & Subagents)
에이전트 스킬(Agent Skills)은 보안 감사나 풀 리퀘스트 생성 등 특수한 전문 지식과 절차적 워크플로우를 패키지화하여 필요할 때만 동적으로 활성화하는 기능입니다. 이는 메인 에이전트의 컨텍스트 창을 효율적으로 관리하는 데 도움을 줍니다. 하위 에이전트(Subagents)는 메인 세션 내에서 동작하는 전문가 에이전트로, 코드베이스 조사(Codebase Investigator)나 브라우저 자동화 등 특정 도메인의 복잡한 작업을 메인 에이전트와 독립된 컨텍스트에서 수행하여 토큰 사용을 최적화합니다.
## MCP (Model Context Protocol) 서버 통합
Gemini CLI는 MCP 서버를 통해 외부 시스템, 데이터베이스, 사용자 정의 API 등과의 원활한 상호 작용을 지원합니다. 사용자는 `settings.json` 파일에 MCP 서버를 구성하여 새로운 도구나 리소스를 모델이 검색하고 사용할 수 있게 만들 수 있습니다. 보안을 위해 관리자는 특정 도구만 허용(allowlist)하거나 제외(excludeTools)할 수 있으며, 이를 통해 신뢰할 수 있는 외부 도구만을 선별적으로 활용할 수 있습니다. 또한 MCP는 텍스트뿐만 아니라 이미지 등 풍부한 멀티미디어 콘텐츠를 반환하는 것도 지원합니다.
## 계획 모드와 작업 추적 (Plan Mode & Todos)
플랜 모드(Plan Mode)는 코드를 직접 수정하기 전에 안전한 읽기 전용 환경에서 해결책을 연구하고 설계하는 데 사용됩니다. 사용자와 에이전트는 대화를 통해 전략에 합의하고, 제안된 계획(Markdown 형식)을 검토하여 최종 승인 후 실행 단계로 넘어갈 수 있습니다. 복잡한 작업의 경우 `write_todos` 도구를 사용하여 하위 작업을 목록화하고, 진행 상황을 터미널 상단에서 실시간으로 추적하며 관리할 수 있습니다.
## 컨텍스트 및 메모리 관리 (Context & Memory)
프로젝트의 코딩 규칙이나 지침을 설정하려면 `GEMINI.md` 파일을 활용할 수 있으며, 이 파일들은 전역, 프로젝트 루트, 하위 디렉토리 등 계층적으로 로드되어 에이전트에게 지속적인 컨텍스트를 제공합니다. 또한 에이전트에게 특정 사실을 기억하도록 지시하면 `save_memory` 도구를 통해 전역 메모리에 저장됩니다. 자동 메모리(Auto Memory)라는 실험적 기능은 과거 세션을 백그라운드에서 분석해 유용한 워크플로우 패턴이나 사실을 추출하고, 사용자의 검토를 거쳐 영구적인 메모리나 스킬로 제안하기도 합니다. 이전 대화를 다시 이어가거나 특정 시점으로 되돌리는 `/rewind` 기능도 완벽히 지원됩니다.
## 샌드박싱과 보안 정책 (Sandboxing & Policy Engine)
시스템을 보호하기 위해 잠재적으로 위험한 쉘 명령어 실행이나 파일 수정은 샌드박싱(Sandboxing) 환경(Docker, macOS Seatbelt 등)에서 격리되어 실행될 수 있습니다. 보안 정책 엔진(Policy Engine)은 `.toml` 형식의 규칙을 통해 도구 실행을 세밀하게 제어합니다. 이를 통해 특정 명령어의 자동 승인(allow), 강제 차단(deny), 또는 사용자 확인 요청(ask_user)을 관리자 및 사용자 수준에서 우선순위에 따라 설정할 수 있습니다. 추가로 신뢰할 수 있는 폴더(Trusted Folders) 기능을 통해 검증되지 않은 프로젝트 폴더에서 위험한 설정이 자동 실행되는 것을 방지합니다.
## 확장 프로그램과 훅을 통한 맞춤 설정 (Extensions & Hooks)
Gemini CLI는 확장 프로그램(Extensions) 생태계를 통해 커스텀 명령어, 테마, MCP 서버, 에이전트 스킬 등을 하나의 패키지로 묶어 쉽게 공유하고 설치할 수 있습니다. 또한 훅(Hooks) 기능을 제공하여 에이전트가 도구를 선택하거나 실행하기 전후의 생명주기에 개입할 수 있습니다. 이를 통해 사용자는 커밋 전 중요 정보(Secret) 유출을 차단하거나, 모델의 요청에 동적인 컨텍스트를 주입하는 등의 자동화된 파이프라인을 구축할 수 있습니다.
## 터미널 자동화 및 IDE 통합 (Headless & IDE Integration)
헤드리스(Headless) 모드를 사용하면 대화형 UI 없이 CLI를 스크립트나 CI/CD 파이프라인에 통합하여 대량의 문서를 생성하거나 코드를 리뷰하는 등의 작업을 자동화할 수 있습니다. 더 나아가 VS Code 호환 확장 프로그램이나 ACP(Agent Client Protocol)를 통한 IDE 통합을 지원합니다. 이 통합을 통해 CLI는 사용자가 현재 열어둔 파일, 커서 위치, 선택한 텍스트 등의 실시간 컨텍스트를 파악하며, 에이전트가 제안한 코드 변경 사항을 IDE의 네이티브 Diff 뷰를 통해 직관적으로 검토하고 적용할 수 있습니다.

