라떼 봇 - 명령어 가이드

2020-05-02 기준

라떼봇은 현재 베타 테스트에 있어, 일부 명령어들은 변경될 수 있음을 사전에 공지합니다.

help 모듈 : 도움말

도움말 : 봇의 도움말을 보여줍니다.
사용법 : 라떼야 도움말 또는 라떼야 도움말 (모듈명)

management 모듈 : 서버 관리

추방 : 유저를 서버에서 추방(kick) 합니다.
사용법 : 라떼야 관리 추방 @유저(멘션)

차단 : 유저를 서버에서 차단(ban) 합니다.
사용법 : 라떼야 관리 차단 @유저(멘션)

차단해제 : 유저를 서버에서 차단해제(unban, pardon) 합니다.
사용법 : 라떼야 관리 차단해제 (유저 id)

채팅청소 : 채팅 채널의 메세지를 주어진 개수만큼 삭제합니다.
사용법 : 라떼야 관리 채팅청소 (지울 메세지 개수)

utils 모듈 : 유틸리티

핑 : 봇의 응답 지연시간을 보여줍니다.
사용법 : 라떼야 핑

유저정보 : 멘션한 유저의 정보(닉네임, 프로필, 디스코드 가입 일자 등) 을 보여줍니다.
사용법 : 라떼야 유저정보 @멘션

활동정보 : 멘션한 유저의 활동정보 (디스코드에 표시되는 활동 정보) 를 보여줍니다.
사용법 : 라떼야 활동정보 @멘션

서버정보 : 명령어가 사용된 서버의 정보를 보여줍니다.
사용법 : 라떼야 서버정보

정보 : 라떼 봇의 정보를 보여줍니다.
사용법 : 라떼야 정보

투표 : 일정 기간 진행되는 투표를 게시합니다.
사용법 : 라떼야 관리 투표 (투표 기간 :시간 단위, 양의 정수) (투표 주제) (투표 설명) (투표 후보)
주의사항 : 아직은 진행중인 투표의 목록을 확인할 방법이 존재하지 않습니다 :(

초대링크 : 라떼 봇을 서버에 초대할 수 있는 링크를 생성합니다.
사용법 : 라떼야 초대링크

박제 : 메세지를 임베드 형태로 박제합니다.
사용법 : 라떼야 박제 (메세지 url)

제보 : 건의사항이나 버그를 개발자에게 제보합니다.
사용법 : 라떼야 제보 (건의/버그) (내용) 또는 라떼야 제보
발견하신 버그들을 제보해주시면 라떼봇의 개선에 도움이 됩니다!
라떼봇에 추가되었으면 하는 기능들고 건의해주세요!

fun 모듈 : 각종 오락 기능

주사위 : 주사위를 굴려 결과를 보여줍니다.
사용법 : 라떼야 주사위

auth 모듈 : 유저 인증

인증 : 라떼봇의 유저 인증 기능을 관리합니다

[ 활성화 ]
라떼봇의 인증을 활성화합니다.
현재 사용 가능한 인증 유형은 다음과 같습니다 :
(1) 이미지 캡차 : captcha-image
이미지 캡차는 알파벳 대/소문자와 숫자, 그리고 몇종의 특수문자를 무작위로 선택해 이미지를 만들어 해당 이미지에 적힌 문자열을 유저가 맞추도록 하는 인증 방식입니다.
이미지 캡차를 활성화하기 위해서는 사전에 로그채널과 캡차 문자 길이를 설정해야 합니다. (하단에 설명)
사용법 : 라떼야 인증 활성화 (인증 유형)

[ 비활성화 ]
라떼봇의 인증을 비활성화합니다.
사용법 : 라떼야 인증 비활성화

[ 캡차 ]
CAPTCHA 를 사용한 유저 인증 방식입니다.
캡차 인증을 사용하기 전에는 아래의 두가지를 미리 설정해 주어야 합니다.

{ 로그채널 }
캡차의 로그가 기록될 로그채널을 설정합니다.
사용법 : 라떼야 인증 캡차 로그채널 #채널멘션

{ 문자 길이 }
캡차의 문자 길이를 설정합니다.
사용법 : 라떼야 인증 캡차 문자길이 (자연수)
주의사항 : 너무 적은 수의 문자는 캡차의 신뢰성을 떨어뜨립니다.

라떼 봇 - 소개

라떼는 여러분들의 디스코드에서의 생활을 한층 더 여유롭게, 달달하게 만들어줄 디스코드 봇입니다. 다양한 서버 관리 기능을 제공해 서버를 더 편리하게 관리할 수 있으며, 다양한 유틸리티 기능들이 제공되어 디스코드에서 다양한 활동을 즐기실 수 있습니다 :D

기능

  1. 서버 관리 기능 [Done & Can be Updated]
    멤버 추방, 차단, 차단해제, 뮤트 및 경고 등 멤버 관리 기능과 채팅청소, 투표, 유저 인증 등 편리한 관리 기능들을 제공합니다.

  2. 각종 유틸리티 및 놀이 기능 [Done & Can be Updated]
    멤버의 정보, 활동정보(Activity 받아오기), 서버 정보를 받아올 수 있어요. 혹은 봇에게 말을 걸거나 주사위를 굴려볼 수도 있습니다!

앞으로 개발할 기능들

  1. 음악 스트리밍 기능 [Plan]
    디스코드 내 음성 통화방에서 유튜브, 사운드클라우드 등 다양한 곳에서 받아온 음원을 재생해줍니다.

  2. 대화 기능 개선 [Plan]
    기존의 정해진 대사중에 선택해 답변하던 방식 대신, 핑퐁 빌더를 사용해 자연스러운 대화를 제공합니다.

  3. 알람 기능 [ReWrite]
    디스코드 내에서 사용해보는 알람입니다. 라떼봇이 직접 DM으로 알려줘요!

  4. 언어 기능[Plan]
    보다 더 많은 사람들을 지원하기 위해, 다양한 언어로 라떼봇이 동작할 수 있게 합니다.

개발 환경

Python
discord.py
Python 3.8
discord.py 1.3.2

봇 개발에 도움을 준 사람들

khk4912(BGM) : 봇의 로그가 두번 출력되는 오류를 해결해 주셨습니다!
HOREON : 봇의 일본어 번역을 맡아주셨습니다!
당신 : 라떼봇을 사용해 주시고, 테스트를 해주셨습니다!

라떼봇은 아직 베타 테스트 단계이므로, 다양한 오류나 예상치 못한 동작을 보일 수 있습니다. 이런 경우들은 봇을 통해 제보해 주시면 감사하겠습니다!

Arduino에서 Serial을 사용해 출력할 때, 문자열과 변수의 값을 코드 한 줄로 출력하는 방법

요즘 학교에서 아두이노를 사용해 LiDAR와 같은 센서들로부터 값을 읽어오고 그 값들을 바탕으로 모터를 제어하는 소스코드를 작성하고 있습니다. 추후 탱크의 형태로 만들어질 하드웨어에 연결해 RC 컨트롤러로 제어하거나 여러 센서들을 사용해 주변과 부딪히지 않고 스스로 움직이도록 하는 것이 목표입니다.

이를 위해 오늘은 LiDAR 센서로부터 값을 읽어오는 코드를 작성하고 있었습니다. 아두이노에서 계산한 값을 Serial 모니터로 출력하기 위해서는, 아두이노의 하드웨어에서 지원되는 Serial(HardwareSerial 이라고 합니다.)을 사용해 출력해야 합니다.

1
2
Serial.println();
Serial.print();

Serial 모니터에 문자열, 정수 등을 출력할 때에는 주로 이 두가지 메소드를 사용합니다.

헌데, 제가 변수의 값을 출력할때 자주 사용하던 방식대로 출력할 수 없었습니다.

1
2
var = 10;
Serial.println("var = " + var);

위 코드와 같은 형태로 출력시 의도한대로 var = 10 이 출력되는것이 아닌, 전혀 다른 이상한 값들이 출력되더군요.

정말로 함수를 새로 만들어서 더 깔끔하게 출력할 수 있도록 해야할지 고민하던 도중, 구글링을 통해 보게된 스택오버플로우의 한 글은 제게 간단한 해결책을 제안했습니다.

1
2
var = 10;
Serial.println((String) "var = " + var);

이라는 코드였죠.

“var = “ + var 이라는 문자열과 정수의 덧셈 결과를 문자열로 캐스팅하면 바로 사용이 가능했습니다.

앞으로는 번거롭게 여러줄의 Serial.print()를 사용하는 대신, 위 코드로 깔끔하면서도 보기 좋은 디버깅을 할 수 있겠네요 :D

2019년도 회고록

어느덧 2019년이 마무리되고 2020년이 다가왔습니다. 제게 2019년은 이전 해와는 달리 보다 더 많은 일들에 도전했고, 더 많은 일을 해낸 해였습니다. 제게 의미있는 일들이 많았던 만큼 회고록을 통해 올 해 겪었던 여러가지 일들에 대해 적어보려 합니다.

1. Python과 카카오톡 챗봇

2019년 8월, 저는 김왼손님의 왼손코딩 시리즈를 통해 파이썬의 기초를 공부했습니다. 그 후, 파이썬을 본격적으로 활용해보며 Closure, Decorator와 같은 문법들을 배웠고 Flask, discord.py와 같은 여러가지 모듈들에 대해 공부하고 다뤄보았습니다. 이전에 다른 언어들을 배웠기 때문인지, 빠르게 배워서 빠르게 쓸 수 있었던 언어였죠.

올해 Python 3.7.4 버전을 배워 만들어본 것들은 여러가지가 있지만, 그중에서도 특히 의미가 있는 프로젝트를 고르자면 제 고등학교의 카카오톡 챗봇의 스킬서버를 고르겠습니다. 이전에는 사용해 보기만 하던 카카오톡 챗봇을 직접 개발해보니 재밌고 유익한 경험이 되었던 것 같고, 이렇게 만든 챗봇을 고등학교의 학생들, 교사들이 사용할 수 있도록 서비스해보며 뿌듯함을 느꼈습니다. 현재는 급식표 기능이 서비스되고 있으며, 추후 여러가지 기능들을 추가할 예정입니다.

2. 챗봇톤 참가

비록 지식이 많이 모자란 상태에서 참여한 해커톤이었지만, 많은 것들을 배울 수 있었습니다.
다양한 분야의 팀원들과 함께 협업해본 경험, 코사인 유사도 알고리즘과 파이썬으로 형태소 분석하기, 챗봇 개발하기 등 다양한 경험을 해 본 유익한 시간이었던 것 같습니다. 그때 받아왔던 보라색 후드집업은 잘 입고 있어요. (의외로 마음에 들었어요 ㅎㅎ)

3. 메이커 활동

메이커 활동이 무엇인지는 아무것도 모른 채, 처음에는 교내에서 프로그래밍을 같이 할 학생들을 모아보고자 자율동아리를 창설하려고 했어요. 그러나, 일반 고등학교였기 때문에 당연한 결과였는지 자율동아리를 설립하기 위한 최소 인원을 채우지 못했고, 방향을 틀어 ‘무언가를 만든다’ 라는 원초적인 목적으로 자율동아리를 만들어, 8명의 인원으로 메이커 동아리를 창설하게 되었습니다. 교내에 메이커 스페이스가 존재했는데, 이곳에서 3D 프린터를 사용해보고, 아두이노를 다뤄보며, 납땜을 해보는 등 다양한 활동들을 경험할 수 있었습니다. 축제 기간과 학교 설명회 기간에 그동안 만들었던 여러 작품들을 공개했는데, 특히나 학교 설명회 때가 가장 기억에 남네요. 기말고사가 한 달 남아있던 와중에 2주 정도의 시간을 들여 의수와 로봇 팔을 만들고, 교내 메이커 활동을 소개하기 위한 발표를 준비했던 경험은 재밌으면서도 긴장되었습니다. 발표는 아쉬웠지만, 이걸 계기로 내가 다음번에 또 발표를 하게 된다면 어떠한 점을 고쳐야 할지 보다 확실히 알게 되었으며, 발표를 더 많이 하면 할수록 내가 사람들 앞에 서는 것을 두려워하지 않게 되어간다는 사실을 깨달았습니다.

4. 관심 분야의 확장

저는 ‘’내가 즐기던 게임들을 직접 만들어보고 싶다’ 라’는 발상에서 프로그래밍을 시작하게 되었습니다. 그렇기 때문에, 이전에는 제가 관심을 가지던 분야는 주로 게임 개발에 한정되어 있었죠. 허나 지금은 보다 다양한 프로그램들을 접하고 직접 만들어보며 제가 관심을 가지고 있던 분야가 넓어졌습니다. 이제는 앱, 웹 개발에도 흥미를 가지고 있으며 머신러닝이라는 분야에 굉장한 관심을 가지고 있습니다. 여전히 게임 개발도 관심을 가지고 있고, Unity를 공부하고 있죠. C#으로 WPF 프로그램을 만들어보며 데스크탑 앱 개발에 입문하게 되었고, Java로 안드로이드 앱을 개발하며 모바일 앱 개발에 입문하게 되었습니다. 다음에 기회가 된다면 크로스 플랫폼 앱 개발을 공부해 Discord와 같이 플랫폼에 구애받지 않고 사용 가능한 앱을 개발해 보고 싶어지기도 했습니다. 제가 관심을 갖게 된 분야가 넓어진 만큼, 프로그래밍을 향한 열정도 더 깊어진 것 같아요. 2020년에는 더 많은 것들을 배우고, 만들어보고 싶습니다.

이정도면 올 한 해 동안의 주요한 경험들을 다 적어둔 것 같아요. 2020년을 마무리하면서 또 어떠한 경험들을 적게 될지, 그리고 또 무엇을 배우며 무엇을 만들게 될지 기대됩니다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×