연재 중 · 32편
이 카테고리의 연재
글 목록
최신순
디스코드 봇 만들기 #29화폐·상점(Economy) 시스템 만들기! 코인 벌어서 아이템 사기 (파이썬 예제)
이번 #29편에서는 디스코드 봇에 화폐·상점(Economy) 시스템을 만들어 볼게요. 출석 체크로 코인을 벌고, /상점에서 드롭다운으로 아이템을 고르고, /지갑으로 내 인벤토리를 확인하는 것까지 한 번에 완성해요.
디스코드 봇 만들기 #33임시 음성방 확장, 파티방 만들기! 방장 위임·강퇴·초대 전용(비공개) 방 + 전용 채팅방 자동 생성 (파이썬 예제) 🎉
#31의 들어오면 생기고 나가면 사라지는 음성방을 파티방으로 키워요. 전용 채팅방 자동 생성, 방장 위임·강퇴, 초대 전용(비공개) 방, 재시작해도 살아있는 버튼 패널까지 discord.py로 만듭니다.
디스코드 봇 개발자용 2026년 9월 API 변경 총정리 - 파일 20MiB·슬래시 커맨드 여러 줄 입력·연령 확인(Age Assurance)·초대 대상 유저·shard 필수, discord.py 2.7.1로 대응하는 법 (파이썬 예제) 🗞️
2026년 9월 디스코드 개발자 체인지로그를 봇 개발자 눈으로 정리했어요. 파일 한도 20 MiB, 슬래시 커맨드 여러 줄 입력, 연령 확인, 초대 대상 유저 엔드포인트, 대형 봇 shard 필수까지 discord.py 2.7.1 코드로 대응합니다.
디스코드 봇 만들기 #32서버 로그·감사(Audit Log) 채널 만들기! 메시지 삭제·수정·입퇴장·추방까지 자동 기록 (파이썬 예제) 🕵️
디스코드 봇으로 서버 로그 채널을 만들어 봐요. 지워진 메시지 내용과 누가 지웠는지, 입퇴장·역할 변경·추방·차단까지 임베드로 자동 기록하는 로그봇을 discord.py 2.x 예제로 처음부터 만듭니다.

디스코드 봇 만들기 #30투표·설문(Poll) 봇 만들기! 네이티브 투표 + 버튼으로 실시간 집계까지 (파이썬 예제) 🗳️
지난 편에서는 화폐·상점(Economy) 시스템을 만들어서 코인을 벌고 아이템을 사는 봇을 완성했어요. 서버에 "놀거리"가 하나 생긴 셈이죠! 이번 편에서는 서버 운영에 진짜 자주 쓰이는 기능, 투표·설문(Poll) 봇을 만들어볼게요. 두 가지 방식을 다 다룹니다.
디스코드 봇 만들기 #28레벨·경험치(XP) 시스템 만들기! 채팅할수록 레벨업, 랭킹판까지 (파이썬 예제)
지난 편(#27 티켓 담당자 배정·우선순위)에서는 문의 티켓을 스태프에게 자동으로 배정하는 시스템을 만들었어요. 이번 #28편에서는 분위기를 확 바꿔서, 서버를 시끌벅적하게 만드는 레벨·경험치(XP) 시스템을 만들어 볼게요!
discord.py 자주 나는 에러 TOP 10 - 봇 개발 중 만나는 실전 오류 원인부터 해결까지 🚨
예전에 디스코드 봇 오류 해결 총정리(입문편)에서 인텐트·토큰 같은 첫날 에러 5가지를 정리했었죠. 그런데 봇을 조금 키우다 보면 그때는 만날 일도 없던 에러들이 우르르 쏟아져요. Cog로 코드를 쪼개고, DB를 붙이고, 버튼·모달까지 넣기 시작하면 딱 그렇습니다 😅
디스코드 봇 만들기 #27티켓 담당자 배정·우선순위 만들기! 스태프가 여러 명이어도 안 꼬이게 (파이썬 예제)
지난 #26편에서는 버튼 하나로 1:1 상담 채널이 자동으로 생기는 티켓 시스템을 만들었어요. 그런데 이걸 실제 서버에 붙여보면 하루 만에 문제가 하나 튀어나옵니다.
디스코드 봇 만들기 #26티켓(Ticket) 문의 시스템 만들기! 버튼 하나로 1:1 상담 채널 자동 생성 (파이썬 예제)
지난 #25편에서는 봇이 죽지 않게 에러 핸들링과 로깅 체계를 잡아봤어요. 이제 봇이 웬만해선 안 죽으니까, 이번엔 사람 손이 필요한 일을 봇이 대신 받아주게 만들어 볼게요.
디스코드 봇 만들기 #25봇이 죽지 않게! 에러 핸들링·로깅 체계 잡기 (파이썬 예제)
지난 #24편에서는 채널 난독화(Channel Obfuscation)에 대응하는 법을 봤어요. 봇이 볼 수 없는 채널이 생겨도 안 터지게 만드는 작업이었죠.
디스코드 봇 만들기 시리즈 총정리 - #1부터 #24까지 순서대로 보는 로드맵! (파이썬 discord.py) 🗺️
첫 편을 올린 게 2025년 4월이었는데, 디스코드 봇 만들기 시리즈가 어느새 24편이 됐어요. 그러다 보니 이런 메시지를 종종 받습니다. 그래서 오늘은 새 기능을 만드는 대신 지도 한 장을 그려드릴게요. 이 글 하나만 즐겨찾기 해두면 필요한 편으로 바로 점프할 수 있어요…
디스코드 봇 만들기 #24채널 난독화(Channel Obfuscation) 대응하기! 11/16부터 안 보이는 채널이 생겨요 (파이썬 예제)
지난 #23편에서는 JSON을 버리고 aiosqlite로 봇의 데이터 계층을 제대로 다시 깔았죠. 오늘은 조금 결이 다른 글이에요. 새 기능을 만드는 게 아니라, 곧 우리 봇이 고장 날 수도 있는 변경을 미리 막는 글입니다 🛡️
라즈베리파이로 디스코드 봇 24시간 돌리기 - 제로 2 W·4·5 뭘 살까? 설치부터 systemd 자동 실행까지 🍓
봇 만드는 글을 스물세 편이나 쓰는 동안, 댓글이랑 검색 유입으로 제일 많이 들어온 질문이 이거예요. "내 컴퓨터 끄면 봇도 죽는데, 이거 어떻게 24시간 켜두나요?"
디스코드 봇 만들기 #23aiosqlite로 비동기 DB 제대로 설계하기! JSON 탈출 (파이썬 예제)
지난 #22편에서는 /금지어추가, /금지어삭제 를 자동완성으로 만들었죠. 편해지긴 했는데, 그 데이터가 지금 어디에 있죠? data/bannedwords.json 이에요. #21의 경고 기록도 data/warns.json 이고요.
디스코드 봇 만들기 #22슬래시 명령어 자동완성(Autocomplete) 만들기! 금지어를 골라서 추가·삭제 (파이썬 예제)
지난 #21편에서는 채팅을 지켜보는 cogs/automod.py를 만들었죠. 그런데 문제가 하나 있었어요. 금지어가 코드 안에 박혀 있었다는 것 😩
디스코드 봇 만들기 #21키워드 자동응답·금지어 필터 만들기! 경고 누적으로 자동 제재까지 (파이썬 예제)
지난 #20편에서는 새 멤버가 들어오면 환영 카드를 띄우고, 규칙 동의 버튼으로 자동 역할 부여까지 되게 만들었죠. 사람 손 없이 신규 유저를 받는 문이 생긴 거예요 🚪
디스코드 봇 만들기 #20자동 환영 메시지·온보딩 만들기! 규칙 동의 버튼으로 자동 역할 부여 (파이썬 예제)
지난 #19편에서는 길어진 bot.py를 확장(Extension)과 Cog 구조로 쪼개고, !reload로 재시작 없이 코드를 다시 불러오는 것까지 만들었죠. 오늘부터가 진짜 재미있는 부분이에요. 그 구조 위에 기능 파일을 하나씩 얹어갑니다 🏗️
디스코드 봇 만들기 #19Cog로 코드 쪼개기! 1000줄 봇도 안 더러워지는 구조 (파이썬 예제)
지난 #18편에서는 discord.Poll 로 네이티브 투표 기능을 만들었죠. 그런데 여기까지 오면서 눈치채신 분 계실 거예요. bot.py 파일이 슬슬... 아니 꽤 많이 길어졌잖아요? 😅 명령어 하나 고치려고 스크롤을 300줄씩 내리고 계신다면, 오늘 글이 딱입니다.
디스코드 봇 만들기 #18투표(Poll) 기능 만들기! 다수결로 정하는 서버 규칙 (파이썬 예제)
지난 #17편에서는 RAG로 우리 서버 전용 FAQ 답변봇을 만들었죠. 문서를 읽고 답해주는 똑똑한 봇이었는데요, 오늘은 분위기를 바꿔서 서버원들의 의견을 모으는 기능을 만들어볼게요. 바로 투표(Poll) 입니다!
디스코드 봇 만들기 #17RAG로 문서 기반 답변봇 만들기! 우리 서버 전용 FAQ 봇 (파이썬 예제)
지난 #16편에서는 봇이 정해진 시간에 먼저 말을 거는 리마인더·알림 기능을 만들어봤어요. 오늘은 한 단계 더 나아가서, 우리 서버 문서를 읽고 대답하는 봇을 만들어볼게요. 이런 걸 RAG(검색 증강 생성, Retrieval-Augmented Generation) 라고 불러요!
디스코드 봇 만들기 #16리마인더·알림 기능 만들기! 봇이 먼저 말 걸게 하기 (파이썬 예제)
지난 #15편에서는 슬래시 명령어를 폴더처럼 묶는 그룹(Group)을 배웠어요. 그런데 지금까지 우리 봇은 전부 "누가 명령어를 쳐야" 움직였죠? 이번 #16편에서는 드디어 봇이 먼저 말을 겁니다.
디스코드 봇 만들기 #15슬래시 명령어 그룹(Group)으로 명령어 정리하기! (파이썬 예제)
지난 #14편에서는 JSON과 SQLite로 봇에게 기억력을 만들어줬어요. 그런데 시리즈를 따라오면서 기능을 하나씩 붙이다 보니, 어느새 명령어가 열댓 개를 훌쩍 넘지 않았나요? 디스코드에서 /만 입력하면 명령어가 우르르 쏟아져서 정작 필요한 걸 찾기 힘들어지는 시점이 옵니다.
디스코드 봇 만들기 #14데이터 저장하기! JSON vs SQLite (파이썬 예제)
지난 #13편에서는 역할·채널 자동화로 서버 관리를 봇에게 통째로 맡겨봤어요. 그런데 한 가지 아쉬운 점이 있었죠. #13의 tempchannels처럼 변수에만 담아둔 데이터는 봇을 재시작하는 순간 전부 사라진다는 거예요.
디스코드 임베드(Embed) 완전정복 - 메시지 꾸미기 메서드·제한값 총정리 (discord.py 2.x) 📋
디스코드 봇을 만들다 보면 꼭 만나는 벽이 하나 있어요. "봇이 보내는 메시지가 너무 밋밋한데요?" 그냥 텍스트로 이벤트 안내: 7월 1일 ~ 7월 31일 이렇게 보내면 아무도 안 읽어요. 그런데 색깔 띠가 붙고, 제목이 굵게 나오고, 이미지랑 표처럼 정리된 항목이 들어간…
디스코드 봇 만들기 #13역할·채널 자동화로 서버 관리하기! (파이썬 예제)
지난 #12편에서는 명령어 쿨다운과 권한으로 봇을 안전하게 지키는 법을 배웠어요. 이번 #13편에서는 한 걸음 더 나아가, 서버 관리자의 반복 노동을 봇에게 통째로 넘겨볼게요. 오늘 만들 자동화는 딱 세 가지예요.
디스코드 봇 만들기 #12명령어 쿨다운(Cooldown)·권한(Permission) 관리하기! (파이썬 예제)
지난 #11편에서는 플라스크(Flask)로 봇 상태를 보는 웹 대시보드를 만들어봤어요. 이제 봇 기능은 꽤 갖춰졌는데, 실제로 서버에 넣어보면 꼭 이런 일이 생깁니다.
디스코드 봇 만들기 #11플라스크(Flask)로 웹 대시보드 만들기! (파이썬 예제)
지난 #10편에서는 봇을 글로벌 봇으로 만드는 다국어(i18n) 지원을 다뤘죠? 원래 쿨다운·권한 관리를 예고했는데, 그 전에 많은 분들이 궁금해하시는 주제를 먼저 가져왔어요. 바로 웹 대시보드(Web Dashboard) 만들기입니다! (쿨다운 편도 곧 올라오니 기대해주세요)
디스코드 봇 만들기 #10다국어(i18n) 지원하기! (파이썬 예제)
지난 #9편에서는 봇에 AI(Claude·ChatGPT API)를 연동해서 대화하는 봇을 만들어봤죠? 이번 편에서는 우리 봇을 글로벌 봇으로 업그레이드해볼 거예요. 바로 다국어(i18n) 지원입니다!
디스코드 봇 오류 해결 총정리 - intents·token 에러부터 봇이 반응 없을 때까지!
디스코드 봇 만들기 시리즈를 9편까지 진행하면서 가장 많이 받는 질문이 뭔지 아세요? 바로 "봇이 안 켜져요", "에러가 떠요"예요! 사실 봇 개발에서 코드를 짜는 시간보다 에러랑 싸우는 시간이 더 길 때도 많죠 😅
디스코드 봇 만들기 #9AI(Claude·ChatGPT API) 연동하기! (파이썬 예제)
지난 #8에서는 임베드(Embed)로 봇의 메시지를 예쁘게 꾸미는 방법을 배웠죠. 이번 편에서는 드디어 많은 분들이 기다리셨을 기능, 봇에 AI를 연동해볼게요! /ai 질문 이렇게 입력하면 Claude나 ChatGPT가 대답해주는 봇을 만듭니다.
디스코드 봇 24시간 무료 호스팅 총정리 (2026) - 아직 되는 곳 vs 이제 안 되는 곳!
지난 편(#8)까지 해서 버튼, 드롭다운, 모달, 임베드까지 갖춘 제법 그럴듯한 봇이 완성됐어요. 그런데 여기서 다들 똑같은 고민을 하게 됩니다. "내 컴퓨터를 끄면 봇도 꺼지는데... 24시간 켜두려면 어떻게 하죠?"
디스코드 봇 만들기 #8임베드(Embed) 이미지·필드로 꾸미기 (파이썬 예제)
지난 #7편에서는 모달(Modal)로 사용자에게 입력을 받아봤어요. 이번 #8편에서는 봇이 보내는 메시지를 훨씬 예쁘게 만들어주는 임베드(Embed)를 다뤄볼게요!
디스코드 봇 만들기 #7모달(Modal)로 입력 받기 구현하기 (파이썬 예제)
지난 편에서는 드롭다운(Select Menu)으로 여러 선택지를 깔끔하게 담는 방법을 배웠죠? 그런데 버튼도 드롭다운도 결국 미리 정해둔 선택지 안에서 고르는 방식이에요. 유저가 직접 자유롭게 텍스트를 써서 보내야 할 때는 어떻게 할까요?
디스코드 봇 만들기 #6드롭다운(Select Menu) 메뉴 구현하기!
지난 #5편에서는 버튼(Button)으로 봇과 상호작용하는 방법을 알아봤죠? 이번에는 한 단계 더 나아가서 드롭다운 메뉴(Select Menu) 를 만들어보겠습니다!
디스코드 봇 만들기 #5버튼(Button) 상호작용 구현하기!
지난 #4편에서는 Slash Command로 임베드를 전송해봤죠? 이번에는 한 단계 더 나아가서, 메시지에 클릭할 수 있는 버튼(Button) 을 달아보겠습니다! 버튼을 누르면 봇이 반응하는, 진짜 "상호작용하는 봇"을 만들어봅시다.
디스코드 봇 만들기 #4Slash Command로 임베드 전송하기!
디스코드 봇에서 슬래시 명령어를 사용하려면 discord.appcommands를 활용하면 됩니다. intents = discord.Intents.default() bot = commands.Bot(commandprefix="/", intents=intents)
디스코드 봇 만들기 #3Slash Command에 서브 커맨드(Subcommand) 넣기!
예를 들어… 이런 식으로 하나의 명령어 그룹 안에 여러 개의 기능을 넣는 거죠! class UserCommandGroup(appcommands.Group): def init(self): super().init(name="user", description="유저 관련 명령어…
디스코드 봇 만들기 #2Slash Command에 옵션(Arguments) 추가하기!
이번에는 사용자 입력값을 받아서 동작하는 Slash Command 를 만들어볼게요. 예를 들면 /say message:안녕 처럼 말이죠! 이번에도 Python과 discord.py 를 기반으로 합니다. 먼저 아래 코드를 참고해주세요👇
디스코드 봇 만들기 #1디스코드 봇 만들기 - Slash Command 완전 정복!
오늘은 디스코드 봇 만들기 시리즈 중에서도, 요즘 대세인 슬래시 커맨드(Slash Command) 를 만들어보려고 합니다. /명령어 형태로 입력하는 그거 아시죠? 일반 텍스트 명령어보다 훨씬 깔끔하고, 자동완성도 돼서 요즘은 거의 필수 기능이에요!
디스코드 봇 특정 채널에 메시지 보내기
특정 채널에 메시지를 보내는 기능은 디스코드 봇의 다양한 용도에 매우 유용합니다. 이에 따른 장단점은 다음과 같습니다: 다음은 특정 채널에 메시지를 보내는 코드의 사용 예시입니다.
디스코드 봇 임베드 만들기
디스코드 봇 임베드는 디스코드 서버에서 메시지에 풍부한 형식과 정보를 추가하는 기능입니다. Python을 사용하여 디스코드 봇을 개발하고, 해당 봇에 임베드 기능을 추가할 수 있습니다. 임베드는 텍스트, 이미지, 링크 등 다양한 요소를 포함할 수 있어서 메시지를 더욱 멋지게…
디스코드 봇 공지 명령어 만들기
디스코드 사용자라면 파이썬과 Discord.py를 이용해 간단하게 봇을 만들어 볼 만한 가치가 있습니다. 오늘은 그 중에서도 봇으로 공지 명령어를 만드는 방법을 소개하겠습니다.
Discord Bot - 명령어 입력하면 AI가 그림그려주기
Discord 코드 입니다. import discord from datetime import datetime import torch from torch import autocast