언어별 퀵스타트

Python 봇 시작하기

discord.py v2 라이브러리로 기본 핑퐁 봇을 만들고 디스호스트에 배포하는 방법을 알아봅니다.

이 가이드에서는 Python 환경에서 널리 쓰이는 discord.py v2 라이브러리로 기본 핑퐁 봇을 작성하고, 디스호스트에 배포하는 과정을 안내합니다.


1단계: 로컬 프로젝트 준비

  1. 프로젝트 디렉토리 생성: 로컬 터미널에서 새 폴더를 만들고 이동합니다.
    mkdir my-python-bot
    cd my-python-bot
  2. 가상환경 생성 및 패키지 설치: 프로젝트 격리를 위해 가상환경을 만들고 discord.py와 python-dotenv를 설치합니다.
    python3 -m venv venv
    source venv/bin/activate
    pip install discord.py python-dotenv
  3. requirements.txt 생성: 컨테이너가 설치할 패키지 목록을 파일로 저장합니다.
    pip freeze > requirements.txt

2단계: 핑퐁 봇 코드 작성

프로젝트 루트 폴더에 bot.py 파일을 생성하고 아래 코드를 작성합니다.

# bot.py
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

# 로컬 개발 시 .env 파일을 불러옵니다. (디스호스트에서는 대시보드 환경 변수가 우선 적용됩니다)
load_dotenv()

# 메시지 내용 확인에 필요한 인텐트를 활성화합니다.
intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Log: 로그인 완료! - 계정명: {bot.user.name}')

@bot.command(name='ping')
async def ping(ctx):
    await ctx.reply('pong! 🏓')

# DISCORD_TOKEN 환경 변수로 로그인합니다.
token = os.getenv("DISCORD_TOKEN")
if token:
    bot.run(token)
else:
    print("Error: DISCORD_TOKEN 환경 변수가 설정되지 않았습니다.")

3단계: 디스호스트에 배포 및 실행

  1. 프로젝트 압축:
    • 가상환경 폴더인 venv는 용량이 크고 컨테이너 환경과 충돌하므로 절대 압축에 포함하지 마세요.
    • bot.py와 requirements.txt 파일만 선택해 .zip 파일로 압축합니다.
  2. 대시보드 업로드 및 설정:
    • 디스호스트 봇 관리 패널의 파일 매니저 탭에서 압축 파일을 업로드하고, 우클릭 후 압축 풀기 (Unarchive)를 실행합니다.
    • 스타트업 설정 탭으로 이동해 STARTUP_FILE 항목에 진입 파일명인 bot.py가 지정되어 있는지 확인합니다.
    • PY_PACKAGES 필드에 필요한 패키지(discord.py python-dotenv)를 공백으로 구분해 입력해 둘 수도 있습니다.
  3. 봇 실행:
    • 콘솔 탭으로 이동해 시작 (Start) 버튼을 누릅니다.
    • 필요한 패키지 설치가 완료되고 콘솔에 Log: 로그인 완료! 메시지가 출력되면 배포가 완료된 것입니다.