Gemini 무료 티어에서 개발자 도구 만들기 — 실제로 가능한 것

발행: (2026년 5월 3일 PM 08:20 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

개요

HiyokoLogcat은 Gemini 무료 티어만을 사용해 완전히 구축되었으며, 사용자가 직접 무료 API 키를 제공하도록 설계되었습니다. 이 글에서는 무료 티어로 가능한 것, 제한 사항, 그리고 이를 고려한 설계 방법을 설명합니다.

Gemini 2.5 Flash 프리뷰 제한

  • 분당 15회 요청 (RPM)
  • 하루 1,000,000 토큰
  • 하루 250회 요청

간헐적으로 사용되는 개발자 도구(예: 클릭 → 진단 → 읽기 → 수정)라면 이 제한은 충분히 관대합니다. 일반적인 진단은 3,000–6,000 토큰을 소모하므로, 하루 토큰 한도에 도달하려면 166회 이상 진단을 수행해야 합니다.

설계 가이드라인

요청을 작게 유지

  • 로그의 필요한 부분만 전송하세요(예: 500줄 대신 100줄).
  • 절약된 토큰 하나하나가 추가 요청 여유를 제공합니다.

자동 트리거 방지

  • 데이터를 API에 자동으로 전송하지 마세요.
  • 명시적인 사용자 행동이 있을 때만 요청을 보냅니다. 모든 오류마다 자동 트리거하면 RPM 제한을 즉시 초과합니다.

결과 캐시

  • 사용자가 진단 오버레이를 닫았다가 다시 열면 새 API 호출 대신 캐시된 결과를 제공합니다.

대량 작업 제한

  • 무료 티어는 대규모 배치 작업(예: 한 번에 100개의 오류 라인 분석)을 큰 지연 없이 처리할 수 없습니다.
  • UI를 설계할 때 대량 AI 사용을 억제하도록 유도합니다.

실시간 분석 금지

  • 로그 라인을 하나씩 스트리밍하면 15 RPM 제한이 몇 초 안에 소진됩니다.

확장성

  • 여러 사용자가 동시에 도구를 사용할 경우, 각 사용자가 자신의 API 키를 사용하므로 별도의 할당량이 적용됩니다. 따라서 고용량 프로덕션 사용도 가능하게 됩니다.

캐시 구현 (Rust)

use std::collections::HashMap;

pub struct DiagnosisCache {
    cache: HashMap, // log hash → diagnosis
}

impl DiagnosisCache {
    pub fn get(&self, log_hash: &str) -> Option {
        self.cache.get(log_hash)
    }

    pub fn insert(&mut self, log_hash: String, diagnosis: String) {
        // Keep cache bounded
        if self.cache.len() > 50 {
            self.cache.clear();
        }
        self.cache.insert(log_hash, diagnosis);
    }
}
  • 50개 항목 캐시: 캐시가 한도에 도달하면 오래된 항목을 모두 삭제합니다. 간단하면서도 효과적입니다.

사용자 경험 혜택

  • 소유감: 사용자가 직접 무료 API 키를 얻도록 하면 “내가 직접 Gemini 키를 설정했다”는 소유감을 가집니다. AI가 숨겨진 기능처럼 보이지 않게 됩니다.
  • 제한 인식: 자신의 키를 설정한 사용자는 속도 제한을 이해하고 가끔 발생하는 지연에 대해 더 관대합니다.
  • 마찰을 필터로: ~2분 정도 걸리는 설정(Google AI Studio에서 키 받기)은 진정으로 관심 있는 사용자만 남게 하는 필터 역할을 합니다.

결론

간헐적인 AI 사용을 전제로 한 개발자 도구라면 Gemini 무료 티어는 충분히 만족합니다. 첫날부터 무료 티어를 목표로 설계하면 비용을 제로로 유지할 수 있을 뿐 아니라, API를 남발하지 않고 효율적인 AI 상호작용을 설계하도록 강제됩니다.

자료

  • HiyokoLogcat – 무료 및 오픈 소스:
  • 작성자: @hiyoyok
0 조회
Back to Blog

관련 글

더 보기 »

개발자로서 당신의 Fear Score는?

두려움은 우리에게 모든 것을 앗아갑니다. 나는 한 번 “You miss 100% of the shots you don’t take”라는 말을 들었고, 그것이 내 경력 전반에 울려 퍼졌습니다. 돌아보면, 나는 man…

TanStack Start와 Bun을 Railway에 배포

문제 Railway의 Nixpacks 자동 빌드가 Bun 프로젝트를 감지하지만, 이 사이트가 필요로 하는 순서를 처리할 수 없습니다: - 빌드 시 prisma generate - Vite + TanStack ...