Discord.py VS Discord.js 어느게 더 좋을까?
디스코드 봇을 제작할 때, 가장 많이 사용되는 라이브러리를 두개 꼽으라면 보통 Discord.py
혹은 Discord.js
를 많이 꼽는다. 디스코드 봇 제작에 앞서 라이브러리 선택에 갈등을 격는 개발자를 위해 미약하나마 도움이 되고자, 두 라이브러리를 모두 사용해보고 개인적인 감상을 정리해 보았다.
일단, 프로그래밍 경험이 거의 없거나 전무한 사람이라면 Python을 사용하는 Discord.py
사용을 권장한다. Discord.js
는 JavaScript 언어의 난해함과, Node.js의 예외 처리 등 고려해야할 사항이 많아서 초보자가 섣부르게 사용하기에는 문제가 많다. 특히 Node.js의 예외 처리는 상당히 고역인 작업인데, 제대로 된 예외처리가 되지 않으면 실행중인 디스코드 봇이 죽는 사태가 발생할 수 있다.
공식 문서를 중요시 하는 개발자라면, Discord.js
를 추천한다. Discord.py
의 공식문서는 대단히 빈약해서 기초적인 수준을 제외하면 도무지 써먹기 어렵다. 꼭 Python을 이용한 봇 개발을 해야겠다면 차라리 Pycord
를 사용하는게 좋다. 이쪽은 Discord.py
의 포크 버전인데, 버전 2 부터 완전히 다른 노선을 타고 있으며 공식문서도 훨씬 잘 되어 있다.
고성능/대규모/복잡한 기능의 봇을 만들어야 한다면 Discord.js
를 추천한다. 기본적으로 이벤트 기반의 비동기 처리가 가능한 Node.js를 사용하기 때문에 Discord.js
가 좀 더 성능면에서 유리하다. 또한 Discord.js
는 Discord API 100% 커버리지를 보장하기 때문에, Discord에서 제공하는 기능을 '모두' 이용할 수 있다. 따라서 복잡한 기능을 구현해야 한다면 Discord.js
가 좋은 선택이다.
접두 명령어(!ping)를 쓰려고 한다면 본인이 사용하는 언어에 따라 Discord.py
혹은 Discord.js
를 추천하고, 슬래시 명령어(/ping)를 쓰려고 한다면 Discord.js
를 추천한다. 만약 나는 슬래시 명령어를 쓰고 싶은데 JavaScript는 절대 못쓰겠다 싶으면 대안으로 Pycord
를 추천한다. 슬래시 명령어로 Discord.py
를 추천하지 않는 이유가 있는데, 일단 공식 문서에 제대로 된 예제가 거의 없다. 이 부분에 대해서는 후발 주자인 Pycord
에게도 한참 밀리는 상황이다.
다만 위의 내용은 어디까지나 Discord.py
와 Discord.js
의 비교를 위해서 적은 비교 내용일 뿐, 디스코드 봇을 만들기 위한 라이브러리는 다양한 언어에서 지원하고 있다. 따라서 내가 사용하기에 익숙한 언어 및 만들어야 하는 봇의 규모나 기능에 따라 적절한 라이브러리를 선택하는 게 가장 좋은 선택임을 명심해야 한다.
Discord.py | Disocrd.js | |
---|---|---|
언어 | Python | JavaScript |
난이도 | 쉬움 | 어려움 |
성능 | 보통 | 좋음 |
공식문서 | 빈약 | 훌륭함 |
Discord API 커버리지 | 불명 | 100% 지원 |