프로젝트 구조

Gemini CLI의 코드베이스 조직 및 아키텍처 이해

프로젝트 개요

Gemini CLI는 여러 상호 연결된 패키지가 있는 모노레포로 구성됩니다

Gemini CLI는 더 쉬운 개발, 테스트 및 유지 관리를 위해 기능을 독립적인 패키지로 모듈화하는 Lerna 기반 모노레포 프로젝트입니다.

패키지 구조

Gemini CLI 생태계를 구성하는 핵심 패키지

CLI 패키지

packages/cli

주요 명령줄 인터페이스 및 사용자 대면 명령

주요 책임:

  • 명령 구문 분석 및 라우팅
  • 사용자 인터페이스 및 상호 작용
  • 구성 관리
  • 오류 처리 및 보고
  • 도움말 및 문서 표시

코어 패키지

packages/core

핵심 기능 및 비즈니스 로직

주요 책임:

  • API 클라이언트 구현
  • 모델 상호작용
  • 도구 관리 시스템
  • MCP 프로토콜 처리
  • 상태 관리

도구 패키지

packages/tools

내장 도구 및 유틸리티

주요 책임:

  • 파일 시스템 작업
  • 셸 명령 실행
  • 웹 요청 및 검색
  • 메모리 관리
  • 도구 등록

확장 패키지

packages/extensions

확장 시스템 및 플러그인 관리

주요 책임:

  • 확장 로딩 및 관리
  • 플러그인 레지스트리
  • 확장 API
  • 라이프사이클 관리
  • 종속성 해결

개발 워크플로

코드베이스와 효과적으로 작업하는 방법

글로벌 명령

npm run bootstrap

모든 패키지 설치 및 연결

npm run build

모든 패키지 빌드

npm run test

모든 테스트 실행

npm run lint

모든 패키지 린트

패키지별 명령

lerna run build --scope @gemini/cli

특정 패키지 빌드

lerna run test --scope @gemini/core

특정 패키지 테스트

lerna add lodash packages/core

패키지에 종속성 추가

관련 리소스

개발 문서 탐색 계속하기