디스코드 봇을 처음 만들어본다면, 복잡한 설정이나 구조보다는 바로 동작하는 간단한 예제부터 시작하는 것이 이해에 큰 도움이 됩니다. 여기서는 Node.js와 discord.js 라이브러리를 활용해, 정말 최소한의 코드로 동작하는 봇을 만들어봅니다. 실제로는 다양한 기능을 추가할 수 있지만, 핵심 구조만 익히는 데 집중해봅시다.
준비 과정
- Node.js가 설치되어 있어야 합니다. 공식 홈페이지에서 설치할 수 있습니다.
- 프로젝트 폴더를 만들고, 터미널에서
npm init -y
로 초기화합니다. npm install discord.js
명령어로 라이브러리를 설치하세요.
10줄짜리 기본 코드
아래 코드를 index.js
파일로 저장합니다. 코드 한 줄 한 줄이 어떤 역할을 하는지 주석으로 설명을 달았습니다.
const { Client } = require('discord.js'); // discord.js에서 Client 객체를 불러옵니다.
const client = new Client({ intents: ['Guilds', 'GuildMessages', 'MessageContent'] }); // 봇이 어떤 이벤트를 받을지 설정합니다.
client.on('ready', () => console.log('봇이 준비되었습니다!')); // 봇이 로그인되면 메시지를 출력합니다.
client.on('messageCreate', msg => { // 메시지가 생성될 때마다 실행됩니다.
if (msg.author.bot) return; // 다른 봇의 메시지는 무시합니다.
if (msg.content === '!ping') msg.reply('pong!'); // '!ping' 메시지에 'pong!'으로 답장합니다.
});
client.login('여기에_봇_토큰_입력'); // 디스코드 개발자 포털에서 발급받은 봇 토큰을 입력하세요.
코드 리뷰 및 설명
- Client와 Intents: 디스코드 API 정책상, 봇이 어떤 이벤트를 받을지 명시적으로 지정해야 합니다. 여기서는 서버(Guild), 메시지(GuildMessages), 메시지 내용(MessageContent) 이벤트를 받도록 설정했습니다.
- ready 이벤트: 봇이 정상적으로 로그인되었는지 확인할 수 있는 좋은 방법입니다. 실제 서비스에서는 이 부분에서 초기화 작업을 하기도 합니다.
- messageCreate 이벤트: 디스코드에서 메시지가 생성될 때마다 호출됩니다. 여기서 봇이 반응할 명령어를 자유롭게 추가할 수 있습니다.
- 봇 메시지 무시:
msg.author.bot
체크는 필수입니다. 봇끼리 서로 반응하다가 무한 루프에 빠지는 것을 방지합니다.
마무리
이 코드는 정말 최소한의 구조만 담고 있지만, 실제로 디스코드 봇의 기본 뼈대가 어떻게 동작하는지 이해하는 데 충분합니다. 여기서부터 명령어를 추가하거나(슬래시 커맨드를 사용하는 것을 권장합니다), 데이터베이스와 연동하는 등 다양한 확장이 가능합니다.
'봇 개발 팁 > Discord.js' 카테고리의 다른 글
디스코드 봇에서 유저 포인트 시스템 구현하기 (0) | 2025.05.22 |
---|---|
디스코드 봇에 SQLite 연동하기 - Prisma로 쉽게 시작하기 (2) | 2025.05.21 |
디스코드 봇 + OpenAI 연동하기 (ChatGPT API) (1) | 2025.05.20 |
환경변수와 .env 파일로 토큰 안전하게 관리하기 (0) | 2025.05.18 |
Discord.js 설치 및 사용법, 메시지 보내기와 명령어 생성 (1) | 2025.05.01 |