본문 바로가기

카테고리 없음

Discord 봇 아리봇

저는 컴퓨터와 거리가 먼 전공이지만 뭔가 코딩해서 만드는건 참 재밌고 매력적인 일이라고 생각합니다.

이번 방학에는 코로나 때문에 어디 돌아다니지도 못했으니 방학동안 디스코드에서 친구들과 쓸 봇을 만들어 보았습니다.

 

사용한 언어는 Python 3.6이고 discord.py 라이브러리를 이용하여 제작하였습니다.

사실 discord.py는 비공식 API였지만 얼마 전 official unofficial API 라고 하여 공식으로 인증받은 비공식 API가 되었습니다.

뭐 암튼 처음에는 소소하게 시작했었습니다.

 

코드도 약 10줄 밖에 되지 않았고 지원하던 기능도 인사하는 것 뿐이었습니다.

처음으로 만든 기능

지금이야 이런 기능은 얼마든지 만들 수 있지만 당시에는 이거 한 줄 띄우고 싶어서 정말 노력했던 기억이 납니다.

    if message.content.startswith('안녕 아리'):
        hello_list = ['안녕 ', '하이하이 ', '할루 ', '어서와 ']
        await channel.send(random.choice(hello_list)+'{.author.display_name}!'. format(message))
        return
    if message.content.startswith('잘자 아리') or message.content.startswith('잘 자 아리'):
        bye_list = ['잘자 ', '바이바이 ', '좋은 밤 ', '내일 봐 ']
        await channel.send(random.choice(bye_list) + '{.author.display_name}!'.format(message))
        return

그리고 다음으로 만든 기능은 역할 부여였습니다.

친구들과 이용하던 서버에 게임별로 역할이 나누어져 있는데, 관리자가 항상 이걸 처리하기는 힘드니 봇으로 대신하자는 생각에서 봇을 만들기 시작했습니다.

그래서 만들어진 기능은 아직도 잘 쓰이고 있습니다.

이 기능이 만들어질 때까지만 하더라도 이 봇을 쓰던 사람은 제 친구들과 제 지인들이 있는 단 세 개의 서버였습니다.

 

봇을 만든지 3주쯤 되었을 때 디스코드 봇 전문 사이트인 top.gg에 제 봇을 투고했고

2주 후에 통과되어 그 사이트에 올라갔습니다.

0123
아리봇 소개를 위해서 만든 홍보물

그리고 이 때부터 제 봇을 쓰는 사람이 점차 늘어나기 시작했습니다.


봇을 만들다보니 욕심이 생겨 이것저것 기능을 추가했습니다.

코로나 19 관련 기능도 추가하고, 롤 전적검색도 추가하고...

그러다보니 도움말 페이지가 정말 길어질 정도로 추가되었습니다.

조만간 두 페이지로 나누어야 할 지경입니다.

지금 있는 기능들


봇을 만들고 80일쯤 지났을 때 제 봇이 100개의 서버에서 사용되기 시작했습니다.

디스코드 인증을 받을 차례가 온 것입니다.

그렇게 인증을 신청하고 2주쯤 기다렸을 때 드디어 아리봇이 인증되었다는 메일을 받았습니다.

기다리고 기다리던 인증봇이 된 것입니다.

누군가에겐 별거 아닌 일 일수 있지만 저는 정말 기뻤습니다.


이제 봇을 본격적으로 만들기 시작한지 92일이 지났고, 이 봇을 만드는 과정은 너무나도 즐거운 시간이었습니다.

예전에 대학 동기들과 방학동안 어떤 취미 활동을 했는지 이야기를 나눈적이 있습니다.

한 친구는 취미로 비즈공예를 한다고 했고, 다른 친구는 악기 연습을 한다고 했습니다.

 

제가 취미로 코딩을 한다고 했을 때 친구들은 왜 그런 취미를 가지냐고 굉장히 궁금해했습니다.

그 때 저는 "비즈공예를 하듯이 한땀 한땀 코드를 짜서 실행했을 때 그 것이 동작하는게 재밌다"고 대답했습니다.

내가 한줄 한줄 작성해서 만들어낸 1125줄짜리 친구가 제가 의도한대로 작동하고, 그렇게 많은 사람들에게 의미있게 쓰여지는 것이 정말 좋았습니다.

 

앞으로도 계속 기능을 추가할 생각이고 제가 할 수 있는한 더 많은 사람들에게 의미있는 봇이 되었으면 좋겠습니다.

 

블로그에는 안 올리려고 했는데 뭔가 기록을 남기고 싶었네요.

저도 엄청 대단한 실력은 아니지만 봇 관련해서 궁금한게 있다면 제가 아는 선에서 알려드릴 수 있습니다.

그럼 안녕