-
디스코드 봇 개발 도전기DEVELOP/discord-bot 2022. 5. 1. 14:46
나는 디스코드를 좋아하고, 자주 사용하는 사용자로서 언젠가 꼭 디스코드 봇을 만들어 보리라 생각했다.
처음엔 디스코드에서 가장 많은 비중을 차지하고 있는 음악봇을 만들어보려고 했지만,
다음과 같은 이유로 인해 실행하지 않았다 :
대부분의 음악봇들은 유튜브에서 음악을 가져와 재생하는데, 저작권 이슈로 하나둘씩 정지되고 있다.
그리고 유명 음악봇들은 이를 해결하기 위해 요리조리... 수를 쓰고 있는듯 하다.ㅋㅋ
물론 나처럼 개인단위로 사용할 봇이 그 감시망에 걸릴 확률은 0에 수렴한다.
하지만 이런 상황에서 굳이 음악봇을 만들어야 하나? 라는 생각이 들었고,
사실 음악봇은 이미 차고 넘쳐서 경쟁력도 떨어진다. (
쩌는 개발자들이 쩌는 음악봇들을 만들고 있어서.. 작고 소중한 내 봇은 비교가 많이 될 것 같았다..)다른 아이디어를 생각하던 중 뉴스스터디를 하는 친구가 눈에 들어왔다.
매일 아침 뉴스를 선정해 각자 뉴스를 요약하고 의견을 공유하는 스터디이다.
어깨넘어로 본 결과, 뉴스는 주로 네이버에서 검색하고, 주제는 자유인듯 하다.
디스코드 내에서 음성채팅과 화면공유가 가능하니, 뉴스 검색이 가능한 봇을 만들어두고
디스코드로 스터디를 운영하면 훨씬 편하지 않을까? 라는 생각이 들었다.
그래서 뉴스를 검색해주는 디스코드 봇을 만들어보려고 한다.
네이버에 직접 검색하는 것과 봇을 이용하는 것 둘 중 어느것이 더 쓰기 편할진 아직 모르겠지만,
일단 만들어보고 던져줄 예정이다.
목표
1. discord.js v13을 사용한다.
discord.js v13 docs : https://discord.js.org/#/docs/discord.js/stable/general/welcome
가장 최신버전 discord.js이다.
v13버전에서 가장 눈에 띄는 업데이트는 슬래시 커맨드(/)의 사용이다.
이전버전에서는 봇마다 prefix명령어들이 모두 다르고, 봇에 어떤 명령어가 있는지 알 수 없어서
개발자가 명령어 document를 따로 제공하거나, 사용자가 help명령어를 입력해야지만 알 수 있었다.
사용하는 봇의 갯수가 많아질수록 prefix명령어들을 모두 외울 수도 없고,
철자가 틀리면 인식을 못하기 때문에 봇을 처음 이용하는 사람들에겐 굉장히 불친절한 방식이었다.
v13에서는 모든 prefix를 슬래시로 통일하고, 직접 간략한 설명까지 추가할 수 있게 되었다.
사진과 같이 슬래시 커멘드를 입력하면 사용가능한 명령어의 목록이 나오고, 클릭하면 해당 명령어를
자동으로 입력해준다.
2. 뉴스 데이터는 네이버 오픈 api를 이용
네이버 뉴스에서 검색하기 때문에, 네이버 api중 뉴스검색 api를 호출해서 뉴스 데이터를 가져온다.
네이버 뉴스검색 api : https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4
3. 결과는 embed 형식으로 출력
디스코드 내에서 사진과 같이 박스 형태로 출력되는 것을 embed라고 한다.
내용과 왼쪽 라인의 색을 지정할 수 있다.
이 형식을 이용하면 깔끔하게 보여줄 수 있을 것 같다.
임베드 내용엔 기사 제목, 썸네일, 요약, 제공 언론사, 발행일자를 표시하고,
클릭하면 뉴스 전문으로 이동하게 한다.
4. 뉴스의 카테고리별로 검색할 수 있고, 사용자가 직접 키워드를 검색할 수 있게 한다.
주요 카테고리(경제, 정치, 사회 등)들은 슬래시 커멘드로 바로 검색할 수 있게 하고,
사용자가 /검색 <키워드>를 입력해 해당 키워드로도 검색할 수 있게 한다.
최신 뉴스 순으로 보여주고, 한 번에 5개 또는 10개씩 출력, 페이지를 넘기면 다음 페이지를 보여주도록 한다.
5. 서버는 오라클 클라우드 프리티어 이용
프리티어 한정 오라클이 가장 좋은 것 같다.
그리고 오라클 클라우드 계정이 이미 있어서 다른 계정 만들기도 귀찮다..
시간이 얼마나 걸릴진 모르겠다.
discord.js를 사용하는 것도 처음, 심지어 자바스크립트도 모른다. 근데 왜 이거 만드냐고 물으면 그냥 하고 싶어서임.
또한 v13버전은 양질의 정보가 없는 것 같아 그냥 공식문서 보기로 했다.
맨땅에 헤딩하듯 시도해볼 생각이다. 부디 멋진 봇을 만들 수 있길!
'DEVELOP > discord-bot' 카테고리의 다른 글
[뉴스검색봇] 5. Pagination, 코드 리펙토링 (0) 2022.05.12 [뉴스검색봇] 4. 사용자 키워드 입력받기, Select menus, Button 만들기 (0) 2022.05.06 [뉴스검색봇] 3. 네이버 api로 데이터 불러오기, 임베드 작성 (0) 2022.05.03 [뉴스검색봇] 2. 슬래시 커맨드 작동 확인하기 (0) 2022.05.01 [뉴스검색봇] 1. 개발환경 세팅 (0) 2022.05.01