Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[I/O Extended 2025 인천] 1인 개발 서비스를 위한 Gemini CLI...

Avatar for Beomi Beomi
July 26, 2025

[I/O Extended 2025 인천] 1인 개발 서비스를 위한 Gemini CLI 사용기

This presentation shares the journey of developing and maintaining "Smart Spam Filter," an AI-powered spam blocking app service, using Gemini CLI. The speaker, Junbum Lee (Beomi), an AI/ML GDE and researcher at Lablup, discusses how he leveraged Gemini CLI to efficiently manage a service with over 100,000 users as a solo developer.

Key topics covered:
- Introduction to Smart Spam Filter - an iOS/Android app that reached #2 in the iOS utilities section
- Challenges of spam filtering: from simple keyword blocking to AI-powered solutions
- Cost optimization: Transitioning from expensive LLM APIs to custom-trained on-device models
- Using Gemini CLI for service maintenance and creating management tools
- Practical tips for using Gemini CLI effectively, including GEMINI.md documentation
- Comparison with other AI coding assistants like Cursor
- Live demo of building a vector similarity-based caching system and Telegram bot for labeling

---

이 발표는 AI 기반 스팸 차단 앱 서비스인 "스마트 스팸 필터"를 Gemini CLI를 활용해 개발하고 유지보수한 경험을 공유합니다. 발표자 이준범(Beomi, AI/ML GDE)은 1인 개발자로서 10만명 이상의 사용자를 보유한 서비스를 효율적으로 관리하는 방법을 소개합니다.

주요 내용:
- 스마트 스팸 필터 소개 - iOS 유틸리티 섹션 2위까지 올라간 iOS앱
- 스팸 필터링의 어려움: 단순 키워드 차단에서 AI 기반 솔루션으로의 전환
- 비용 최적화: 비싼 LLM API에서 커스텀 학습된 온디바이스 모델로 전환
- Gemini CLI를 활용한 서비스 유지관리 및 관리 도구 제작
- GEMINI.md 문서화를 포함한 Gemini CLI 사용 팁
- Cursor 등 다른 AI 코딩 어시스턴트와의 비교
- 벡터 유사도 기반 캐싱 시스템과 텔레그램 라벨링 봇 시연

Avatar for Beomi

Beomi

July 26, 2025
Tweet

More Decks by Beomi

Other Decks in Technology

Transcript

  1. 1인 개발 서비스를 위한 Gemini CLI 사용기 이준범 Junbum Lee

    (aka Beomi) AI/ML GDE, Researcher @ Lablup #스마트스팸필터 #GeminiCLI #1인개발 #유지보수
  2. AI/ML GDE로 활동하고 있어요 KcBERT, KoAlpaca, Llama-Ko와 같은 한국어 오픈

    언어모델 연구를 합니다. 이번 세션에서 개발기를 다루는 "Smart Spam Filter" AI 기반 스팸차단 앱 서비스를 만들었어요. 안녕하세요, 이준범(Beomi)입니다👋
  3. Google I/O Extended 25 Proprietary & Confidential - iOS 유틸리티

    섹션 #2등까지 올라갔던 앱! - 전체 평점 4.6 고평점! - 온디바이스 AI, LLM, Embedding을 모두 활용한 서비스! - 1인 기획 & 개발! - iOS 다운로드 → 스마트 스팸 필터? 앱스토어 #2 ✌
  4. Google I/O Extended 25 Proprietary & Confidential "하나는 사람이 할

    수 있고, 10개도 사람이 할 수 있지. 하지만 1000개, 1만개는 할 수 없어. 그건 기계가 해야하는 영역이야."
  5. Google I/O Extended 25 Proprietary & Confidential 작은 LM =

    저성능 System prompt 합쳐서 대략 103 tokens → $0.005 / 1K tokens → $0.0005 / 1 SMS → 0.7원 / 1문자 한사람: 10문자/day = 7원 나혼자(1) = 1달에 210원 가족+친구들(10) = 1달에 2,100원 일반사용자(1만) = 1달에 210만원 if 10만명 유저 → 1달에 2050만원(!!)
  6. Google I/O Extended 25 Proprietary & Confidential 모델 학습 =

    데이터 iCloud 백업된 수많은 메시지 2015~ 부터 저장된 정상 메시지와 스팸
  7. Google I/O Extended 25 Proprietary & Confidential 데이터 라벨링 (Multi)

    Very High Risk / High Risk / Medium Risk / Low Risk / No Risk(Zero Risk) 4 / 3 / 2 / 1 / 0 Multi-class Labeling
  8. Google I/O Extended 25 Proprietary & Confidential - 스마트스팸필터 소개

    (완료) - 1인 개발 서비스, 1년간 서비스하며 느낀 어려운 점들 - Gemini CLI 소개 - Gemini CLI로 만든 서비스 유지관리 기능들 - Gemini CLI 관련 사용 팁 + One more thing :) 오늘 할 이야기
  9. Google I/O Extended 25 Proprietary & Confidential 스마트 스팸 필터

    출시한지 벌써 1년+ (+10만명의 사용자)
  10. Google I/O Extended 25 Proprietary & Confidential - 화이트리스트 신규

    추가 - 자동화된 AI 학습 - 모델 라벨링 자동화 - Embedding 모델 개선 - 그 외 수많은 엣지케이스 대응… 서비스 개선을 위한 노력들
  11. Google I/O Extended 25 Proprietary & Confidential - 화이트리스트 신규

    추가 → 손 작업 if else .. - 자동화된 AI 학습 → ETL + 학습 Pipeline 구성 - 모델 라벨링 자동화 → LLM + 수동 라벨링 - Embedding 모델 개선 → 유사/비유사 문장, Custom Sentence Embedding Model - 그 외 수많은 엣지케이스 대응… 서비스 개선을 위한 노력들
  12. Google I/O Extended 25 Proprietary & Confidential - 화이트리스트 신규

    추가 → 손 작업 if else .. - 자동화된 AI 학습 → ETL + 학습 Pipeline 구성 - 모델 라벨링 자동화 → LLM + 수동 라벨링 (*** 핵심 필요 포인트!) - Embedding 모델 개선 → 유사/비유사 문장, Custom Sentence Embedding Model - 그 외 수많은 엣지케이스 대응… 서비스 개선을 위한 노력들
  13. Google I/O Extended 25 Proprietary & Confidential - False Negative:

    스팸인데 → 정상 문자로 분류한 경우 - False Positive: 정상인데 → 스팸 문자로 분류한 경우 → 모든 경우는 <잘못 판단된 케이스> → 사람에게 요청 받아서 엣지 케이스로 넣으면 좋음! → 하지만 학습 데이터 수집 & 학습하는 주기 설정이 어려움 (딥러닝은 데이터 하나 넣는다고 해당 문장을 100% 정확하게 분류하지 못함) False Negative & False Positive
  14. Google I/O Extended 25 Proprietary & Confidential → 그렇다면, DB에

    쌓이는 것 중 '유사한' 문장으로 '묶어서' 보고 → 해당 문장들의 임베딩의 mean vector를 representative vector로 삼아서 → 이 vector에 라벨을 스팸/정상 등으로 달아주고 → 곧바로 써먹으면 어떨까? False Negative & False Positive
  15. Google I/O Extended 25 Proprietary & Confidential 그렇다면, DB에 쌓이는

    것 중 '유사한' 문장으로 '묶어서' 보고 → 1) DB에 벡터도 쌓고 2) 유사한 문장을 그룹핑도 하고 해당 문장들의 임베딩의 mean vector를 representative vector로 삼아서 → 3) 그룹된 문장들을 보여줄 Frontend도 만들어야 하고 4) API 웹서버도 만들어야 하고 이 vector에 라벨을 스팸/정상 등으로 달아주고 → 곧바로 써먹으면 어떨까? → 5) 라벨링된 vector도 저장해야 하고 6) 이후에 현재 메인API와 연동도 해야하고 만들어야 하는게…
  16. Google I/O Extended 25 Proprietary & Confidential 단일 파일 수정은

    이게 더 직관적 → Agent Mode는 여러 파일도! 문제점: Turn 제한 & 전체 구조 변경 제한
  17. Google I/O Extended 25 Proprietary & Confidential 1. 프로젝트를 만든다

    2. Gemini CLI에 앱을 설명하고 GEMINI.md를 만들어달라고 한다. 3. 해당하는 앱을 만들어달라고 한다.
  18. Google I/O Extended 25 Proprietary & Confidential Gemini CLI로 만든

    서비스 관리 툴, 대표 예시: 유사-캐시
  19. Google I/O Extended 25 Proprietary & Confidential SSF API 퍼지

    캐시 - 100% Exact Match 캐시는 낮음 - vector DB(PG Vector)를 통한 유사도 비교 (L2 distance) (임베딩이 LM 모델보다 훨씬 빠름!)
  20. Google I/O Extended 25 Proprietary & Confidential SSF 라벨 봇

    - Groupby(Vector Similarity) - Cron job + Env setup - Telegram Handler + DB
  21. Google I/O Extended 25 Proprietary & Confidential GEMINI.md는 필수! -

    "Build & Fix Bugs"를 꼭 넣어두기 - 기능들을 하나하나 추가하면서 Markdown 체크박스로 관리하기 - 모든 구현을 한 세션 X, 단위 모듈별 세션 관리 O
  22. Google I/O Extended 25 Proprietary & Confidential Free → 유료로

    넘어간다면(광고아님) https://developers.google.com/program/plans-and-pricing?hl=ko
  23. Google I/O Extended 25 Proprietary & Confidential Free → 유료로

    넘어간다면(광고아님) https://developers.google.com/program/plans-and-pricing?hl=ko
  24. Right-click and select ‘Replace image’ - Android 12(API 31) 이상

    지원 - 시스템 기본 문자 앱 설정시 사용가능 - 스팸함 vs 일반 보관함 - On-device AI로 안전한 사용 - iOS 온디바이스 모델과 동일한 모델 - 개인정보가 서버로 전혀 가지 않아요! 스마트 스팸 필터 @