Code Beat

Gemini로 자동화 매매하기 (환경 구성) 본문

Code/AI

Gemini로 자동화 매매하기 (환경 구성)

코-빗 2025. 12. 22. 21:23
728x90

*본 글은 gemini로 개발하며 대화한 내용을 요약하여 자동 생성하였습니다.

[Project] LLM Multi-Agent 시스템을 활용한 투자 자동화 구축 - (1) 서론 및 환경 설정

1. 개요

금융 시장의 변동성에 대응하기 위해 개인 차원에서 LLM(Large Language Model) 에이전트를 활용한 자동화 매매 시스템 구축을 시작한다. 단순히 지표에 따라 매매하는 기존 봇과 달리, 차트 분석, 뉴스 감성 분석, 리스크 관리 등 도메인별로 특화된 에이전트를 구성하고 이를 마스터 에이전트가 통제하는 Multi-Agent 아키텍처를 지향한다. 본 포스팅에서는 기술 스택 선정 과정과 Google AI Studio를 활용한 초기 환경 설정 단계를 다룬다.


2. 기술 스택 비교 및 선정

에이전트 오케스트레이션을 위한 프레임워크와 인프라를 선정하기 위해 Google ADK, CrewAI, LangGraph 등을 비교 분석하였다.

분류 대상 분석 결과
프레임워크 LangGraph 투자 로직의 특성상 상태 유지(State Management)와 순환 구조 제어가 필수적이므로 선정함.
LLM Gemini 2.5 / 3.0 AI Studio를 통한 무료 API 접근성이 우수하며, 멀티모달 기능을 통한 차트 분석에 강점이 있음.
개발 환경 VS Code / Python 가상 환경(venv)을 통한 의존성 관리 및 SDK 연동의 편의성 고려.

Google ADK의 경우 엔터프라이즈 급의 보안과 GCP 통합 환경을 제공하지만, 개인 투자 자동화 시스템 구축에 있어서는 오버스펙으로 판단되어 확장성과 유연성이 높은 오픈소스 기반 설계를 우선시한다.


3. 환경 설정 및 API 연동

본 프로젝트는 비용 최적화를 위해 Google AI Studio의 무료 티어를 사용한다. Gemini Advanced 구독과는 별개로 개발자 API 키 발급 및 라이브러리 설정이 필요하다.

3.1. 라이브러리 설치

Python 가상 환경 내에서 최신 SDK 및 환경 변수 관리 라이브러리를 설치한다.

PowerShell
 
pip install -U google-generativeai python-dotenv

3.2. 보안 및 환경 변수 관리

API 키의 하드코딩을 방지하기 위해 .env 파일을 활용한다.

Plaintext
 
# .env 파일 예시
AUTOTRADING_API_KEY=YOUR_GENERATED_API_KEY

4. 시행착오 및 해결 (Troubleshooting)

초기 API 호출 과정에서 google.api_core.exceptions.NotFound: 404 에러가 발생하였다. 이는 주로 다음 원인에 기인한다.

  1. 모델명 명시 오류: SDK 버전에 따라 models/ 접두사를 포함한 전체 경로를 명시해야 하는 경우가 존재한다.
  2. 라이브러리 버전 불일치: 최신 모델(Gemini 2.5 이상)을 사용하기 위해서는 google-generativeai 라이브러리의 업데이트가 필수적이다.
  3. 환경 변수 로드 누락: os.getenv 사용 전 load_dotenv()를 호출하지 않을 경우 API 키를 인식하지 못해 인증 오류가 발생한다.

5. 에이전트 아키텍처 설계

본 시스템은 각기 다른 목적을 가진 4종의 에이전트로 구성된다.

  • Master-Agent: 각 에이전트의 분석 결과를 수합하여 최종 의사결정을 수행한다. 높은 추론 능력이 요구되어 gemini-3-pro-preview 모델을 배정한다.
  • Chart-Agent: 기술적 지표 및 차트 패턴을 분석한다. 멀티모달 성능이 요구된다.
  • News-Agent: 실시간 뉴스 및 커뮤니티 데이터를 분석하여 시장 정서를 파악한다.
  • Estimate-Agent: 결정된 시나리오에 따른 기대 수익 및 손실률을 정밀 계산한다.

6. 결론 및 향후 계획

현재 LLM과의 통신 및 기본적인 API 연동 환경 구축을 완료하였다. 다음 단계에서는 각 에이전트가 실시간 시장 데이터에 접근할 수 있도록 외부 도구를 연결하는 Tool Use(Function Calling) 기능을 구현하고, 마스터 에이전트의 제어 로직을 구체화할 예정이다.