디스코드 봇 명령어, 길드 커맨드와 글로벌 커맨드 차이점, 사용 방법
·
봇 개발 팁/Discord.js
소개Discord.js v13부터 슬래시 커맨드(Slash Commands)가 정식으로 도입되었습니다. 슬래시 커맨드는 사용자가 채팅창에 '/'를 입력하면 나타나는 명령어들로, Discord API를 통해 등록하고 관리할 수 있습니다. 이전 Discord.js 버전에서는 메시지 기반의 명령어가 주로 사용되었지만, Message Contant Intent가 필요한다는 점과 리소스 소모가 크다는 단점 때문에 슬래시 커맨드가 더 선호되고 있습니다.Global CommandsGlobal Commands는 봇이 접근할 수 있는 모든 서버(길드)에서 사용 가능한 슬래시 커맨드입니다.봇이 초대된 모든 서버에서 사용할 수 있는 명령어로, 한 번 등록하면 모든 서버에 적용됩니다.장점한 번 등록으로 모든 서버에 적용됨이 ..
Sharding이란? 대규모 봇에서의 필수 구조 이해
·
봇 개발 팁/Discord.js
디스코드 봇이 많은 서버에 참여하게 되면, 한 프로세스에서 모든 이벤트를 처리하기 어렵습니다. 이때 필요한 구조가 바로 'Sharding'입니다. 샤딩은 봇이 여러 개의 프로세스(혹은 인스턴스)로 나뉘어 각각 일부 서버만 담당하도록 하는 방식입니다.왜 필요한가?디스코드는 공식적으로 1,000개 이상의 서버에 참여하는 봇은 반드시 샤딩을 적용하도록 권장합니다. 한 프로세스가 처리할 수 있는 서버 수에 한계가 있기 때문입니다. 샤딩을 적용하면 각 샤드가 독립적으로 이벤트를 처리해, 성능 저하나 API 제한 문제를 줄일 수 있습니다.적용 방법discord.js 등 주요 라이브러리에서는 샤딩 매니저를 제공합니다. 아래는 간단한 예시입니다.const { ShardingManager } = require('disc..
디스코드 봇에서 유저 포인트 시스템 구현하기
·
봇 개발 팁/Discord.js
유저의 활동에 따라 포인트를 부여하는 시스템은 봇의 재미와 참여도를 높여줍니다. 간단한 구조로 시작해볼 수 있습니다. 여기서는 메시지 활동에 따라 포인트를 올려주는 기본적인 예시를 다룹니다.기본 구조메시지를 보낼 때마다 포인트를 1씩 올려줍니다.데이터베이스(SQLite 등)에 유저별 포인트를 저장합니다.!포인트 명령어로 자신의 점수를 확인할 수 있게 합니다.예제 코드아래는 Prisma를 사용해 포인트를 저장하고 불러오는 함수 예시입니다. 데이터베이스 연결 및 Prisma 설정 방법은 디스코드 봇에 SQLite 연동하기 - Prisma로 쉽게 시작하기를 참고하세요.import { PrismaClient } from '@prisma/client';const prisma = new PrismaClient();..
디스코드 봇에 SQLite 연동하기 - Prisma로 쉽게 시작하기
·
봇 개발 팁/Discord.js
봇에 데이터를 저장하려면 데이터베이스가 필요합니다. 최근에는 ORM(Object Relational Mapping) 도구인 Prisma를 활용하면, SQL을 직접 다루지 않고도 손쉽게 데이터베이스를 사용할 수 있습니다. Prisma는 SQLite를 비롯해 다양한 데이터베이스를 지원하며, 타입 안전성과 코드 자동완성 등 개발 편의성이 뛰어납니다.준비 과정npm install prisma @prisma/client로 패키지를 설치합니다.npx prisma init 명령어로 Prisma 설정을 초기화하면, prisma/schema.prisma 파일이 생성됩니다.schema.prisma 파일에서 데이터베이스를 SQLite로 지정하고, 모델을 정의합니다.예시:// prisma/schema.prismagenerat..
디스코드 봇 + OpenAI 연동하기 (ChatGPT API)
·
봇 개발 팁/Discord.js
디스코드 봇에 ChatGPT 기능을 추가하면, 채팅에서 자연스럽게 AI와 대화할 수 있습니다. 최근에는 OpenAI의 API를 활용해 다양한 챗봇 기능을 구현하는 사례가 많아졌습니다. 여기서는 Node.js 환경에서 openai와 discord.js 라이브러리를 활용하는 기본적인 연동 방법을 소개합니다.준비 과정OpenAI API 키 발급OpenAI 공식 홈페이지에서 회원가입 후, API 키를 발급받으세요.패키지 설치npm install openai discord.js 명령어로 필요한 라이브러리를 설치합니다.환경변수 관리API 키와 디스코드 토큰은 .env 파일 등으로 안전하게 관리하는 것이 좋습니다.예제 코드아래 코드는 사용자가 !gpt로 시작하는 메시지를 보내면, ChatGPT의 답변을 받아서 응답하..
환경변수와 .env 파일로 토큰 안전하게 관리하기
·
봇 개발 팁/Discord.js
봇 토큰이나 API 키를 코드에 직접 적으면 보안에 매우 취약해집니다. 깃허브 등 공개 저장소에 실수로 노출될 경우, 토큰이 유출되어 악용될 수 있습니다. 이를 방지하려면 환경변수와 .env 파일을 활용하는 것이 가장 안전합니다.준비 과정npm install dotenv로 패키지를 설치합니다.프로젝트 루트에 .env 파일을 만들고, 토큰을 저장합니다.DISCORD_TOKEN=여기에_봇_토큰.gitignore 파일에 .env를 추가해, 깃허브에 올라가지 않도록 합니다.코드 예시import 'dotenv/config';const token = process.env.DISCORD_TOKEN;이렇게 하면 코드에서는 토큰을 직접 노출하지 않고, 환경변수로 안전하게 불러올 수 있습니다.코드 리뷰 및 설명dotenv..