봇 실행 오류 해결 가이드

2026년 1월 31일·10개 메시지

디스코드 봇을 디스호스트에서 호스팅할 때 "실행되지 않음" 오류가 발생하면 보통 시작 스크립트나 엔트리 파일 설정 문제다. 이 글에서는 package.json 설정과 패널의 시작 명령어, 파일 배치 기준을 중심으로 단계별로 해결하는 방법을 정리한다.

증상

  • 호스팅 패널에서 봇이 자동으로 실행되지 않고 오류 메시지 없이 중단됨.
  • 로그에 missing start script 또는 시작관련 메시지가 표시될 수 있음.
  • 웹 패널의 시작 탭에서 설정한 명령어로도 봇이 기동되지 않음.

원인

  • package.jsonscripts.start가 정의되어 있지 않음.
  • 패널의 시작 명령어가 호스팅 환경에서 호출하는 스크립트와 일치하지 않음 (npm run start 권장).
  • 실제 봇 코드 파일 이름이 package.jsonmain 또는 scripts.start가 가리키는 엔트리와 불일치함.
  • 파일이 프로젝트 루트가 아닌 하위 폴더에 위치하여 호스팅 환경이 엔트리를 찾지 못함.

해결 방법

1단계: package.json에 start 스크립트 추가

프로젝트 루트의 package.json을 열고 scriptsstart 항목을 반드시 추가한다. 예:

{
  "name": "your-bot-name",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "discord.js": "^14.0.0"
  }
}
  • main 필드는 엔트리 파일명을 가리키도록 설정한다. 위 예시는 index.js를 사용.
  • start 스크립트에서 실행하는 파일명과 main의 파일명을 일치시키면 관리가 수월하다.
  • start 스크립트는 호스팅 패널에서 기본 호출 명령(npm run start)으로 실행된다.

2단계: 호스팅 패널의 시작 명령어 확인 및 설정

  • 호스팅 패널의 시작 탭으로 이동해 현재 설정된 시작 명령어를 확인한다.
  • 시작 명령어가 다음과 같이 설정되어 있는지 확인 또는 수정한다:
    • npm run start
  • 패널이 다른 명령어를 사용하도록 설정되어 있으면 npm run start로 변경 후 재시작한다.

3단계: 엔트리 파일명과 파일 위치 확인

  • 엔트리 파일을 프로젝트 루트에 두고 파일명을 index.js로 지정하거나, package.jsonmainscripts.start에서 가리키는 파일명으로 맞춘다.
  • 예: 엔트리가 botcode.js라면 package.json을 다음처럼 수정:
"main": "botcode.js",
"scripts": {
  "start": "node botcode.js"
}
  • 파일 업로드는 호스팅 패널의 파일 창을 통해 프로젝트 루트로 업로드한다.

4단계: 적용 후 재시작 및 로그 확인

  • 설정 변경 후 호스팅 패널에서 인스턴스를 재시작한다.
  • 재시작 시 패널의 실시간 로그를 확인해 node index.js(또는 지정한 파일)가 정상 실행되는지 확인한다.
  • 에러가 발생하면 로그의 첫 줄부터 엔트리 파일 경로와 스크립트 호출 문구를 우선 확인한다.

마무리

정리하면, 디스코드 봇 실행 오류는 대부분 package.jsonstart 스크립트와 패널의 시작 명령어 불일치, 엔트리 파일 위치 문제에서 발생한다. start 스크립트를 추가하고 패널에서 npm run start로 설정한 뒤 엔트리 파일을 루트에 배치하면 대부분 해결된다. 이 절차는 디스호스트에서 봇을 안정적으로 호스팅하는 데 기본이 된다.