이삼이는 내가 얼마 전에 만들었던 디스코드 봇이다. 이삼이의 역할은 나의 벨로그의 최신글을 디스코드 방에 띄워주는 것 이였다.
더 자세한 내용은 요기를 참고하길 바란다.
위 글에 보면 이삼이를 만들게 된 계기와 개발과정 이삼이가 할 수 있는 일에 대해서 나와있다.
나는 V2를 만들려는 계획보다도 베포가 가장 우선이였다. 이삼이 V1 글을 쓰고, 인스타그램 스토리에 올렸다. 올리고 조금이 지나 지인에게 DM이 왔다. 내가 알기로는 만든 봇이 꽤 있는 걸로 알고 있는데 하나의 조언을 해주었다.
오 이제 유저 유알엘 등록하고 채널 아이디
등록 해서 그 특정 채널에 유알엘 지정 하면 알려주는거 만들면 되겠다
앞 글 마지막에 나는 요런 말을 했었다. 슬러쉬 태그 활용.
조언과 내 목표가 겹치는 경향도 있어 해보기로 했다.
먼저 이삼이를 부를 때 어떤 태그를 쓸까를 먼저 고민했다.
! / 등등
나는 느낌표로 시작하는 태그를 선택했고,
!yeesamee
Velog RSS URL Discord Channel ID
을 하면 이삼이가 응답해주도록 했다.
태그 보면 Velog RSS를 사용한다는 것은 이제 @huise0ng의 벨로그만 공유하는 것이 아닌 이삼이가 있는 서버의 사용자는 모두 자신의 벨로그를 공유할 수 있도록 할 수 있었다. (내가 서버만 열어둔다면!)
디스코드 봇을 개발한다는게 너무 재미있어
밤에도 계속 개발을 시도했다. (같은 방에 있었던 친구야... 미안하다.)
도중! 메세지를 보내는데 10분 후 응답이 오지 않았다.
문제는 간단했다. 나는 Velog URL + <채널 ID>로 코드를 짜지 않았다. 근데 !yeesamee라고 쳤을 때 머리속에는 <> 이 표시를 넣어놨으니... 저장이 잘 되어도 안되는게 정상이였다.
계속 이런식으로 시도하고, 코드를 고치고를 시도하던 끝에
채팅 채널 # 일반에서
!yeesamee ------------------------
를 치고 10분 후 이삼이-test 방에 최신 글이 나온느 것을 확인했다.
이쯤 들어보면 DB를 만들었나? 라는 생각이 들었을 것이다.
하지만 나는 나의 최대 약점인 DB를 사용하지 않았다. 더 어렵더라도 우회해 .json을 이용했다.
이삼이를 node index.js로 실행 시킬 때 feeds.json 파일을 만들어 안에 저장하기로 했다. 만약 feeds.json파일이 있다면 따로 생성하진 않는다.
json 파일의 구조는
{
"디스코드 사용자": {
"채널 ID": {
"rssUrl": "벨로그 RSS URL",
"lastLink": "RSS URL을 넣은 사용자의 최신 글"
}
}
}
처음에는 비어있고,
사용자가 Discord에
!yeesamee로 시작하는 명령어를 사용하면 위 처럼 등록된다. 이 방식으로 이제는 @huise0ng 벨로그만이 아니고, 채널에 있는 사람이 모두 사용할 수 있게 되었다.
처음에 생각을 잘못하고 코드가 누적이 아니라 덮어쓰기가 되었다. (고친다고 진땀을 흘렸다ㅏㅏㅏ)
이렇게 나 혼자 방에서 하니
나여서 되는 건가 싶어 테스트를 도와줄 동료들을 모았다.
그리고, json 저장도 문제없이 계속 되는가 확인하고 싶었었다.
나는 인스타그램에 테스트를 도와줄 분이라는 내용으로 스토리를 올렸고, 하고 싶다는 6분께서 같이 테스트를 도와주셨다.
요렇게 테스트를 같이 도와주셨다.
테스트를 진행하던 도 중 문제가 발생했었다.
404 404 404 테스트를 진행하는 도 중 한 테스터께서 벨로그 RSS URL을 잘못 넣으신 것이였다. 매우 당황했다.
서버는 다시 끄고 켜면 되는 것인데 누군가가 잘못된 RSS URL을 넣게 되면 이삼이는 잘못된 URL을 넣은 사용자에게 아무 말도 하지 않고, VS Code 터미널에만 소심하게 말했기 때문이다. 이렇게 되면 사용자는 이삼이가 작동하지 않는다고 생각할 확률이 크다. ㅠㅠ
빠르게 고쳐야 할 부분 1순위 이다.
이삼이 V2를 만들며
- 디스코드 채팅창에서 명령어를 써서 이삼이를 제어할 수 있다!
- @huise0ng이 아니여도 같은 채널에 있다면 누구나 사용이 가능하다!
라는 이삼이의 가장 큰 리스크르 해결할 수 있어서 정말 매우 뿌듯했다.
그리고 .json을 간단한 데이터베이스로도 사용이 가능하다라는 정보를 알았다.
테스트의 중요성도 알았다. 요즘 광고에 보면
---요 서비스 테스트 모집합니당 관심가져주세요
같은 것들이 많다. 광고를 보며 테스트를 굳이 저렇게까지 해야하나 내부에 사람도 많을텐데. 라고 생각 했지만 이번에 처음으로 테스터들과 함께 해보고 만든 사람은 정답만 입력하고 잘되는지 정도만 확인하고 잘되네 라고 말하기가 대부분이기에 테스트를 꼭 해봐야된다라는 것을 느꼈다.
같이 테스트 해주신 6분 너무 감사함니당~
이삼이 좋더라고요 개조를 해서 협업에 같이 쓰기도 좋고, 아니면
velog, github를 한 것을 알려주면 다른 사람도 해볼까라는 생각도 들게 할 수 있을 거 같고
테스트 하는 것도 재밌었고 너무 좋은 기획이였던 것 같아요!!