언어별 퀵스타트

Node.js 봇 시작하기

discord.js v14 라이브러리를 활용해 1분 만에 핑퐁 봇을 구축하고 디스호스트 컨테이너에 완벽 배포하는 전체 코스입니다.

본 가이드는 Node.js 런타임 환경에서 가장 널리 사용되는 discord.js v14 버전을 이용해 기본적인 봇 스크립트를 빌드하고 실행하는 프로토콜을 설명합니다.


1단계: 로컬 개발 환경 정의

  1. 프로젝트 폴더 생성: 로컬 컴퓨터에 새로운 디렉토리를 생성하고 터미널로 진입합니다.
    mkdir my-discord-bot
    cd my-discord-bot
  2. 패키지 명세 초기화: npm 도구를 사용해 패키지 설정 파일을 초기화합니다.
    npm init -y
  3. discord.js 및 dotenv 설치: 디스코드 API 연동 라이브러리와 로컬 환경 변수 관리 라이브러리를 추가합니다.
    npm install discord.js dotenv

2단계: 핑퐁(Ping-Pong) 핵심 코드 작성

프로젝트 폴더 루트에 index.js 파일을 새로 생성하고 아래의 예제 코드를 붙여넣습니다:

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

// 봇이 수신하고자 하는 게이트웨이 이벤트 권한을 선언합니다.
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ]
});

// 봇이 디스코드 API 서버와 통신 준비를 마쳤을 때 실행됩니다.
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! 🏓');
  }
});

// 디스코드 토큰 환경변수를 파싱해 게이트웨이에 로그인을 시도합니다.
client.login(process.env.DISCORD_TOKEN);

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

  1. 프로젝트 압축:
    • index.jspackage.json, 그리고 package-lock.json 파일만 묶어 하나의 .zip 파일로 만듭니다.
  2. 대시보드 업로드:
    • 디스호스트 파일 매니저 탭으로 진입합니다.
    • 드래그 앤 드롭으로 .zip 압축파일을 올립니다.
    • 파일 우클릭 후 압축 풀기 (Unarchive) 실행합니다.
  3. 진입점 및 종속성 검증:
    • 스타트업 설정의 시작 명령(STARTUP_FILE) 필드에 index.js가 입력되어 있는지 확인합니다.
  4. 구동:
    • 콘솔 탭으로 이동하여 시작 (Start) 버튼을 클릭합니다.
    • 패키지 자동 설치가 끝나고 Log: 로그인 완료! 로그가 화면에 노출되면 성공입니다.