안녕하세요! 김코딩입니다
지금까지 Pygame으로 게임을 만들어 봤다면, 이번에는 색다른 도전을 해볼까요? 이번 글에서는 디스코드 봇을 만드는 기초를 배워보겠습니다. 디스코드 봇은 채팅 서버에서 명령어를 통해 다양한 기능을 수행할 수 있는 프로그램이에요. 예를 들어, “!안녕”이라고 치면 “안녕하세요!”라고 답하거나, 게임 점수를 기록하거나, 재미있는 메시지를 보내는 봇을 만들 수 있습니다. 오늘은 Python의 discord.py 모듈을 사용해 봇을 만들어볼게요. 준비되셨나요? 그럼 시작합시다!
1. 디스코드 봇이란?
디스코드 봇은 디스코드 서버에서 자동으로 작동하는 프로그램입니다.
채팅에 반응하거나, 음악을 재생하거나, 관리 도구로도 사용될 수 있어요.
우리는 Python을 사용하여 간단한 봇을 만들어 명령어에 응답하는 기능을 구현할 거예요. 예를 들어:
- !안녕→ “안녕하세요!” 출력
- !roll → 주사위 굴리기 결과 출력
2. 준비물: 환경 설정하기
2-1. Python 설치 확인
먼저 Python이 설치되어 있는지 확인해야 해요.
터미널(또는 명령 프롬프트)에서 아래 명령어를 입력해보세요:
python --version
“Python 3.x.x”와 같은 결과가 나오면 OK!
만약 없다면 Python 공식 사이트에서 설치하세요.
2-2. discord.py 설치
디스코드 봇을 만들기 위해 discord.py 모듈이 필요해요.
터미널에서 아래 명령어를 실행해 설치합니다:
pip install discord.py
설치가 완료되면 Python에서 import discord를 실행해보세요. 오류 없이 실행된다면 성공입니다!
2-3. 디스코드 개발자 포털에서 봇 생성
이제 디스코드에서 봇 계정을 만들어야 해요.
다음 단계로 따라 해보세요:
- 디스코드 개발자 포털 접속.
- New Application 버튼 클릭 → 봇 이름 입력 (예: “MyFirstBot”).
- 왼쪽 메뉴에서 Bot 탭 선택 → Add Bot 클릭.
- Token 항목에서 Copy 버튼을 눌러 토큰 복사 (나중에 필요해요!). ⚠️ 토큰은 비밀입니다! 절대 공개하지 마세요.
- OAuth2 탭 → Scopes에서 “bot” 체크 → Bot Permissions에서 필요한 권한 체크 (“Send Messages” 등).
- 생성된 URL로 봇을 서버에 초대.
3. 첫 번째 봇 코드 작성하기
이제 간단한 봇을 만들어봅시다. 아래 코드는 봇이 온라인 상태를 표시하고, 메시지에 반응하는 기본 예제입니다.
import discord
from discord.ext import commands
# 명령어 접두사 설정 (예: !안녕)
bot = commands.Bot(command_prefix="!")
# 봇이 준비되었을 때 실행
@bot.event
async def on_ready():
print(f"{bot.user}가 온라인이에요!") # 봇 이름과 ID 출력
# !안녕명령어에 반응
@bot.command()
async def 안녕(ctx):
await ctx.send("안녕하세요! 저는 여러분의 첫 번째 봇이에요!")
# 봇 실행 (토큰 입력 필요)
bot.run("여기에-여러분의-토큰을-붙여넣으세요")
코드 설명
import discord와commands:discord.py에서 기본 기능과 명령어 처리를 가져옵니다.
commands.Bot:- 봇의 명령어 접두사(여기선 !)를 설정합니다.
on_ready:- 봇이 디스코드에 연결되면 콘솔에 메시지를 출력합니다.
hello명령어:!hello를 입력하면 “안녕하세요!”라고 답합니다.ctx는 메시지 정보(누가 보냈는지, 어떤 채널인지 등)를 담고 있어요.
bot.run:- 복사한 토큰을 넣어 봇을 실행합니다.
4. 봇 실행하기
위 코드를 bot.py 파일로 저장하세요.
토큰을 bot.run("토큰") 부분에 붙여넣고, 터미널에서 아래 명령어를 실행합니다:
python bot.py
콘솔에 “MyFirstBot#1234가 온라인이에요!“와 같은 메시지가 뜬다면 성공!
디스코드 서버에서 !hello를 쳐보세요. 봇이 “안녕하세요!”라고 답하면 대성공! 🎉
5. 더 재미있는 기능 추가하기
기본 봇이 작동하면, 이제 간단한 기능을 추가해볼까요?
5-1. 주사위 굴리기 명령어
import random
@bot.command()
async def roll(ctx):
result = random.randint(1, 6)
await ctx.send(f"주사위를 굴렸어요: {result}")
!roll을 입력하면 1부터 6까지 랜덤 숫자를 출력합니다.
5-2. 사용자 정보 출력
@bot.command()
async def info(ctx):
user = ctx.author # 명령어를 입력한 사용자
await ctx.send(f"이름: {user.name}\nID: {user.id}")
!info로 자신의 디스코드 이름과 ID를 확인할 수 있습니다.
물론이죠! 전체 명령어들을 합친 최종 코드를 마지막에 추가해드리겠습니다. 아래는 앞서 설명한 모든 기능을 포함한 디스코드 봇 코드입니다.
import discord
from discord.ext import commands
import random
# 명령어 접두사 설정 (예: !안녕)
bot = commands.Bot(command_prefix="!", intents=discord.Intents.all())
# 봇이 준비되었을 때 실행
@bot.event
async def on_ready():
print(f"{bot.user}가 온라인이에요!") # 봇 이름과 ID 출력
# !안녕 명령어에 반응
@bot.command()
async def 안녕(ctx):
await ctx.send("안녕하세요! 저는 여러분의 첫 번째 봇이에요!")
# !roll 명령어로 주사위 굴리기
@bot.command()
async def roll(ctx):
result = random.randint(1, 6)
await ctx.send(f"주사위를 굴렸어요: {result}")
# !info 명령어로 사용자 정보 출력
@bot.command()
async def info(ctx):
user = ctx.author # 명령어를 입력한 사용자
await ctx.send(f"이름: {user.name}\nID: {user.id}")
# 봇 실행 (여기에 여러분의 토큰을 붙여넣으세요)
bot.run("MTM0NDQ4Mjk2OTkwNTI3MDg5MA.GIcZz5.lXPHbrcYl4hCF6Ug3OJy_NYtM90FFZVk9nLIPk")

코드 설명:
- 봇 설정:
commands.Bot을 사용하여!접두사를 지정한 봇을 만듭니다. - 이벤트 핸들러:
on_ready함수는 봇이 디스코드에 연결되면 콘솔에 메시지를 출력합니다. - 명령어들:
!안녕: “안녕하세요! 저는 여러분의 첫 번째 봇이에요!”라고 응답.!roll: 주사위를 굴려 1부터 6 사이의 랜덤 숫자를 출력.!info: 명령어를 실행한 사용자의 디스코드 이름과 ID를 출력.
- 봇 실행:
bot.run("여기에-여러분의-토큰을-붙여넣으세요")에서 여러분의 토큰을 넣어 실행합니다.
이 코드를 {원하는이름}.py로 저장한 후, Python으로 실행하면 봇이 제대로 작동할 거예요. 이제 여러분의 디스코드 서버에서 다양한 명령어를 테스트해보세요!
6. 문제 해결 팁
- 봇이 응답하지 않아요!:
- 토큰이 맞는지, 봇이 서버에 초대되었는지 확인하세요.
- 권한에 “Send Messages”가 체크되어 있는지 확인하세요.
- 오류: ModuleNotFoundError:
pip install discord.py를 다시 실행해보세요.
- 한글 깨짐:
- Python 파일을 UTF-8 인코딩으로 저장하세요 (대부분의 에디터에서 기본 설정).
7. 다음 단계는?
오늘은 디스코드 봇의 기초를 배웠어요.
다음 글에서는 더 멋진 기능을 추가해볼 거예요:
- 이벤트 반응: 누군가 입장하거나 메시지를 보낼 때 자동으로 반응하기
- 음악 재생: 유튜브 링크로 음악을 재생하기
- 관리 명령어: 사용자 킥/밴 같은 기능
8. 마무리
디스코드 봇 만들기는 Python으로 할 수 있는 재미있는 프로젝트 중 하나예요.
친구들과 서버에서 직접 만든 봇을 써보면 뿌듯함이 두 배!
여러분은 어떤 봇을 만들고 싶나요? 아이디어가 있다면 댓글로 알려주세요.
다음 글에서 그걸 구현해볼 수도 있답니다. 😊
그럼 다음에 또 만나요!
[…] 디스코드 봇만들기 에서 discord.py를 이용해 기본적인 봇을 만들고 간단한 명령어(!hello, !roll)를 구현해 봤습니다. 오늘은 한 단계 더 나아가 디스코드 봇을 더욱 똑똑하고 재미있게 만들어볼 예정입니다. […]
ㄷㄷ
Hola! Found phjoyclub and it’s pretty decent. Enjoying chilling out on the site when I have time. Seems like it could easily become a new hobby. Check them out – phjoyclub.
888now22com is legit. Trustworthy platform and a great community. I’ve been playing here for quite a while, and I’m always satisfied. Enjoy the fun, safe and reliable! 888now22com
Nexuss88 is pretty solid. Fast payouts and responsive customer support. Pretty decent selection of games to choose from. Check it out if you are looking for a reliable experience nexuss88.