본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 17. 04:34

수천 달러를 아껴준 Telegram AI 봇을 만든 방법

요약

반복적인 고객 문의를 처리하기 위해 비용 효율적인 Telegram AI 봇을 구축한 사례를 소개합니다. GPT-4o 대신 DeepSeek V4 Flash와 GLM-4 Plus 같은 저렴한 모델을 활용하여 운영 비용을 획기적으로 절감하는 방법을 다룹니다.

핵심 포인트

  • 고비용 프런티어 모델 대신 용도에 맞는 저렴한 모델 선택의 중요성
  • OpenAI SDK와 호환되는 통합 API를 통한 손쉬운 모델 교체
  • DeepSeek 및 GLM-4 모델을 활용한 운영 비용 절감 사례
  • 기존 라이브러리를 유지하며 Base URL 변경만으로 구현 가능

자, 제가 어떻게 수천 달러를 아껴준 Telegram AI 봇을 만들었는지 말씀드릴게요.

상황을 설명해 드릴게요. 때는 2026년, 저는 작은 SaaS 사이드 프로젝트를 운영하고 있었고, 제 DM(Direct Messages)은 똑같은 질문을 반복해서 묻는 사람들로 넘쳐나고 있었습니다. 가격. 기능. 통합 방법. 사용자들이 실제로 좋아하는 무언가를 출시해 본 적이 있다면 어떤 상황인지 아실 겁니다.

솔직히 저는 평생 수동으로 답변할 생각이었어요. 정말 그랬다니까요. 하지만 어느 화요일 오후, 제가 똑같은 답변을 47번째쯤 타이핑하고 있는 자신을 발견했을 때 저는 생각했습니다... 아니, 이제 그만하자. Telegram 봇을 만들 때가 됐어.

제가 예상하지 못했던 건요? 이게 얼마나 저렴하게 끝날지, 그리고 만약 제가 잘못된 설정을 선택했다면 이 모든 과정이 얼마나 골치 아픈 일이 되었을지였습니다. 제가 무엇을 했는지, 수치, 그리고 누군가 미리 말해줬으면 좋았을 것들에 대해 설명해 드릴게요.

"잠깐, 왜 이렇게 다 비싼 거야"라고 느낀 순간

AI API를 살펴보기 시작할 때 아무도 경고해주지 않는 사실이 하나 있습니다. 유명한 것들은 지갑에 정말 잔혹하다는 점이죠. 저는 GPT-4o를 보며 "그래, 이게 안전한 선택이지"라고 생각했는데, 출력 가격(output pricing)을 보고 깜짝 놀랐습니다. 100만 토큰(tokens)당 10.00달러. 10달러라니요.

여러분이 어떨지는 모르겠지만, 제 작은 봇은 하루에 수백 개의 대화를 처리해야 했습니다. 그걸 계산해 보면 갑자기 제 "사이드 프로젝트"가 실제 월세만큼의 비용을 쓰고 있는 셈이죠. 안 됩니다.

그래서 저는 찾아 나섰습니다. 모든 것을 다시 작성하지 않고도 다양한 모델을 가리킬 수 있는 통합 API(unified API)를 원했습니다. 솔직히 말해서, 이것은 작아 보이지만 나중에 모델을 교체하고 싶을 때 몇 시간을 아껴주는 결정 중 하나라고 말씀드리고 싶습니다.

제가 실제로 찾아낸 것 (저를 머물게 만든 가격표)

가격 페이지에서 너무 많은 시간을 보낸 끝에, 저는 기본적으로 모든 것을 한곳에 모아둔 Global API에 정착했습니다. 제가 비교했던 내용은 다음과 같습니다:

모델 (Model)입력 (Input)출력 (Output)컨텍스트 (Context)
DeepSeek V4 Flash0.271.10128K
...

GLM-4 Plus를 보세요. 128K 컨텍스트에 입력 20센트, 출력 80센트입니다. 이는 GPT-4o가 동일한 작업에 청구하는 비용의 말 그대로 10분의 1도 안 되는 수준입니다. 제 사용 사례에서는 거의 고민할 필요도 없는 선택지였습니다.

그리고 입력 $0.27, 출력 $1.10인 DeepSeek V4 Flash는 어떨까요? 몇 가지 테스트 프롬프트 (test prompts)를 실행해 보았는데, 솔직히 고객 지원 질문에 답변하는 용도로는 품질이 완전히 괜찮았습니다. 모든 것에 프런티어 모델 (frontier model)이 필요할 필요는 없으니까요, 아시잖아요?

실제 코드 (여러분이 진짜 궁금해할 부분)

좋아요, 이제 제가 정말 미소 지었던 부분입니다. SDK가 OpenAI와 호환되기 때문에 설정이 정말 간단합니다. 새로운 라이브러리를 배울 필요도 없었고, 이상한 인증 흐름 (auth flows)을 다룰 필요도 없었습니다. 그냥 공식 OpenAI Python 클라이언트 (client)를 다른 베이스 URL (base URL)로 지정하기만 하면 짠, 바로 작동했습니다.

import openai
import os

...

정말 이게 전부입니다. 저는 이것을 그들의 문서 (docs)에서 복사해서 붙여넣기만 했고, 첫 시도에 바로 응답을 받았습니다. AI 통합 (integration)이 첫 시도에 제대로 작동했던 게 마지막으로 언제였나요? 아마 한 번도 없었을 겁니다. 이번이 처음이었죠.

텔레그램 (Telegram) 쪽 구현도 크게 어렵지 않았습니다. 그냥 표준적인 python-telegram-bot 라이브러리를 사용하여 메시지 텍스트를 가져오고, 이를 API로 보내고, 응답을 다시 에코 (echoing)하는 방식이었습니다. 전체 봇 프레임워크 (bot framework)를 설명하며 여러분을 지루하게 만들지는 않겠습니다. 왜냐하면 그건 흥미로운 부분이 아니기 때문입니다. 흥미로운 부분은 제가 10분도 안 되어 실행 가능한 상태가 되었다는 점입니다. 제가 시간을 재봤는데, 진심으로 놀랐습니다.

시작하기 전에 알았더라면 좋았을 것들

여기서부터는 제 개인적인 의견이 조금 들어갑니다. 이런 종류의 봇을 만들 때 아무도 말해주지 않는 것들이 있고, 저는 그것들을 고생하며 배웠습니다. 여러분은 번거로움을 피하시길 바랍니다.

가능한 모든 것을 캐싱(Cache)하세요. 반복되는 질문을 위해 간단한 인메모리 캐시(in-memory cache)를 추가했는데, 제 히트율(hit rate)은 약 40%를 유지하고 있습니다. 이는 제 API 호출의 40%가 말 그대로 비용이 전혀 들지 않는다는 뜻입니다. 특히 고객 지원 봇의 경우, 사람들은 끊임없이 똑같은 것을 묻습니다. "비밀번호를 어떻게 재설정하나요?" "API 키는 어디서 찾나요?" 하루 종일 똑같은 질문이 반복됩니다. 그것들을 캐싱하세요.

응답을 스트리밍(Stream)하세요. 모델이 빠르더라도 스트리밍을 사용하면 즉각적인 느낌을 줍니다. 토큰이 들어오는 동안 Telegram은 타이핑 중 표시(typing indicator)를 보여주는데, 심리적으로 이는 엄청난 차이를 만듭니다. 또한 사용자에게 부분적인 답변을 훨씬 더 빨리 보여줄 수 있습니다. 저의 평균 지연 시간(latency)은 약 1.2초이지만, 스트리밍을 사용하면 봇이 실시간으로 타이핑하는 것처럼 느껴지며, 사람들은 이를 매우 좋아합니다.

모든 것에 가장 비싼 모델을 사용하지 마세요. 저는 간단한 쿼리는 저렴한 모델로 라우팅(route)하고, 필요할 때만 상위 모델로 에스컬레이션(escalate)합니다. 솔직히 이 방법 하나만으로도 다른 어떤 최적화보다 더 많은 돈을 아꼈을 것입니다. 누군가 "고객 지원 센터 운영 시간이 언제인가요?"라고 묻는다면, 그것을 위해 200K 컨텍스트 프런티어(context frontier) 모델을 사용할 필요는 전혀 없습니다.

폴백(Fallback)을 마련하세요. 속도 제한(Rate limits)은 발생할 수 있습니다. 모델이 다운될 수도 있습니다. 네트워크가 이상하게 작동할 수도 있습니다. 저는 기본 모델이 실패할 경우 다른 모델로 전환하는 간단한 try/except 구문을 구축했습니다. 사용자는 에러를 절대 보지 못하며, 단지 약간 더 느린 응답을 받을 뿐입니다. 우아한 성능 저하(Graceful degradation)가 정답입니다.

수치 (인디 해커들은 숫자를 좋아하니까요)

솔직하게 말씀드리겠습니다. 제가 이 글을 쓰는 이유는 다른 1인 개발자와 소규모 팀들이 여기서 무엇이 가능한지 알기를 바라기 때문입니다. 설정을 마친 후 저는 이 봇에 대해 기본적으로 거의 비용을 지불하지 않았습니다. 달러가 아니라 하루에 몇 센트 수준을 말하는 것입니다.

문서에 나와 있는 내용과 제 경험이 일치하는 부분은 다음과 같습니다:

  • 유명 대형 제공업체에 직접 연결하는 것보다 40-65% 저렴함
  • 평균 지연 시간 1.2초
  • 제가 테스트한 모델들의 처리량(throughput)은 초당 320 토큰
  • 라인업 전체에 걸친 평균 벤치마크 점수 84.6%

그 비용 절감 수치는 정말 결정적입니다. 1인 기업으로 운영할 때는 단 1달러도 중요합니다. 단 한 달러라도 말이죠. 그런데 품질까지 비슷하다고요? 제가 이 방식을 채택하지 않을 이유를 도저히 찾을 수 없습니다.

모든 것을 작동하게 만든 코드 (두 번째 버전)

좋습니다, 실제 운영 환경(production)에서 제가 어떻게 사용하는지 보여드리고 싶어서 두 번째 코드 스니펫을 가져왔습니다. 이것은 쿼리 복잡도(query complexity)에 따라 모델을 선택하는 라우팅 로직(routing logic)입니다:

import openai
import os

...

이것은 화려하지도 않고, 영리하지도 않습니다. 하지만 작동하며, 빠르고, 실행 비용이 거의 들지 않습니다. 때로는 그것이 가장 좋은 종류의 코드입니다.

제가 실수했던 부분들 (여러분은 그러지 않도록)

제가 실수했던 부분들에 대해 솔직하게 말씀드리겠습니다:

첫째, 첫 번째 버전을 과하게 설계(overengineered)했습니다. "사용자가 어려운 질문을 하면 어떡하지?"라는 생각에 모든 것에 GPT-4o를 사용했습니다. 알고 보니 들어오는 요청의 대부분은 꽤 단순한 것들이었습니다. 저렴한 모델로 시작하고, 나중에 업그레이드하세요.

둘째, 로깅(logging) 설정을 충분히 일찍 하지 않았습니다. 사람들이 봇에게 실제로 무엇을 묻고 있는지 전혀 알 수 없었고, 이는 실제 사용 패턴에 맞춰 최적화할 수 없음을 의미했습니다. 이제는 모든 쿼리(물론 익명화 처리됨)를 로깅하고 있으며, 이는 제품 피드백을 위한 노다지(goldmine)가 되었습니다.

셋째, 피드백 버튼을 추가하는 데 너무 오래 걸렸습니다. 그저 간단한 "도움이 되었나요? 👍 👎" 형태의 인라인(inline) 버튼일 뿐입니다. 여기서 얻는 신호는 매우 귀중(INVALUABLE)합니다. 예를 들어, 저는 합성 벤치마크(synthetic benchmarks)뿐만 아니라 실제 사용자들에게 어떤 모델이 가장 성능이 좋은지 파악하기 위해 그 데이터를 사용하고 있습니다.

과거의 나에게 해주고 싶은 말

제가 47번째로 답변을 수동으로 타이핑하고 있던 그 화요일 오후로 돌아갈 수 있다면, 이렇게 말해주고 싶습니다:

  • 그냥 봇을 만드세요. 그렇게 어렵지 않습니다.
  • 저렴한 모델을 먼저 사용하세요. 언제든 업그레이드할 수 있습니다.
  • 10분이면 설정이 끝납니다. 진짜예요, 너무 깊게 생각하지 마세요.
  • 첫날부터 캐싱(caching)을 추가하세요. 진심입니다. 첫날부터요.
  • 모든 것을 스트리밍(stream)하세요. 항상 말이죠.
  • 가능한 한 빨리 사용자 피드백 데이터를 확보하세요.

그게 전부입니다. 혁명적인 것은 없습니다. 그저 직접 해보면서 배운 것들일 뿐입니다.

결론

솔직히 말씀드리면, 제가 여기서 거대한 사업을 운영하고 있는 척하고 싶지는 않습니다. 이건 Telegram 봇일 뿐입니다. 질문에 답을 해줄 뿐이죠. 하지만 이 봇은 24시간 내내 질문에 답하고, 비용은 거의 들지 않으며, 제 시간을 매주 아마 3~4시간 정도는 확보해 주었습니다. 1인 창업자(Solo founder)에게 이것은 엄청난(HUGE) 일입니다. 똑같은 다섯 가지 질문에 반복해서 답하는 대신, 실제 기능을 구축하는 데 반나절을 쓸 수 있다는 뜻이니까요.

이 모든 것은 Global API를 통해 작동합니다. 솔직히 말하면 우연히 발견하게 되었지만, 그러길 잘했다고 생각합니다. 하나의 인터페이스를 통해 184개의 모델을 사용할 수 있다는 점은 생각할수록 정말 놀랍습니다. 아직 그중 아주 일부도 사용하지 않고 있지만, 전체 스택을 다시 구축할 필요 없이 새로운 기능에 가장 적합한 모델로 언제든 교체할 수 있다는 사실은... 정말 마음이 편안해집니다.

만약 여러분이 이런 것을 만드는 것을 고민하고 있다면, 저의 솔직한 조언은 무엇일까요? 그냥 하세요. 너무 많이 조사하지 마세요. 너무 많이 계획하지 마세요. 모델을 하나 고르고, 코드를 작성하고, 출시하고, 반복(iterate)하세요. 한계 비용(Marginal cost)이 매우 낮기 때문에 유일한 실제 리스크는 오후 시간을 낭비하는 것뿐이며, 설령 그렇다 하더라도 그 오후 동안 엄청나게 많은 것을 배우게 될 것입니다.

그리고 만약 여러분이 직접 Global API를 확인해보고 싶다면, 시작할 수 있도록 다양한 무료 크레딧을 제공하고 있으니 실제로 commitment(전념)하기 전에 테스트해 볼 수 있습니다. 저는 그 크레딧을 사용하여 벤치마크(benchmarks)를 실행하고 어떤 모델이 가치가 있는지 파악했습니다. 그렇게 직접 시운전(kick the tires)해 볼 수 있게 해준다는 점이 꽤 멋집니다. 원하신다면 한번 살펴보세요. 압박을 드리는 건 아니며, 그저 저에게 효과가 있었던 방법을 공유하는 것뿐입니다.

이제 실례하겠습니다. 저는 제 일을 대신 해주는 동안 계속 무시해 줄 봇이 있어서 이만 가보겠습니다. 😉

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0