프로젝트 개발 동기 및 개요
평소 친구들과 게임을 즐겨 하는 편이기에, 항상 사용하는 디스코드의 JavaScript 라이브러리가 있다는 소식을 듣고 만들어보게 되었습니다.
무언가 재미있는 기능이 있을까 고민해보다 즐겨하는 게임의 드랍데이터 검색, 불편했던 가위바위보를 대신 할 주사위, 매일마다 출석체크하여 토큰을 받는 데일리 등을
제작하였습니다.
Socket.io의 이벤트 교환 방식에 익숙해져 있었고, 디스코드 라이브러리 자체에서 제공하는 비동기 함수를 이용하여 각종 임베드와 버튼으로 꾸민 채팅을 전송해주어 각종 게임 및
기능을 수행하는 봇 입니다.
프로젝트 스크린샷
discord.js & Socket.io
discord.js 는 강력한 node.js 모듈로써 디스코드 API와 쉽게 상호작용하게 해줍니다. 이 라이브러리는 봇의 코드를 상당히 정돈되고 더 쉽게, 그리고 대부분의 자바스크립트
디스코드 라이브러리들보다 훨씬 더 객체 지향적입니다.
Socket.io의 이벤트 교환 방식처럼 디스코드 서버에 봇 토큰을 인증하면 반환받는 클라이언트 객체를 통해 100% Promise 기반으로 작성이 가능하기에 안정적인 서비스 처리가
가능합니다.
프로젝트 코드 일부
깃허브 저장소 주소로 대체합니다. [Click Me!]
프로젝트 후기
평소 즐겨 하던 게임과 관련된 개발이었고, 친구들의 '이런이런 기능이 있었으면 좋겠다' 하는 피드백을 받으며 진행했기에 너무나도 재미있게 만들었습니다. 기술적으로는 최근 타입스크립트만 사용하다 오랜만에 자바스크립트를 사용하니 왜 TS를 사용하는지 역체감이 들며 이해가 단번에 갔습니다. 특별한 새로운 기술을 습득한 것은 아니지만, 개발의 취미와 게임의 취미가 겹친 너무나 행복한 프로젝트였습니다.
다른 기발한 아이디어가 있으신가요?
주니어 개발자로써 많은 것을 배우고 제작해보고싶습니다. 현재 프로젝트에 추가되었으면 하는 기능이나, 완전히 새 프로젝트에 대한 아이디어가 있으시면 저에게 연락주시면 감사하겠습니다.