Gemini CLI 활용 가이드

Gemini CLI는 대화형 인터페이스를 통해 다양한 소프트웨어 엔지니어링 작업을 수행할 수 있는 강력한 도구입니다. 이 가이드는 Gemini의 핵심 기능을 소개하고, Obsidian 환경에서 효과적으로 활용하는 방법을 안내합니다.


1. 핵심 기능 (Core Capabilities)

Gemini는 다음과 같은 주요 작업을 처리할 수 있습니다.

🗂️ 파일 시스템 관리

  • 파일 및 디렉토리 조회: ls -R, find . -name "*.py" 등 복잡한 명령어 대신, “src 폴더 아래의 모든 파이썬 파일을 찾아줘” 라고 요청할 수 있습니다.
  • 파일 내용 읽기: 특정 파일의 전체 또는 일부 내용을 읽고 그 내용을 기반으로 대화할 수 있습니다.
  • 파일 생성 및 수정: “hello.js 파일을 만들고, 콘솔에 ‘Hello, World!’를 출력하는 코드를 넣어줘” 와 같이 요청하여 파일을 직접 생성하고 수정합니다.
  • 파일 검색: 정규식을 사용하지 않고도, “모든 파일에서 ‘database_url’이라는 텍스트가 포함된 부분을 찾아줘” 라고 검색을 요청할 수 있습니다.

예시 작업:

  • src 디렉토리의 모든 .ts 파일 목록 확인하기
  • config.yaml 파일의 database.url 설정값 읽기
  • README.md 파일에 새로운 기능 설명 추가하기

💻 코드베이스 상호작용

  • 코드 이해 및 설명: 복잡한 코드 블록이나 파일의 기능을 한국어로 쉽게 설명해달라고 요청할 수 있습니다.
  • 리팩토링: 코드의 가독성, 효율성, 구조 개선을 제안받고 실행할 수 있습니다.
  • 버그 수정: 오류 메시지나 증상을 설명하고, 문제의 원인을 진단받고 수정 코드를 제안받을 수 있습니다.
  • 테스트 작성: 기존 코드에 대한 단위 테스트 또는 통합 테스트 코드를 자동으로 생성하도록 요청할 수 있습니다.

예시 작업:

  • utils.js에 있는 calculatePrice 함수의 역할 설명 요청
  • AuthService.java 클래스를 try-with-resources 구문을 사용하도록 리팩토링
  • npm test 실행 시 발생하는 TypeError 해결하기

셸 명령어 실행

  • 의존성 관리: npm install, pip install, bundle install 등 필요한 명령어를 직접 실행하도록 지시할 수 있습니다.
  • 빌드 및 실행: “이 프로젝트를 빌드하고 실행해줘” 와 같이, 복잡한 빌드 및 실행 과정을 맡길 수 있습니다.
  • 버전 관리: git status, git log, git diff 등 버전 관리 시스템의 상태를 확인하는 명령어를 실행하도록 요청할 수 있습니다.

예시 작업:

  • package.json에 명시된 모든 의존성 설치
  • 프로젝트를 프로덕션 모드로 빌드
  • 현재 브랜치의 변경 사항 확인

🌐 정보 검색 및 활용

  • 웹 검색: “최신 React 버전의 새로운 기능은 뭐야?” 와 같이, 최신 기술 정보나 문서, 에러 해결 방법을 웹에서 검색하여 답변을 받습니다.
  • 개인화: “앞으로 항상 한국어로 답변해줘” 또는 “내가 가장 선호하는 프레임워크는 FastAPI야” 와 같은 선호도를 기억시켜 대화에 반영하게 할 수 있습니다.

예시 작업:

  • “React 19의 새로운 기능”에 대해 웹 검색
  • “내 선호하는 프레임워크는 FastAPI야” 라고 기억시키기

2. Obsidian 활용 팁

  • 프로젝트 노트로 활용: 이 가이드를 복사하여 [[프로젝트명]] - Gemini 작업노트 와 같은 이름으로 만들어 사용하세요.
  • 내부 링크 활용: 작업 중인 파일이나 관련된 다른 노트를 [[파일명]] 형태로 링크하여 컨텍스트를 연결하세요.
  • 체크리스트 관리: Gemini에게 요청할 작업을 체크리스트로 만들어 관리하고, 완료된 항목을 표시하며 진행 상황을 추적하세요.

📝 프로젝트 노트 (Project-Specific Notes)

이 섹션에 현재 진행 중인 프로젝트와 관련된 Gemini 작업 내역이나 목표를 자유롭게 기록하세요.

  • 현재 목표:
    • [ ]
  • 작업 내역:

  • 관련 파일:
    • [[파일경로/파일명]]