디스코드 봇은 코드를 짜기 전에 할 일이 먼저 있다. 개발자 포털에서 앱을 만들고, 권한을 켜고, 토큰을 받고, 서버에 초대하는 순서다. 여기서 하나라도 빠지면 코드가 아무리 멀쩡해도 봇이 안 뜬다.
화면을 하나씩 찍어가며 순서대로 적었다. 코드는 맨 뒤에 동작 확인용으로 한 번만 나온다.
준비물
- 디스코드 계정
- 봇을 넣을 서버. 없으면 직접 하나 만들면 된다. 내가 관리자인 서버여야 초대할 수 있다
- 파이썬이 깔린 컴퓨터
1. 앱 만들기
개발자 포털에 들어간다.

오른쪽 위 신규 애플리케이션을 누르고 이름을 넣는다. 이 이름이 서버에서 보이는 봇 이름이 되지만 나중에 바꿀 수 있으니 오래 고민할 필요 없다.
만들고 나면 왼쪽에 메뉴가 쭉 뜬다. 이 글에서 쓸 건 세 곳이다. 일반 정보, 설치, 봇. 마지막에 OAuth2를 한 번 들른다.
2. 프로필 사진은 공짜로 만들 수 있다
건너뛰어도 되지만, 아이콘이 있고 없고가 서버에서 보이는 인상을 꽤 바꾼다. 그림을 못 그려도 상관없다. 생성형 AI에게 부탁하면 된다.
제미나이 입력창 왼쪽의 더하기를 누르면 이미지 만들기가 있다.

원하는 느낌을 한 줄로 적으면 된다.

정사각형 1024×1024로 나오니 그대로 쓰면 된다. 디스코드가 요구하는 규격과 맞는다.
3. 일반 정보에서 아이콘과 이름
왼쪽 메뉴에서 일반 정보로 간다. 앱 아이콘 자리에 방금 만든 그림을 넣는다.

화면에 규격이 적혀 있다. 1024×1024, 정사각형, PNG나 GIF나 JPG나 WEBP, 최대 10MB다. 설명란은 비워둬도 되고, 적으면 봇 프로필 소개에 뜬다.
4. 설치에서 범위 정하기
왼쪽 메뉴 설치로 간다. 기본 설치 설정이 있다.

두 칸으로 나뉘어 있다.
- 사용자 설치 — 개인 계정에 붙어서 어디서나 쓰는 방식이다. 스코프는
applications.commands만 있으면 된다
https://discord.com/developers/applications
- 길드 설치 — 서버에 붙이는 방식이다. 이쪽이 우리가 쓸 것이다. 스코프에
bot을 추가한다
bot을 넣으면 그 아래 권한 칸이 열린다. 무엇을 고를지는 다음 항목에서 정한다.
5. 토큰 받기
왼쪽 메뉴 봇으로 간다.

토큰 초기화를 누르면 토큰이 나온다. 화면에 적힌 안내 그대로다. 토큰은 생성할 때 한 번만 보인다. 창을 벗어나면 다시 볼 수 없고, 잃어버리면 초기화해서 새로 받아야 한다. 새로 받으면 옛 토큰은 그 순간 무효가 된다.
토큰은 비밀번호와 같다. 이게 있으면 누구나 내 봇을 조종할 수 있다.
- 코드에 직접 적지 않는다. 환경 변수나 별도 설정 파일에 두고 읽어 쓴다
- 깃에 올리지 않는다. 설정 파일은
.gitignore에 넣는다 - 새어 나갔으면 미련 없이 초기화한다. 누르는 순간 옛 토큰은 죽는다
공개 저장소에 토큰이 올라가면 디스코드가 알아서 무효화하는 경우도 있다. 잘 되던 봇이 갑자기 로그인 실패를 뱉으면 이걸 의심해볼 만하다.
6. 메시지 내용 볼 권한 켜기
같은 봇 화면을 아래로 내리면 스위치 세 개가 있다.

여기서 Message Content Intent를 켠다. 나머지 둘은 안 켜도 된다.
이 글에서 제일 많이 막히는 자리다. 안 켜면 봇이 메시지를 받긴 받는데 내용이 빈 문자열로 들어온다. 코드는 멀쩡하고 에러도 없는데 봇이 아무 반응이 없다. 원인을 찾기가 상당히 어렵다.
코드 쪽에서도 같은 항목을 켜줘야 한다. 둘 다 켜야 동작한다. 한쪽만 켜면 안 된다.
7. 권한은 최소로
조금 더 내리면 권한 표가 나온다. 항목이 수십 개라 처음엔 막막하다.

처음에는 채팅 권한 쪽에서 세 개만 고르면 충분하다.
- 메시지 보내기
- 파일 첨부
- 메시지 기록 보기
나중에 필요해지면 그때 추가하면 된다. 왼쪽 맨 위의 관리자를 체크하면 편하지만 그러면 안 된다. 토큰이 새는 순간 서버 전체가 넘어간다. 봇에게는 그 봇이 할 일에 필요한 것만 준다.
8. 저장을 잊지 말 것
설정을 바꾸면 화면 아래에 이 띠가 뜬다.

변경 사항 저장을 누르지 않으면 아무것도 반영되지 않는다. 인텐트를 분명히 켰는데 봇이 여전히 메시지 내용을 못 읽는다면 이걸 안 눌렀을 가능성이 크다.
9. 서버에 초대하기
왼쪽 메뉴 OAuth2로 간다. 아래쪽 리디렉션에서 Redirect 추가를 누르면 초대 링크를 만들 수 있다.

만들어진 링크를 브라우저 주소창에 붙이면 서버를 고르는 화면이 나온다. 내가 관리자인 서버만 목록에 뜬다. 고르고 승인하면 끝이다.
같은 화면 위쪽에 클라이언트 ID가 있다. 이건 공개되어도 되는 값이라 토큰만큼 조심할 필요는 없다. 다만 그 옆의 클라이언트 시크릿은 토큰과 같은 급이다.
10. 들어왔는데 오프라인이다
초대가 끝나면 서버 멤버 목록에 봇이 보인다. 그런데 오프라인 상태다.
고장이 아니다. 지금까지 만든 건 봇의 자리일 뿐이고, 실제로 움직이는 프로그램은 내 컴퓨터에서 돌려야 한다. 그 프로그램이 켜져야 온라인으로 바뀐다.
11. 동작 확인
가장 짧은 코드로 확인한다.
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print("로그인:", client.user)
@client.event
async def on_message(msg):
if msg.author.bot:
return
if msg.content.strip() == "핑":
await msg.channel.send("퐁")
client.run(os.environ["DISCORD_TOKEN"])
토큰은 환경 변수로 넘긴다.
export DISCORD_TOKEN="여기에 토큰"
python3 bot.py
터미널에 로그인 줄이 찍히고 서버에서 봇이 온라인으로 바뀐다. 채널에 핑을 치면 퐁이 온다.
msg.author.bot을 확인하는 줄이 있는 이유가 있다. 이게 없으면 봇이 자기 말에 자기가 반응해서 끝없이 주고받는다. 조건을 잘못 짜면 순식간에 채널이 도배된다.
intents.message_content = True가 6번에서 켠 것과 짝이다. 둘 중 하나만 있으면 동작하지 않는다.
12. ID를 복사하려면 개발자 모드
다음 단계로 가면 "이 사람만 명령을 쓸 수 있게" 같은 걸 하게 된다. 그러려면 사용자 ID나 채널 ID가 필요하다.
디스코드 앱 설정에서 고급으로 가서 개발자 모드를 켠다. 그러면 사용자나 채널을 오른쪽 클릭했을 때 ID 복사하기가 생긴다. 긴 숫자가 복사된다.
다음 단계
- 명령을 붙여 내 컴퓨터를 움직이려면: 디스코드 봇 명령어 만들기, 채팅 한 줄로 집 컴퓨터 실행시키기
pip install discord.py
- 터미널을 닫아도 계속 돌게 하려면: 디스코드 봇 24시간 돌리기, 집 컴퓨터로 호스팅 비용 0원
화면은 디스코드가 종종 바꾼다. 메뉴 이름이 조금 달라 보여도 앱 만들기, 권한 켜기, 토큰 받기, 초대 링크 만들기라는 네 단계는 그대로다. 위 화면은 한국어로 설정한 계정 기준이고, 개인 정보가 나오는 자리는 가렸다.

'맥미니를 서버로' 카테고리의 다른 글
| 맥 외장하드 exFAT 손상, 영상 파일 유실 복구: 재마운트와 코덱 일치 (0) | 2026.08.31 |
|---|---|
| 디스코드 봇 명령어 만들기, 채팅 한 줄로 집 컴퓨터 실행시키기 (0) | 2026.08.28 |
| 삼성 990 PRO 가짜 SSD, 외장 케이스 인식 못 한 이유 (0) | 2026.08.21 |
| 맥에 Tailscale 설치, 권한 없이 태블릿에서 SSH 접속까지 (0) | 2026.08.20 |
| 디스코드 봇 24시간 돌리기, 집 컴퓨터로 호스팅 비용 0원 (0) | 2026.08.18 |