디스코드 봇 만들기 #33임시 음성방 확장, 파티방 만들기! 방장 위임·강퇴·초대 전용(비공개) 방 + 전용 채팅방 자동 생성 (파이썬 예제) 🎉
#31의 들어오면 생기고 나가면 사라지는 음성방을 파티방으로 키워요. 전용 채팅방 자동 생성, 방장 위임·강퇴, 초대 전용(비공개) 방, 재시작해도 살아있는 버튼 패널까지 discord.py로 만듭니다.
최신순
#31의 들어오면 생기고 나가면 사라지는 음성방을 파티방으로 키워요. 전용 채팅방 자동 생성, 방장 위임·강퇴, 초대 전용(비공개) 방, 재시작해도 살아있는 버튼 패널까지 discord.py로 만듭니다.
지난 파이썬 업무 자동화 #10 - 워드(Word) 문서 자동 생성 (python-docx)에서는 엑셀 명단으로 안내문 100장을 몇 초 만에 뽑아봤어요. 그런데 여기서 딱 멈추면 반쪽이죠. 그 100장을 100명에게 하나씩 보내는 일이 남아있거든요 😇
예전에 디스코드 봇 오류 해결 총정리(입문편)에서 인텐트·토큰 같은 첫날 에러 5가지를 정리했었죠. 그런데 봇을 조금 키우다 보면 그때는 만날 일도 없던 에러들이 우르르 쏟아져요. Cog로 코드를 쪼개고, DB를 붙이고, 버튼·모달까지 넣기 시작하면 딱 그렇습니다 😅
첫 편을 올린 게 2025년 4월이었는데, 디스코드 봇 만들기 시리즈가 어느새 24편이 됐어요. 그러다 보니 이런 메시지를 종종 받습니다. 그래서 오늘은 새 기능을 만드는 대신 지도 한 장을 그려드릴게요. 이 글 하나만 즐겨찾기 해두면 필요한 편으로 바로 점프할 수 있어요…
지난 #17편에서는 RAG로 우리 서버 전용 FAQ 답변봇을 만들었죠. 문서를 읽고 답해주는 똑똑한 봇이었는데요, 오늘은 분위기를 바꿔서 서버원들의 의견을 모으는 기능을 만들어볼게요. 바로 투표(Poll) 입니다!
지난 #16편에서는 봇이 정해진 시간에 먼저 말을 거는 리마인더·알림 기능을 만들어봤어요. 오늘은 한 단계 더 나아가서, 우리 서버 문서를 읽고 대답하는 봇을 만들어볼게요. 이런 걸 RAG(검색 증강 생성, Retrieval-Augmented Generation) 라고 불러요!
지난 #15편에서는 슬래시 명령어를 폴더처럼 묶는 그룹(Group)을 배웠어요. 그런데 지금까지 우리 봇은 전부 "누가 명령어를 쳐야" 움직였죠? 이번 #16편에서는 드디어 봇이 먼저 말을 겁니다.
지난 #14편에서는 JSON과 SQLite로 봇에게 기억력을 만들어줬어요. 그런데 시리즈를 따라오면서 기능을 하나씩 붙이다 보니, 어느새 명령어가 열댓 개를 훌쩍 넘지 않았나요? 디스코드에서 /만 입력하면 명령어가 우르르 쏟아져서 정작 필요한 걸 찾기 힘들어지는 시점이 옵니다.
지난 #13편에서는 역할·채널 자동화로 서버 관리를 봇에게 통째로 맡겨봤어요. 그런데 한 가지 아쉬운 점이 있었죠. #13의 tempchannels처럼 변수에만 담아둔 데이터는 봇을 재시작하는 순간 전부 사라진다는 거예요.
어제(2026-07-28) MCP(Model Context Protocol) 새 스펙 2026-07-28이 정식 발행됐어요. 그런데 이번 건 "기능 몇 개 추가" 수준이 아니에요. 프로토콜의 뼈대 자체가 바뀐, MCP 출시 이후 가장 큰 변경입니다.
디스코드 봇을 만들다 보면 꼭 만나는 벽이 하나 있어요. "봇이 보내는 메시지가 너무 밋밋한데요?" 그냥 텍스트로 이벤트 안내: 7월 1일 ~ 7월 31일 이렇게 보내면 아무도 안 읽어요. 그런데 색깔 띠가 붙고, 제목이 굵게 나오고, 이미지랑 표처럼 정리된 항목이 들어간…
지난 #12편에서는 명령어 쿨다운과 권한으로 봇을 안전하게 지키는 법을 배웠어요. 이번 #13편에서는 한 걸음 더 나아가, 서버 관리자의 반복 노동을 봇에게 통째로 넘겨볼게요. 오늘 만들 자동화는 딱 세 가지예요.
지난 #11편에서는 플라스크(Flask)로 봇 상태를 보는 웹 대시보드를 만들어봤어요. 이제 봇 기능은 꽤 갖춰졌는데, 실제로 서버에 넣어보면 꼭 이런 일이 생깁니다.
지난 #10편에서는 봇을 글로벌 봇으로 만드는 다국어(i18n) 지원을 다뤘죠? 원래 쿨다운·권한 관리를 예고했는데, 그 전에 많은 분들이 궁금해하시는 주제를 먼저 가져왔어요. 바로 웹 대시보드(Web Dashboard) 만들기입니다! (쿨다운 편도 곧 올라오니 기대해주세요)
지난 #9편에서는 봇에 AI(Claude·ChatGPT API)를 연동해서 대화하는 봇을 만들어봤죠? 이번 편에서는 우리 봇을 글로벌 봇으로 업그레이드해볼 거예요. 바로 다국어(i18n) 지원입니다!
디스코드 봇 만들기 시리즈를 9편까지 진행하면서 가장 많이 받는 질문이 뭔지 아세요? 바로 "봇이 안 켜져요", "에러가 떠요"예요! 사실 봇 개발에서 코드를 짜는 시간보다 에러랑 싸우는 시간이 더 길 때도 많죠 😅
지난 #8에서는 임베드(Embed)로 봇의 메시지를 예쁘게 꾸미는 방법을 배웠죠. 이번 편에서는 드디어 많은 분들이 기다리셨을 기능, 봇에 AI를 연동해볼게요! /ai 질문 이렇게 입력하면 Claude나 ChatGPT가 대답해주는 봇을 만듭니다.
지난 편에서는 드롭다운(Select Menu)으로 여러 선택지를 깔끔하게 담는 방법을 배웠죠? 그런데 버튼도 드롭다운도 결국 미리 정해둔 선택지 안에서 고르는 방식이에요. 유저가 직접 자유롭게 텍스트를 써서 보내야 할 때는 어떻게 할까요?
지난 #5편에서는 버튼(Button)으로 봇과 상호작용하는 방법을 알아봤죠? 이번에는 한 단계 더 나아가서 드롭다운 메뉴(Select Menu) 를 만들어보겠습니다!
지난 #4편에서는 Slash Command로 임베드를 전송해봤죠? 이번에는 한 단계 더 나아가서, 메시지에 클릭할 수 있는 버튼(Button) 을 달아보겠습니다! 버튼을 누르면 봇이 반응하는, 진짜 "상호작용하는 봇"을 만들어봅시다.
예를 들어… 이런 식으로 하나의 명령어 그룹 안에 여러 개의 기능을 넣는 거죠! class UserCommandGroup(appcommands.Group): def init(self): super().init(name="user", description="유저 관련 명령어…
이번에는 사용자 입력값을 받아서 동작하는 Slash Command 를 만들어볼게요. 예를 들면 /say message:안녕 처럼 말이죠! 이번에도 Python과 discord.py 를 기반으로 합니다. 먼저 아래 코드를 참고해주세요👇
특정 채널에 메시지를 보내는 기능은 디스코드 봇의 다양한 용도에 매우 유용합니다. 이에 따른 장단점은 다음과 같습니다: 다음은 특정 채널에 메시지를 보내는 코드의 사용 예시입니다.
디스코드 봇 임베드는 디스코드 서버에서 메시지에 풍부한 형식과 정보를 추가하는 기능입니다. Python을 사용하여 디스코드 봇을 개발하고, 해당 봇에 임베드 기능을 추가할 수 있습니다. 임베드는 텍스트, 이미지, 링크 등 다양한 요소를 포함할 수 있어서 메시지를 더욱 멋지게…