본문 바로가기

알비온/디스코드 챗봇 개발일지

디스코드 챗봇 개발일지#3 개발언어 선정 (Library, Framework)

이전글:

 

디스코드 챗봇 개발일지#2 구현가능성 검토 (open API)

이전글: 디스코드 챗봇 개발일지#1 동기부여 올해 3월 동부서버에 서비스 직후 얼리억세스로 게임을 즐겼고, 지금 현재도 매우 재밌게 즐기고 있다. 서부서버는 6년전부터 서비스 중이였고, 게임

saveyourcost.tistory.com

 

좌 ~ 오퍼레이터 여러분! 포스팅이 늦어져서 대단히 송구스럽게 생각한다. 
갑자기 업계 보안인증 이슈로 3개월간 포스팅할 여력이 없을 만큼 바쁘게 지냈다. 이 기간동안 얻은 삽질의 산출물 또한 잊어버리지 않게 사이버보안 관련 포스팅도 나중에 다뤄 보자구

지난 포스팅에서는 개발동기와 가능성검토에 대해 다뤘다. 마침 넥슨에서도 올해부터 오픈API를 제공 하지 않는가? 필자는 넥슨게임을 하지 않지만... 내가 하고 있는 알비온보다는 국내에서 인지도가 훨 씬 많을 테니 챗봇 하나 잘 만들어 보자구. 어쩌면 돈이 될 지도 모른다.

디스코드 홈페이지에서 밑으로 내리면 Developers 메뉴가 있다.

개발자 페이지로 가면 최상단에 Get Start 버튼을 눌러보자. 디스코드 앱을 만드는데 A-Z를 다 알려준다.

아쉽지만 한국어는 지원하지 않는것 같다. 항상 드는 생각이 일본어는 지원하지만 한국어는 지원 안해서 개빡친다는 것이다.

링크: https://discord.com/developers/docs/quick-start/getting-started

러중 빼놓은것 보니 유엔 안보리 상임이사국 기준은 아닌것 같네.

대충 요지는 이렇다.

1. 챗봇의 프로필을 만들고 URL을 통해서 디스코드 채널에서 인스톨하라.

2. 앱을 구동해라. https://github.com/discord/discord-example-app  (node.js express 프레임웤 인것 같다.)

3. 공개키와 토큰을 가지고 상호작용을 구성해라. (토큰은 .env 같은 환경변수 파일에 저장하고 깃허브에 푸쉬 하지 않길 바란다. 만약 소스코드속에 하드코딩해서 노출이 된다? 디스코드는 깃허브를 항상 째리고 있다. 당신이 토큰을 노출 시키는 순간, 디스코드는 그 즉시 토큰을 무효화하고 다음과 같은 메일을 보낼 것이다.) 

잡았다. 요놈! 너 운 좋은줄 알어.

4. 메세지 기능을 구현해라. (봇에 뭔가 메세지를 보냈을 때. 상호작용을 바탕으로 비지니스 로직수행을 말하는 것)

??: 난 자바스크립트 쓰기 싫은데?

하는 사람은 나처럼 다른 언어로 백앤드 앱을 만들면 된다. 필자는 C# .net Core를 선택했다.

선정 이유는 다음과 같다.

- 파이썬이나 node.js를 할 줄 알지만 C#이 제일 숙련도가 높다.

- ML라이브러리를 쓸 일이 거의 없을것 같다.

- 개발시간이 촉박하고, 디스코드에 대한 라이브러리나 패키지를 손쉽게 구 할수 있어야 한다. (= Nuget 패키지)

개꿀띠 ^^

- 이미지 처리가 필요하다.

이미지 처리가 적용된 챗봇

 

필자는 개발언어가 별로 중요하다고 생각하지 않는다. 중요한 것은 내가 만들 앱의 기능에 대한 narrative를 풀어서 설명할 수 있는 능력과 그 맥락 속에서 어떤 도구들이 적절하게 필요할지 알 고있는 know-how가 결정적인 역량이라고 생각 한다.

프레임워크니 라이브러리 어쩌구 하는것 또한, 도구다. 도구를 이용하면 맨손으로 하는것보다 훨씬 일이 빠르고 수월하게 끝나지 않는가?

일단 필자가 알고 있는 디스코드 챗봇 제작 언어는 다음과 같다. 개발언어는 취향과 상황에 맞게 고려하는게 적절하다.

자신에 손에 맞는 도구를 선택하길 바란다.

- JS (express)

- Python (bling_bot.py)

- C# (.net)

- JAVA (??)

- PHP (??)

- GO(?? 요즘 핫해서 궁금하긴 한데 시간이 쪼달려서 도전하지 못했다)

 

그대들의 성공적인 챗봇개발을 응원하며, 이번 포스팅을 마치도록 하겠다. 다음 포스팅의 주제는 개발과정이며
소스코드는 웬만하면, 포스팅간 자세히 올릴 일이 없을지도 모른다. 궁금하다면 필자의 원격 저장소를 공개하도록 하겠다.
다시 강조하지만 코드는 수단이고 중요한건 맥락이다.

그래도 C#.net 버전의 스케폴딩 코드가 필요하다면 다음 블로그의 포스트를 참고하기 바란다. 

 

C#으로 디스코드 봇 제작하기 - 기초

디스코드는 게임 커뮤니티부터 팀 프로젝트 단톡방까지 활용도가 매우 높은 메신저이다. 이번 포스트에서는 C#의 라이브러리인 Discord.NET을 활용해 디스코드 봇을 제작하는 법에 대해 다뤄볼 예

fred16157.github.io