디스코드 봇 만들기 - 시작하기
파이썬으로 간단한 디스코드 봇 만들기 시리즈 첫 번째 포스팅이다. 디스코드와 봇은 무엇이며, 테스트를 하기 위한 봇과 서버를 직접 만들어 보도록 하자.
디스코드(Discord)?
영어사전을 찾아본다면 ‘불화, 불협화음’같은 뜻이 나온다. 뭐, 딱히 틀린 말은 아니다. 사람들 사이에서 일부러 화음을 맞춰서 대화를 하는건 아니지 않은가?
디스코드는 텍스트 채팅 + 음성 채팅을 지원하는 메신저 같은 존재이다. 여러 명이서 협동하여 진행하는 게임을 즐겨하는 사람이라면 아마 많이 사용해봤을 법한 소프트웨어이다.
(팀 게임을 한다거나, MMORPG에서 레이드를 뛴다거나…)
커뮤니티, 친구들과 채팅을 즐기는 새로운 방법.
위의 문구는 디스코드의 메인 페이지에 들어가면 볼 수 있는 소개문구이다. 커뮤니티라는 단어에서 볼 수 있듯이, 이제는 디스코드를 이용하여 하나의 거대한 커뮤니티를 만들기도 한다.
봇(Bot)?
인터넷 생활을 많이 해본 사람이라면 봇이라는 단어를 접해봤을 것이다. 단어 자체는 로봇에서 나온 것으로 보이며, 자동으로 일을 해 주는 소프트웨어, 어플리케이션라고 보면 된다.
커뮤니티가 커지면 커질수록, 수작업으로 일을 처리하는 데에는 한계가 생긴다. 나쁜 말을 하는 사람에게 제재를 가한다던지, 사용자의 요청을 들어준다던지 등. 운영 인력이 충분하다면 그나마 양호하겠지만, 그 마저도 모자라면 정말 골치아파진다.
그래서 봇이라는 것이 등장한다. 봇은 프로세스가 동작하는 한, 주어지는 일을 꿋꿋이 해 낸다. 24시간 켜져있다면 24시간 일을 한다. 봇이 일하는데 필요한 것은 컴퓨터 상의 공간 뿐이다.
그리고 디스코드는 봇을 위한 API를 제공한다. 디스코드에서 제공하는 API를 이용하여 여러분들이 원하는 봇을 만들어 낼 수 있다!
API는 Application Programming Interface의 약자로, 대충 무언가의 기능을 사용하기 위한 징검다리 역할을 한다고 보면 된다. 자세한 설명은 구글을 통해 찾아보도록 하자.
봇 만들기 첫걸음
봇을 만들기 위해서는 다음 사이트로 가야 한다.
https://discord.com/developers/applications
아직 디스코드 계정이 없다면 새로 만들어야 한다. 한번 만들어보자.
이미 계정이 있는 사람은 계정 만들기 내용은 넘어가도 좋다. 아니면 새로운 계정을 만들어서 테스트 계정으로 사용하는 것도 좋다.
계정 만들기
우선은 디스코드 사이트로 접속해보자.
그리고 맨 밑으로 내리면 가입하는 버튼이 있다.
아니면 로그인 페이지에서 가입할 수도 있다.
그러면 계정 생성 페이지가 뜰 것이다. 여기서는 여러분들이 원하는대로 계정을 만들면 된다. 구글이나 네이버 가입하듯이 하면 된다.
그리면 가입할 때 입력했던 메일 주소로 메일이 하나 와 있을 것이다. 해당 메일을 열어 메일 인증까지 끝낸다면 이제 여러분은 디스코드를 시작할 준비가 되었다.
어플리케이션과 봇 만들기
봇은 자동으로 일을 해 주는 어플리케이션이라고 했다. 그러므로 우리는 디스코드의 어플리케이션을 만들어야 한다. 그러면 어디서 만들어야할까? 다음 주소를 따라가보자.
https://discord.com/developers/applications
그러면 갑자기 한국어는 사라지고 영어만 나올 것이다. 안타깝게도 개발자 페이지는 한국어를 지원하지 않는 모양이다. 하지만 이 글을 보면서 봇을 만든다고 하면 상관없다. 그림만 잘 따라오면 된다.
New Application 버튼을 누르자.
그러면 아래와 같은 창이 뜰 것이다.
NAME
밑에 어플리케이션 이름을 쓸 수 있는 곳이 있다. 거기에다 자신이 원하는 이름을 쓰자. 이 포스트에서는 HelloBot
이란 이름을 사용하도록 하겠다.
위에 뭔가 경고메시지 같은 것이 보이긴 하는데, 신경쓸 것 없다. 봇 만드는 과정이랑은 아무런 연관도 없는 메시지이므로 무시하고 넘어가자.
새롭게 어플리케이션을 만들고 나면 다음 페이지로 넘어가게 될 것이다.
뭔가 잔뜩 있다. 이 페이지는 어플리케이션 기본 설정 페이지이다. 여기서 자신이 지었던 어플리케이션의 이름을 바꿀 수도 있고, 어플리케이션을 대표하는 이미지를 추가할 수도 있다. 카카오톡, 페이스북, 인스타등의 대표 이미지를 추가하듯이 말이다.
하지만 우리는 지금 봇을 만드려고 하고 있다. ‘여기!’ 라고 표시한 곳을 눌러주자. 그러면 봇과 관련된 화면이 뜰 것이다.
그러면 아까보단 뭔가 휑한 화면이 나올 것이다. 여기!
라고 표시된 AddBot 버튼을 눌러주자.
그러면 뭔가 문구가 뜰 것이다. Yes, do it!
을 눌러주자.
그러면 봇과 관련된 화면이 새롭게 뜰 것이다. 여기서는 봇의 프로필 사진을 정할 수 있고, 봇의 이름을 지어줄 수도 있다.
봇은 만들었다. 그런데 봇을 어딘 가에 배치를 해야 한다. 어디에다 배치를 할까? 사람들이 모이는 디스코드 서버(길드)에 배치해야 한다.
한국어로는 서버라 부르고, 영문으로는 길드(Guild)라고 부른다. 만약 영문 문서를 볼 일이 있으면, server로 찾지 말고 guild로 찾자.
하지만 우리는 아직 아무런 서버에 속해있지 않고, 간단한 봇 테스트를 하는데 남의 서버에 무작정 들어가서 하기도 좀 그렇다. (서버 사람들의 동의를 구했다면 상관 없지만…)
따라서 우리가 개인적으로 봇 기능을 테스트할 서버를 만들어야 할 필요가 있다.
서버(길드) 만들기
사실 서버 만드는 일은 별 일이 아니다. 다시 디스코드 메인 페이지로 돌아가보자.
그러면 디스코드 열기
라는 버튼이 보일 것이다. 이걸 눌러주자.
만든지 얼마 되지 않은 계정이기 때문에, 친구도 없고 소속된 서버도 없는 매우 허전한 화면을 볼 수 있을 것이다. 하지만 곧 테스트용 서버가 하나 생길 것이다. 왼쪽에 +
버튼을 눌러주자.
그러면 서버 만들기/서버 참가하기를 고르는 화면이 뜰 것이다. 우리는 테스트용 서버를 만들 예정이니, 서버 만들기
버튼을 눌러주자.
그러면 서버 이름을 정할 수 있다. 서버 이름은 마음대로 정해도 된다. 남들이 보기에 부끄럽지 않은 이름으로 지어주자.
이제 우리만의 테스트 서버가 만들어졌다.
서버에 봇 추가하기
마지막으로 새롭게 만든 서버에 봇을 추가해보자.
그러기 위해선 다시 개발자 페이지로 돌아가야 한다.
https://discord.com/developers/applications
그러면 아래와 같은 그림이 보일 것이다.
그러면 아까와는 다르게 My Applications
밑에 아까 우리가 만들었던 어플리케이션이 보일 것이다. 눌러주자.
그리고 이번에는 OAuth2
를 눌러주자.
뭔가 복잡해보이는 페이지가 나왔다. 가장 먼저 아래 그림에 표시한 Bot
항목을 체크하자.
그러면 밑에 뭔가가 새로 생길것이다. 화면을 내려서 Administrator
항목을 체크해주자.
이제 거의 다 됐다. 화면을 다시 살짝 올려서, 아래 그림에 있는 버튼을 눌러주자.
그리고 바로 브라우저에서 새로운 창을 하나 띄워서 붙여넣기
를 해 보자. 주소창에 Ctrl
+ V
를 해도 되고, 오른쪽 클릭을 한 후 붙여넣기
를 해도 된다. 그런 다음 Enter
를 눌러서 복사된 주소로 이동할 수 있도록 해 보자.
그러면 아래와 같은 그림이 나올 것이다.
여기서 서버 선택하기를 눌러보면 우리가 방금 만들었던 테스트 서버가 들어있을 것이다.
만약 이미 디스코드를 사용하고 있어서 다른 서버도 들어있는 경우, 테스트를 하고자 하는 서버의 이름을 선택할 수 있도록 하자.
추가하고자 하는 서버를 선택했으면 계속하기
버튼을 누를 수 있게 된다. 눌러보자.
그러면 권한과 관련된 내용을 묻는 창이 뜬다. 어자피 테스트 서버니 신경쓸 필요 없다. 승인
버튼을 눌러주자.
그러면 이 과정을 진행하고 있는 것이 봇인지 아닌지 판별하는 reCAPTCHA가 뜰 것이다. 여러분은 봇이 아니니 화면에서 시키는 대로 진행하자.
그러면 봇을 서버에 추가하는 과정이 끝난다. 그러면 이제 다시 메인으로 돌아가서, 우리가 만들었던 서버로 들어가보자.
오른쪽에 명단을 보면 봇이 추가되어 있다!
이제 서버에 봇을 추가하는 것 까지 진행했다. 다음에는 봇에게 간단한 것을 시켜보도록 하자.
Reference : 이 포스팅은 다음 사이트를 참고하여 작성하고 있다.
https://realpython.com/how-to-make-a-discord-bot-python/
https://discordpy.readthedocs.io/en/latest/
Comments