RSS
개발 도구

BotFather "username is already taken": 텔레그램 봇 아이디 규칙과 해결

작성자
듀오랩스 대표·7분 읽기

개발용 맥에서 도는 Claude Code에 텔레그램 봇을 붙이려고 BotFather에게 /newbot을 보냈습니다. 이름을 넣고 아이디를 넣자 같은 답이 돌아왔습니다. 다른 아이디를 넣어도 또 같은 답이었습니다.

Sorry, this username is already taken. Please try something different.

한국어로 쓰면 「이 아이디는 이미 누가 쓰고 있으니 다른 것을 넣어 달라」는 뜻입니다. 문장은 단순한데, 몇 번 연달아 받으면 아이디 말고 다른 것이 잘못된 것처럼 느껴집니다. 결론부터 적으면 잘못된 것은 없었습니다. 텔레그램 전체에서 겹치지 않는 아이디를 찾을 때까지 다시 넣는 것이 정상적인 과정이고, 짧고 알아보기 쉬운 아이디일수록 이미 누가 가져갔을 가능성이 큽니다.

BotFather가 묻는 두 칸, name과 username

/newbot을 보내면 BotFather는 두 가지를 차례로 묻습니다. 둘 다 「이름」처럼 들려서 헷갈리지만 성격이 전혀 다릅니다.

name (보여 줄 이름) username (아이디)
쓰이는 곳 대화 목록, 대화창 위쪽 검색, @멘션, t.me/아이디 링크
겹쳐도 되나 됩니다 안 됩니다. 텔레그램 전체에서 하나
글자 한글, 띄어쓰기 모두 됩니다 영문, 숫자, 밑줄(_)만
길이 제한이 거의 없습니다 5~32자
끝 자유 반드시 bot으로 끝남
나중에 바꾸기 됩니다 안 됩니다

「이미 있다」는 거절은 언제나 두 번째 칸, username에서 나옵니다. name은 다른 봇과 똑같아도 받아 줍니다. 텔레그램 공식 문서는 username을 이렇게 설명합니다.

Usernames are 5-32 characters long and not case sensitive – but may only include Latin characters, numbers, and underscores. Your bot's username must end in 'bot', like 'tetris_bot' or 'TetrisBot'.

출처: Telegram Bot Features, BotFather

대소문자를 바꿔도 같은 아이디인 이유

공식 설명의 not case sensitive가 중요합니다. MyAlertBot이 이미 있으면 myalertbot, MYALERTBOT도 같은 아이디로 봅니다. 대문자 몇 개를 바꿔 다시 넣어 봐야 같은 거절이 돌아옵니다.

밑줄은 다릅니다. my_alert_bot과 myalert_bot은 서로 다른 아이디라서, 밑줄 위치를 바꾸면 통과할 때가 있습니다. 다만 밑줄만 다른 아이디는 사람이 읽을 때 헷갈리니 저는 권하지 않습니다.

같은 거절 문구, 다른 원인

이 문구는 BotFather 대화창의 문장입니다. 같은 확인을 API로 하면 원인별로 오류 이름이 갈립니다. 텔레그램의 bots.checkUsername 문서에 나오는 오류는 셋입니다.

오류 뜻
USERNAME_OCCUPIED 이미 누가 쓰고 있음. 「already taken」이 이것입니다
USERNAME_INVALID 글자나 길이 규칙을 어김. 한글, 하이픈(-), 띄어쓰기, 5자 미만 등
USERNAME_SUFFIX_MISSING bot으로 끝나지 않음

USERNAME_INVALID나 USERNAME_SUFFIX_MISSING에 해당할 때 BotFather가 대화창에 정확히 어떤 영어 문장을 보내는지는 제가 확인하지 못했습니다. 다만 「already taken」은 겹친 경우에만 나오는 문구라고 보면 됩니다. 하이픈을 넣었거나 끝을 bot으로 맺지 않았다면 겹침이 아니라 규칙 위반이니, 규칙부터 고쳐야 합니다.

한 가지는 확실하지 않습니다. 어떤 아이디를 넣어도 계속 「already taken」만 돌아오는 일이 있었다는 사용자 보고가 있고, 거기 달린 답은 /newbot부터 다시 시작해 보라는 것이었습니다. 제가 겪은 일은 아니라서 원인은 모릅니다. 길고 흔하지 않은 아이디까지 거절당한다면 한 번 처음부터 다시 해 볼 만합니다.

겹치지 않는 아이디를 짓는 순서

제가 결국 통과한 방식은 아이디를 길게 짓는 것이었습니다. 짧은 단어 하나에 bot을 붙인 아이디는 거의 다 주인이 있습니다. 그래서 「누구의 + 어디서 + 무엇을 하는」 봇인지를 이어 붙였습니다.

회사_기기_bot          예: acme_devmac_bot
회사_용도_bot          예: acme_alert_bot
회사_용도_연도_bot     예: acme_alert_2026_bot

알림이나 개인 작업용 봇이라면 아이디가 길어도 손해 볼 것이 없습니다. 아이디를 직접 칠 일은 처음 대화를 열 때 한 번뿐이고, 그다음에는 대화 목록에서 name으로 찾습니다. 저는 오히려 길고 짐작하기 어려운 쪽이 낫다고 봅니다. 짧은 아이디는 낯선 사람이 우연히 찾아와 말을 걸 가능성이 더 높습니다.

그렇다고 긴 아이디가 보안 장치는 아닙니다. 텔레그램 봇은 아이디만 알면 누구나 말을 걸 수 있습니다. 봇이 명령을 받아 무언가를 실행한다면, 받은 메시지를 보낸 사람의 숫자 ID로 걸러야 합니다. 제가 붙인 Claude Code 봇도 허용 목록에 든 계정 하나의 메시지만 세션에 넘기도록 잠가 두었습니다.

나중에 바꿀 수 없다는 제약

공식 문서는 이 점을 따로 적어 둡니다.

Unlike the bot's name, the username cannot be changed later – so choose it carefully.

name은 언제든 /setname으로 바꿀 수 있지만 username은 한 번 정하면 그 봇의 것으로 고정됩니다. 바꾸고 싶다면 /deletebot으로 봇을 지워 아이디를 풀어 준 뒤 새로 만드는 수밖에 없습니다. 이 경우 토큰도 새로 받고, 봇과 나눈 대화도 처음부터 다시 시작해야 합니다.

고객에게 보여 줄 공개 봇이라면 아이디가 곧 주소이니 처음에 신중하게 고르는 편이 좋습니다. 내부 알림이나 개인 작업용 봇이라면 길고 설명적인 아이디로 빨리 통과하는 쪽이 낫습니다.

아이디를 정하고 나면 BotFather가 123456789:AA… 꼴의 토큰을 줍니다. 그다음 할 일인 토큰 보관과 chat id 찾기는 텔레그램 알림 봇 만들기: BotFather 토큰부터 chat id까지에 순서대로 적어 두었습니다.

우리 서비스에 적용할 계획이 있으신가요?

기술 자문·개발 범위 상담 살펴보기 →

마지막 수정:

공유하실 때는 출처(Duolabs)와 원문 주소를 표시해 주세요.