SkileBot의 2주년을 말하다: Q&A 세션 요약

Share on facebook
Share on linkedin
Share on twitter
Share on email
그래서 도대체 "슷칼봇"이 뭔가요? 디스코드 챗봇 SkileBot이 2주년을 맞이한 것을 기념해서 슷칼봇의 일거수일투족을 낱낱이 털어보았습니다!

목차

포스트 공유하기

Share on facebook
Share on linkedin
Share on twitter
Share on email

SkileBot은 2020년 11월 현재 약 1만 개의 디스코드 서버에서 약 6만 명의 누적 사용자(월 활성 사용자 약 1만 명)와 함께하고 있습니다. SkileBot은 출시 2주년을 기념하여 슷칼봇 주식 투자가분들과 Q&A 방송을 진행했고, 그 중 사람들이 많이 궁금해했던 내용을 추리고 방송에서 미처 말하지 못한 부분을 부연해 정리했습니다!

왜 이름이 “슷칼봇”인가요?

아마 예상하셨겠지만, 팀 크레센도 팀원 Skile이 처음으로 만든 디스코드 봇이라 이름을 SkileBot으로 지었습니다. 처음부터 주식 미니게임 봇을 만들 생각이었던 게 아니라, 개발자 Skile의 자기만족을 위한 자작 봇으로 시작한 만큼 이름에 특별한 의미를 담지 않았습니다.

SkileBot을 스카일봇이 아니라 슷칼봇이라 읽는 이유를 궁금해하시는 분들도 계셨습니다. 그건 원본(?)인 Skile이 스카일보다는 슷칼로 자주 불렸기 때문입니다. Skile은 인터넷 커뮤니티에서 활동하기 위해 지은 별명입니다. 다만 주로 활동하던 커뮤니티에 스칼이라는 닉네임을 사용하던 분이 이미 계신 바람에 사람들이 스칼 대신 슷칼로 줄여 부르던 것이 굳어져 SkileBot 또한 “슷칼봇”으로 불리게 되었습니다.

왜 슷칼봇을 만들었나요?

오후요 오후…

디스코드 챗봇을 만드는 팀 크레센도는 사실 처음에는 모바일 인디게임을 만들기 위해 뭉친 팀이었습니다. 당시 업무용으로 사용하던 디스코드 서버에서 사람들이 드립을 치거나 실언을 했을 때 스크린샷을 찍어 저장하는 이른바 “박제 문화”가 있었는데, 재미있어 보여서 명령어를 쳐서 누구나 쉽게 박제된 발언을 꺼내볼 수 있는 챗봇을 만들었고 그것이 SkileBot의 전신이 되었습니다. 지금도 “슷커추” 명령어를 이용해 손쉬운 박제가 가능합니다! 관심 있으시면 슷칼봇 가이드를 확인해주세요.

더 지니어스: 블랙 가넷 ⟪폭풍의 증권시장⟫ (2014), tvN

디스코드 챗봇으로 사람들에게 재미를 줄 수 있다는 걸 알게되고, 캐주얼하지만 전략적 요소가 가미된 게임을 디스코드로 구현해보고 싶었습니다. 그것이 바로 현재 슷칼봇의 메인 콘텐츠인 폭풍의 주식시장인데요. 이름에서 추측할 수 있듯이 더 지니어스라는 tvN 예능 프로그램의 “폭풍의 증권시장”이라는 게임에서 모티브를 따왔습니다. 하지만 정보 거래가 주 재미요소였던 원본 게임과는 달리 주식 거래 없이도 재화를 벌 수 있는 각종 미니게임 요소를 추가하면서 진입 장벽을 낮췄습니다.

처음에는 친구들끼리 즐기기 위해 가볍게 시작한 프로젝트였지만, 주변 친구들이 좋은 반응과 격려를 많이 보내줬습니다. 마침 팀 크레센도 안에 RPG 게임 챗봇 배추봇 개발자도 계신 김에, SkileBot을 누구나 초대할 수 있도록 외부에 공개하고 본격적인 운영을 시작했습니다. 그것이 2018년 10월 16일이었죠.

다른 개발자분들은 어떻게 합류했나요?

SkileBot은 현재 스카일, 이안님, 소담님 셋이서 함께 개발하고 있습니다. 제 이야기는 충분히 많이 했으니 두 개발자분에게 어떻게 합류하게 되었는지 물어보았습니다!

이안: 친구들끼리 디스코드 채널에서 SkileBot을 갖고 놀다가 개발자 모집 공고를 보게 됐어요. 한번 해볼까? 싶어서 지원하게 되었어요. 얼떨결에 합격했는데 개발하다보니까… 어… 무역도 하고… 힘들어요

사전 준비 없이 한 인터뷰라 당황하셨나봅니다 ^^. 이안님은 SkileBot 개발자 면접을 보기 전부터 따로 SkileBot의 주가를 예측하는 머신러닝 모델을 만들어보는 등 AI와 딥러닝에 관심이 많으셨어요. 전공을 살려서 팀 크레센도의 다른 챗봇인 크시에서 부적절 언어를 필터링하는 모델을 개발하기도 했죠. SkileBot에서는 “대운게임 강화게임”“슷칼항공 스탬프투어” 같이 미니게임 콘텐츠 개발을 리드해주셨어요. 그 중에서도 “베그해운 대무역시대” 미니게임이 대박이었죠. 상급자를 타겟으로 했던만큼 명세가 상당히 복잡했는데도 1500줄이 넘어가는 코드를 훌륭히 짜 주셨습니다.

소담: 어… 그냥… 정말…. 그러게요, 왜 저는 개발에 뛰어들었을까요?

……. 다음에는 Q&A 준비하기 전에 사전에 말을 맞춰보도록 하겠습니다. 왠지 부끄러워하시는 소담님을 뒤로 하고 부연해드리자면, 소담님은 SkileBot을 다른 팀 크레센도 팀원 분의 소개로 알아보기 시작했다고 해요. 그동안 보안 분야에서 다양한 활동을 해 왔지만 막상 개발쪽으로 협업한 경험이 부족한 게 아쉬워 SkileBot 개발에 참여하고 싶다고 면접때 말씀해주셨습니다. 소담님은 최근 진행한 2주년 이벤트에서 “복권 이벤트”를 기획, 개발, 운영까지 전부 도맡아주셨고, 이외에도 전반적인 SkileBot UX 개선에 많이 힘을 실어주셨어요.

슷칼봇 뉴스는 누가 작성하나요?

오늘도 평화로운 슷칼봇 세상

“슷칼봇 뉴스” 명령어는 주식회사의 주가가 어떻게 변화할지 예측하는데 도움을 주는 뉴스를 보여줍니다. 위 사진을 보면 아시다시피 기상천외한 소식들로 가득한데요, 도대체 누구 머리에서 나온 아이디어인지 궁금해하시는 분들이 많았습니다.

개발자는 세 명이지만 세부 기획이나 그래픽 리소스는 디자이너나 관리자 등 다른 팀원에게 많은 도움을 받고 있습니다. SkileBot 뉴스 목록도 따로 회의 시간을 잡고 브레인스토밍해서 만들어낸 집단 지성의 결과물입니다.


봇 개발을 갓 시작하시는 분들을 위해, 이번에는 개발 관련 질문에도 꽤 자세하게 답변을 드렸습니다. 그러다보니 개발에 대한 배경 지식이 없으면 이 아래의 내용은 읽기 어려울 수도 있습니다. 그럴 경우에는 가장 마지막 문단으로 점프해주셔도 괜찮습니다!

슷칼봇을 어떻게 만들었나요?

무슨 언어로 만들어졌나요?

SkileBot은 2층 구조로 구성되어 있습니다. 애플리케이션 서버는 Discord API를 래핑한 Python 라이브러리 discord.py를 기반으로 개발되었습니다. 이외에도 리그 순위 정산 등 데이터 처리에는 pandas를, 주가 그래프를 그리는 데는 seaborn을 사용합니다. 사용자 데이터는 mongoDB로 관리합니다. 애플리케이션 서버와 데이터베이스 서버는 각각 컨테이너화되어 Docker Compose를 통해 관리되고 있습니다.

서버는 어디에 있나요?

개발 초기(출시 이전)에는 집에 있는 라즈베리파이에서 SkileBot을 구동하던 시절도 있었지만, 지금은 국내 IDC 호스팅 서버 위에서 동작하고 있습니다.

버그가 발생하면 어떻게 처리하나요?

오류가 발생할 경우 Traceback을 로깅하고 팀 내 디스코드 채널에도 오류 발생 사실을 보고합니다. 원인을 분석한 다음 추가 대응이 필요한 경우 GitHub 이슈 트래커에 올려 관리합니다.

용량은 어느 정도 되나요?

재밌는 질문이었는데요, 저도 막상 궁금해져서 추가 조사를 진행해보았습니다.

소스코드 전체 라인은 약 18,000줄 정도 되고, 소스코드 용량 외에 그래픽 리소스 등을 포함하면 작업물의 순수 용량은 40MB 정도됩니다. 다만 2년 넘게 서비스를 운영해온 만큼 데이터베이스 용량, 로그 파일, 도커 이미지 용량 등을 종합적으로 고려했을 땐 GB 단위의 처리를 염두에 두고 개발합니다.

봇을 개발하는 방법을 어떻게 공부했나요?

SkileBot 프로젝트는 저의 첫 Python 프로젝트였고, 시작은 정말 많이 미숙했습니다. DB 조차 제대로 쓰지 못해 단순 파일 입출력으로 데이터를 관리하던 시절이 있었을 정도니까요. 앞서 소개드린 discord.py와 같은 각 라이브러리의 공식 문서와 씨름하며 원하는 기능을 하나씩 구현해 나갔고, 개발 경험이 깊은 다른 팀원분들의 조언을 받으며 데이터베이스나 인프라 구성, 디자인 패턴 등 다방면의 지식을 습득한 결과 이 자리에 이를 수 있었습니다.

자신이 좋아하는 주제의 제품을 밑바닥에서부터 직접 개발하는 경험은 확실히 실력 향상에 큰 영향을 주는 것 같아요.


장장 2시간에 걸친 Q&A 방송을 진행했지만 여전히 SkileBot에 대해서 하고 싶은 말이 많았는데요, 덕분에 여러모로 알찬 Q&A 포스트가 작성된 것 같습니다. 모두 여러분의 관심이 있었기 때문에 가능한 일이었고 3주년, 4주년이 되도록 꾸준한 사랑 부탁드리겠습니다!

팀 크레센도 또는 슷칼봇에 대해 더 더 궁금한 점이 있으시다면 개인 메일로 질문해주시면 가능한 범위 내에서 또 성심성의껏 답변하겠습니다. 감사합니다!

목차

Skile (스카일)

Skile (스카일)

자연어처리에 관심이 많고 챗봇을 좋아하는 개발자 스카일입니다. 디스코드 봇 SkileBot을 만들었고, 팀 크레센도의 대표로서 효과적인 팀 운영에도 많이 신경쓰고 있습니다.

더 둘러보기