JavaScript(discord.js) 또는 Python(discord.py)을 사용하여 2026년에 첫 번째 Discord 봇을 만드는 방법 — 등록부터 배포까지 단계별로 설명합니다.
Grow your server faster with Rally
Rally gives server owners community management tools, member engagement features, and discovery placement — all in one bot. Add it to your server in 2 minutes.
Add Rally to your server →첫 번째 Discord 봇을 만드는 것은 생각보다 쉽습니다. 컴퓨터 과학 학위나 수년간의 프로그래밍 경험이 필요하지 않습니다. 2026년에는 기능적인 봇을 구축하고 배포하는 데 집중하면 주말이면 충분합니다.
이 가이드에서는 봇 등록, 첫 번째 명령 작성, 로컬 테스트, 라이브 배포 등 전체 프로세스를 안내합니다. 마지막에는 서버에서 봇이 실행됩니다.
Discord 봇은 API를 통해 Discord에 연결되고 이벤트에 응답하는 프로그램입니다. 누군가가 명령을 입력하거나 메시지에 반응하거나 서버에 가입하는 경우 등입니다.
주요 개념:
!command) 대신 슬래시 명령(/command)을 사용합니다. 슬래시 명령은 공식적으로 지원되며 권장됩니다.이곳은 봇이 Discord 시스템에 공식적으로 존재하는 곳입니다.
프로세스:
이제 봇 사용자를 만듭니다:
봇 설정을 구성합니다:
봇을 서버에 추가하려면 특별한 초대 링크가 필요합니다.
개발자 포털에서:
봇을 선택합니다.메시지 보내기(모든 봇에 필수)메시지 관리(조정하는 경우)반응 추가(봇이 반응하는 경우)연결 + 말하기(음악/음성 봇인 경우)메시지 보내기 + 메시지 읽기를 선택하세요(최소 실행 가능).절대적으로 필요한 경우가 아니면 관리자 권한을 사용하지 마세요. 과도한 권한 부여는 보안 위험입니다.
초보자를 위한 두 가지 주요 옵션:
Discord.js는 가장 인기 있는 Discord 봇 프레임워크입니다. 거대한 커뮤니티, 수많은 튜토리얼, 훌륭한 문서가 있습니다.
장점:
단점:
시작하기:
npm init -ynpm install discord.js구문이 더 간단하고 초보자에게 적합하며 기본 사항을 배우는 데 탁월합니다.
장점:
단점:
시작하기:
pip install discord.py초보자를 위한 권장 사항: Python을 알고 있다면 discord.py를 사용하세요. JavaScript를 알고 있다면 discord.js를 사용하세요. 둘 다 모르는 경우 Python이 배우기 쉽지만 JavaScript에는 온라인에 더 많은 리소스가 있습니다. 하나를 선택하고 전념하세요.
다음은 명령에 응답하는 Python의 최소 작동 Discord 봇입니다.
import discord
from discord.ext import commands
# 명령 접두사 및 인텐트로 봇 만들기
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user}이 Discord에 연결되었습니다!')
@bot.command(name='hello', help='인사를 합니다')
async def hello(ctx):
await ctx.send(f'안녕하세요 {ctx.author.name}님!')
@bot.command(name='ping', help='퐁으로 응답합니다')
async def ping(ctx):
await ctx.send('퐁!')
bot.run('여기에_토큰_입력')
이것이 하는 일:
!hello 및 !ping 명령을 수신합니다.실행하려면:
'여기에_토큰_입력'을 1단계의 실제 토큰으로 바꿉니다.bot.py로 저장합니다.python bot.py!hello를 입력합니다.배포하기 전에 봇을 로컬(컴퓨터)에서 테스트합니다.
테스트 서버 설정:
일반적인 오류:
철저히 테스트하세요. 프로덕션 환경에서 버그가 있는 봇은 당황스럽습니다.
이제 기본 사항을 이해했으므로 더 많은 기능으로 확장하세요.
Python 예제 — 간단한 경제 명령:
@bot.command(name='balance', help='코인 잔액을 확인합니다')
async def balance(ctx):
# 실제 봇에서는 데이터베이스를 쿼리합니다.
# 지금은 모의 값을 반환합니다.
await ctx.send(f'{ctx.author.name}님, 100코인이 있습니다!')
@bot.command(name='roll', help='주사위를 굴립니다(1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name}님이 굴린 주사위: **{result}**')
각 명령은 간단한 함수입니다. 원하는 만큼 추가하세요.
로컬에서 호스팅하는 것은 테스트에 적합하지만 랩톱을 닫으면 봇이 중지됩니다. 서버에 배포하여 24시간 연중무휴로 실행되도록 합니다.
Replit(초보자에게 가장 쉬움):
Railway.app(최신, 안정적):
Glitch(Replit과 유사):
중요: GitHub에 푸시하는 코드에 토큰을 하드 코딩하지 마세요. 환경 변수를 사용하세요.
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
로컬에서 .env 파일을 만듭니다(.gitignore에 추가하여 커밋되지 않도록 합니다).
DISCORD_TOKEN=여기에_실제_토큰_입력
Replit/Railway에서 코드에 넣지 말고 플랫폼 설정에서 토큰을 비밀 환경 변수로 설정합니다.
실수 1: 토큰 하드 코딩 GitHub에 푸시하는 코드에 토큰을 넣지 마세요. 유출된 토큰이 있는 봇은 즉시 손상됩니다. 환경 변수를 사용하세요.
실수 2: 오류 처리 안 함 예상치 못한 입력으로 봇이 충돌합니다. 오류 처리를 추가합니다.
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('0으로 나눌 수 없습니다!')
except ValueError:
await ctx.send('유효한 숫자를 입력하세요!')
실수 3: 속도 제한을 존중하지 않음 Discord는 메시지를 보내는 속도를 제한합니다. API를 스팸으로 보내지 마세요. 대량 작업 사이에 지연을 추가합니다.
실수 4: 인텐트 무시 많은 초보자 봇이 개발자 포털에서 필요한 인텐트를 활성화하지 못해 실패합니다. 배포하기 전에 봇에 필요한 인텐트를 확인하세요.
실수 5: 너무 야심찬 범위 첫 번째 봇에서 경제 시스템, 조정, 음악 및 50개의 명령을 구축하려고 하지 마세요. 3~5개의 간단한 명령으로 시작하세요. 익숙해지면 확장하세요.
이제 기본 봇이 있습니다.
/command 구문첫 번째 Discord 봇은 주말 프로젝트입니다. 첫 번째 좋은 Discord 봇은 한 달간의 연습입니다. 1,000개의 서버에서 사용하는 첫 번째 봇은 몇 달간의 반복, 기능 개발 및 커뮤니티 구축입니다. 지금 시작하고, 끊임없이 반복하고, 너무 많이 생각하지 마세요.