Discord 봇 개발 회고: 문제 공지 메시지 자동화하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
- *JavaScript/Node.js 개발자, Discord 봇 개발에 관심 있는 초보자**
- 난이도: 중간(기초적인 라이브러리 사용 경험 필요)*
핵심 요약
/문제공지
슬래시 명령어로 Google Sheets의 문제 데이터를 자동으로 Discord 채널에 공지discord.js
및googleapis
라이브러리 사용, Bun 런타임 환경 적용- Koyeb + Docker를 통해 클라우드 배포, 로컬 서버 의존성 제거
섹션별 세부 요약
- 프로젝트 개요
- 주요 목표: 알고리즘 스터디의 수동 문제 공지 작업 자동화
- 요구사항: 슬래시 명령어 기반 자동 메시지 전송, Google Sheets 연동
- 기대 효과: 매주 5분 이상의 수작업 시간 절약
- 기술 스택
discord.js
(디스코드 봇 핵심 라이브러리)googleapis
(Google Sheets API 연동)- Bun (Node.js 대체 런타임, 성능 강조)
- Koyeb (무료 서버리스 호스팅, Docker 지원)
- 개발 과정
- 초기 설정: Bun으로 환경 구성, discord.js 및 googleapis 설치
- 기능 구현: 슬래시 명령어 처리, Google Sheets 데이터 추출
- 테스트: 로컬 환경에서 수동 테스트 및 오류 수정
- 배포: Koyeb + Docker를 통한 클라우드 배포
- 트러블슈팅
- GitHub Actions 대신 Koyeb 선택 (Bot 서버 대기 상태 문제 해결)
- 인증 정보 모듈 분리 미흡, 향후 코드 리팩토링 계획
- 결과 및 학습
- 문제 공지 자동화 성공, 수작업 시간 절약
- TypeScript 전환 및 단위 테스트 코드 작성 계획
- 코드 품질 향상을 위한 ESLint + Prettier 도입
결론
- *무료 호스팅(Koyeb) + Docker를 활용한 클라우드 배포는 디스코드 봇의 지속 가동을 가능하게 하며,
discord.js
와googleapis
**의 조합이 효율적인 자동화를 실현합니다. 향후 코드 리팩토링과 TypeScript 전환을 통해 유지보수성을 높이는 것이 추천됩니다.