언어별 퀵스타트

Node.js 봇 시작하기

discord.js v14 라이브러리로 간단한 핑퐁 봇을 만들고 디스호스트에 배포하는 방법을 알아봅니다.

이 가이드에서는 Node.js 환경에서 가장 널리 쓰이는 discord.js v14 라이브러리를 사용해 기본 핑퐁 봇을 작성하고, 디스호스트에 배포하는 과정을 안내합니다.


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

  1. 프로젝트 디렉토리 생성: 로컬 터미널에서 새 폴더를 만들고 이동합니다.
    mkdir my-discord-bot
    cd my-discord-bot
  2. package.json 생성: npm 명령어로 프로젝트 패키지 파일을 초기화합니다.
    npm init -y
  3. discord.js 및 dotenv 설치: 디스코드 API 연동 라이브러리와 환경 변수 관리 패키지를 설치합니다.
    npm install discord.js dotenv

2단계: 핑퐁 봇 코드 작성

프로젝트 루트에 index.js 파일을 만들고 아래 코드를 작성합니다.

// index.js
require('dotenv').config();
const { Client, GatewayIntentBits } = require('discord.js');

// 봇 동작에 필요한 게이트웨이 인텐트를 지정합니다.
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ]
});

// 봇이 디스코드 게이트웨이에 정상 연결되었을 때 실행됩니다.
client.once('ready', () => {
  console.log(`Log: 로그인 완료! - 계정명: ${client.user.tag}`);
});

// 메시지가 수신되었을 때 실행되는 이벤트 리스너입니다.
client.on('messageCreate', async (message) => {
  // 봇이 보낸 메시지는 무시합니다.
  if (message.author.bot) return;

  // '!ping' 메시지를 받으면 'pong!'으로 응답합니다.
  if (message.content === '!ping') {
    await message.reply('pong! 🏓');
  }
});

// 환경 변수 DISCORD_TOKEN을 사용해 로그인합니다.
client.login(process.env.DISCORD_TOKEN);

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

  1. 프로젝트 압축:
    • node_modules 폴더는 용량이 크고 서버에서 자동 설치되므로 압축에서 제외합니다.
    • index.js, package.json, package-lock.json만 선택해 .zip 파일로 압축합니다.
  2. 대시보드 업로드:
    • 디스호스트 봇 관리 패널의 파일 매니저 탭으로 이동합니다.
    • 압축한 .zip 파일을 드래그 앤 드롭으로 업로드합니다.
    • 업로드된 파일 우클릭 후 압축 풀기 (Unarchive)를 실행합니다.
  3. 진입 파일 확인:
    • 스타트업 설정 탭의 시작 파일(STARTUP_FILE) 필드에 index.js가 지정되어 있는지 확인합니다.
  4. 봇 실행:
    • 콘솔 탭으로 이동하여 시작 (Start) 버튼을 누릅니다.
    • 패키지 자동 설치가 완료되고 콘솔에 Log: 로그인 완료! 메시지가 표시되면 정상적으로 실행된 것입니다.