417만 개의 Telegram 채팅, 14,491개만이 여전히 활성화되어 있다: 음성-텍스트 변환(voice-to-text) 봇을 운영하며
요약
음성 메시지를 텍스트로 변환하는 Telegram 봇 Voicy의 운영 데이터를 분석한 글입니다. 전체 채팅 기록(417만 개)은 대부분 도달 불가능하거나 비활성화된 '무덤'이며, 실제 활성 사용자 규모는 매우 작다는 점을 밝힙니다. 따라서 봇의 구축 및 수익화 전략은 단순히 큰 숫자에 의존하기보다, 실제로 메시지를 받을 수 있는 '도달 가능한(reachable)' 채팅과 최근 활동한 소수에게 집중해야 함을 강조합니다.
핵심 포인트
- 전체 채팅 기록 규모는 과시용일 뿐이며, 대부분의 채팅은 도달 불가능한 상태입니다.
- 봇 운영 시 가장 정확한 청중 규모는 '도달 가능한(reachable)' 채팅 수여야 합니다.
- 효율적인 봇 운영을 위해서는 최근 활동 여부 등 활성 사용자 비율에 집중해야 합니다.
- Telegram의 속도 제한 및 도달 불가능 상태 처리는 봇 개발 시 핵심 고려 사항입니다.
음성 메시지를 텍스트로 변환하는 나의 Telegram 봇 Voicy는 2026년 10월 28일 기준으로 데이터베이스에 4,168,944개의 채팅 기록을 가지고 있으며, 이 중 14,491개가 지난 30일 동안 활성화되었습니다 (이 중 13,816개는 개인 채팅입니다). 이러한 비율은 이 규모로 봇을 운영하며 배운 가장 유용한 교훈이며, 따라서 이 게시물은 이것이 봇의 구축 방식과 수익화에 어떤 의미를 갖는지에 관한 것입니다. 아래 모든 숫자는 오늘(UTC 기준) 데이터베이스를 집계한 stats.borodutch.com 또는 제가 오늘 저녁 읽은 봇의 오픈 소스 저장소에서 가져온 것입니다 (카운트만 포함하며, ID나 메시지 내용은 포함하지 않습니다).
Voicy는 실제로 몇 개의 채팅을 가지고 있는가?
이것은 내가 예전에 봤으면 좋았을 표입니다. '활성(active)'한 채팅이란 전사 작업(transcription job)이 있었거나, 음성 녹음이 있거나, 창에서 새 시작이 있었던 경우를 의미합니다.
| 채팅 유형 | 전체 기록 (Ever) | 최근 30일 활성 (Active 30 days) | 최근 180일 활성 (Active 180 days) |
|---|---|---|---|
| 개인 (Private) | 3,763,976 | 13,816 | 56,534 |
| ... |
헤드라인 숫자는 417만 개이며, 이 역시 거의 의미가 없습니다. 376만 개의 개인 채팅 중 2,997,481개는 도달할 수 없는 것으로 알려져 있습니다. 즉, 상대방이 봇을 차단했거나, 계정을 삭제했거나, 또는 채팅 기록 자체가 사라진 경우입니다. 이는 79.6%에 해당합니다. 지난 180일 동안 활성 상태였던 56,534개의 개인 채팅은 '시작' 버튼을 누른 모든 사람의 1.5%이며, 봇이 여전히 메시지를 보낼 수 있는 766,495개의 개인 채팅 중 7.4%에 해당합니다.
예전에는 이 큰 숫자를 머릿속으로 '내 잠재 고객'이라고 인용하곤 했습니다. 이는 무덤의 크기와 살아있는 사람들의 크기를 합친 것이며, 새로운 기능을 사용하거나, 공지사항을 읽거나, 무엇인가를 결제할 수 있는 것은 오직 살아있는 사람들뿐입니다.
봇이 채팅을 '도달 불가능'으로 표시하는 이유
Voicy는 Telegram이 특정 채팅을 '막힌 곳(dead end)'이라고 알릴 때마다 기록합니다. src/helpers/chatReachability.ts 파일에서 실패 유형은 네 가지로 분류됩니다: 영구적(봇이 추방되거나 차단됨, 채팅이 삭제됨, 봇이 메시지를 보낼 권한을 상실함), 오래된 상태 메시지(stale status message), 무해한(benign), 그리고 일시적인(transient) 경우입니다. 오직 '영구적' 유형만이 해당 채팅을 도달 불가능(unreachable) 상태로 만듭니다: 봇은 이 채팅에 대한 전사본 생성 작업(transcription jobs)을 더 이상 대기열화하지 않으며, 남아있던 작업을 취소합니다. 다시 대화를 시도하는 채팅은 돌아옵니다. 통계 페이지의 '도달 불가능' 수치가 바로 이러한 종류의 막힌 곳입니다.
이것은 단순한 과시용 문제가 아닙니다. 전체 데이터베이스에 브로드캐스트를 보내더라도, 첫 백만 건의 전송은 결코 볼 사람이 없는 사람들에게 사용하게 되며, Telegram은 봇이 보낼 수 있는 메시지에 대해 속도 제한(rate-limits)을 적용합니다. 가장 정확한 청중 규모는 도달 가능한(reachable) 크기이며, 그 안에서 최근 활동한 채팅의 수는 이보다 더 적습니다.
음성을 텍스트로 변환하는 실제 비용
이 봇은 전사본 API를 직접 호출하지 않습니다. 수신되는 음성 메시지, 비디오 노트, 동영상, 오디오 파일 및 미디어처럼 보이는 문서는 MongoDB에 작업(jobs)으로 대기열화되며, 제가 자체 하드웨어에서 실행하는 워커들이 이를 가져가 처리합니다. README에 따르면 지원되는 프로덕션 설정은 RTX 4070 Ti를 장착한 Windows PC이며, large-v3 모델을 사용하여 faster-whisper로 구동하고, 봇의 워커 API를 폴링하여 전사본을 다시 업로드하는 방식입니다. 봇 자체는 오직 대기열화하고, 답장하며, 진행 상황 메시지를 편집하는 역할만 합니다.
이 시스템을 수년간 운영하면서 두 가지 작은 결정 사항이 도출되었습니다:
- 전사본은 10일 동안 캐시됩니다.
transcriptionResultCache.ts의 기본값은 10일이며, 환경 변수를 통해 조정할 수 있습니다. 동일한 Telegram 파일이 열 개의 채팅으로 전달되더라도, GPU가 필요한 것은 첫 번째 채팅에만 해당합니다. - 각 미활성화된 채팅은 대기열에 10개의 작업(jobs)만 가질 수 있습니다.
abuseLimits.ts는 활성화되지 않은 채팅의 경우 채팅당 기본적으로 10개의 활성 작업을 설정하는데, 이는 그렇지 않으면 하나의 스팸 그룹이 다른 모든 사람들의 대기열을 채울 수 있기 때문입니다.
GPU는 하나의 기계이므로 큐(queue)가 핵심 제품이다. 봇의 다른 모든 기능들(언어 선택, 무음 모드, 관리자 잠금 등)은 비교할 때 미미하다.
Voicy는 무료가 아니며, 그렇게 말하는 편이 낫다
README에는 또한 기재되어 있듯이, 현재 작성 시점에서는 테스트를 위해 기부 벽(donation wall) 기능이 기본적으로 비활성화되어 있으며, 환경 변수(VOICY_DONATION_WALL_ENABLED) 하나로 다시 켤 수 있다. 나는 코드만으로는 라이브 봇이 이 부분에 대해 어떻게 작동하는지 주장하고 싶지 않으므로, 그룹에 추가할지 결정한다면 봇의 /donate 답변을 확인해 보라. 어떤 방식으로 설정되든, 디자인 포인트는 변하지 않는다: 수백만 개의 과거 채팅과 수만 개의 활성 채팅을 가진 봇은 희망만으로는 자금을 조달할 수 없다.
Voicy가 대안들보다 약한 부분
- Telegram Premium에는 전사(transcription) 기능이 내장되어 있으며, 이미 프리미엄을 결제하는 사람들에게는 봇을 추가하는 것보다 간단하다.
- 전사는 즉각적이기보다는 큐에 쌓인다. 왜냐하면 하나의 GPU가 모든 채팅을 처리하기 때문이다. 바쁜 시간대는 탄력적 용량을 가진 클라우드 API보다 느리게 작동할 것이다.
- 나는 정확도 벤치마크(accuracy benchmark)를 발표한 적이 없다. large-v3 모델은 커버하는 언어에서는 좋지만, 그렇지 않은 언어에서는 눈에 띄게 성능이 떨어지며, 내가 측정하지 않은 수치를 제시하고 싶지는 않다.
지금 봇을 시작하려는 사람에게 해주고 싶은 말
- '총 사용자 수(total users)'가 아니라 첫날부터 도달 가능한 채팅과 최근 활성 채팅 수를 추적하라. 이는 당신이 무엇을 구축하고 스스로에게 약속할지 바꾼다.
- 사용자가 다시 보낼 수 있는 모든 것을 캐시하라. 포워딩은 사람들이 Telegram을 사용하는 일반적인 방식이다.
- 필요하기 전에 채팅당 큐(queue) 제한을 두어라.
- 만약 컴퓨팅 자원이 당신의 것이고 비용이 든다면, 봇 자체의 언어로 돈을 요구하고 숨기지 마라.
이 코드는 MIT 라이선스가 적용되었으며, 위에 제시된 수치들은 공개적으로 확인할 수 있습니다. 봇은 @voicybot이며, 소스 코드는 github.com/backmeupplz/voicy에서 확인할 수 있고, 간단한 FAQ는 voicybot.com에 있습니다. 여기에 제시된 모든 수치는 2026년 10월 28일에 확인되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기