디스코드에서 코드를 돌려 프로그래밍 연습을 해봅시다
RTFM 봇은 디스코드에 코드를 입력하면 실행시킨 후 결과를 알려주는 봇입니다! 또 여러 프로그래밍 관련 문서들을 쉽게 볼 수 있지요. 그리고 텍스트-ascii 변환을 하거나 해쉬 알고리즘을 돌려보는 등 프로그래머에게 여러모로 유용한 디코 봇입니다! 이제 이 봇을 자신의 디코 서버에 초대해 다른 사람들과 함께 프로그래밍 공부를 해 봅시다.
사족으로 RTFM은 read the fucking manual의 약자입니다.
RTFM 봇 초대하기
위 링크를 클릭한 후, 초대하고 싶은 서버를 선택해주시면 됩니다! 만약 봇을 별로 써보지 않아서 봇을 초대하는 법이 익숙하지 않으신다면, 아래 링크를 클릭해 글을 봐주세요.
🤖 디스코드 봇들을 찾고 서버에 초대하는 법에 대해 알아봅시다.
RTFM 봇의 접두사는 do입니다. 모든 명령어 앞에 do를 입력해주셔야 됩니다.
코드 실행하기 - do run
RTFM 봇의 핵심 기능입니다! 디스코드 채팅창에 명령어와 함께 코드를 입력하면 코드를 실행시키고 결과를 알려줍니다. 코드 실행은 tio.run을 통해서 되며 600개의 언어를 실행시킬 수 있다 하네요. 실행시간이 60초가 넘어간다면 끊기고 실행되지 않으니 이점 유의해주세요.
do run <프로그래밍 언어명> [--wrapped] [--stats] <코드> [추가 옵션]
기본적인 명령어 입력 양식은 다음과 같습니다. 대괄호([]) 안은 선택이며 꺽쇠괄호(<>) 안은 왠만하면 필수입니다. 이제 사용법을 좀 더 상세하게 살펴봅시다.
그냥 코드 입력하기
📥 입력
do run py star = "★"
for i in range(1, 6):
print(star*i)
📤 출력
처음에 do run을 입력하고 띄어쓰기 후에 언어명을 입력합니다. 그리고 다시 띄어쓰기 후에 코드를 입력해주시면 됩니다. 이때 언어명과 코드 사이에 띄어쓰기 대신 엔터로 줄을 바꾸셔도 상관 없습니다.
또 실행시키면 아래에 Run again 버튼과 Delete 버튼이 생깁니다. Run again 버튼은 코드를 다시 실행시켜줍니다. Delete는 실행시킨 결과 메시지를 지웁니다.
코드를 코드블럭으로 감싸 입력하기
📥 입력
do run py ```
star = "★"
for i in range(1, 6):
print(star*i)
```
📤 출력
그냥 텍스트로 코드를 입력하면 난잡하므로 코드블럭 안에다가 코드를 넣어줄 수 있습니다. 코드블럭은 백틱 3개(```)를 감싸고 싶은 코드 양 끝에 붙여주시면 만들어집니다. 언어명과 코드블럭 사이는 띄어쓰기 또는 엔터로 구분해주시면 됩니다.
디스코드에서 코드블럭을 쓰는 더 자세한 법에 대해선 아래 글을 참고해주세요.
코드블럭 안에 언어명 명시하기
📥 입력
do run ```py
star = "★"
for i in range(1, 6):
print(star*i)
```
📤 출력
만약 코드블럭 안에 언어명이 명시되어 있을 경우 앞에 언어명은 생략할 수 있습니다! 이렇게 올려서 돌리는 편이 가장 보기가 이쁘겠지요.
링크로 돌리기
📥 입력
do run c link=https://hastebin.com/doyomicora.cpp
📤 출력
공개된 hastebin 링크나 깃허브 gist 링크에서도 코드를 불러와서 돌리실 수 있습니다. 돌리고자 하는 코드의 길이가 2000자 이상으로 너무 길 때 유용하겠지요. 주의하실 점은 link=<링크>식으로, 등호(=) 앞 뒤에 띄어쓰기가 없어야 한다는 점입니다.
파일을 올려 돌리기
📥 입력
do run c를 파일 올릴 때 채팅으로 넣어줍니다.
📤 출력
한 파일 안의 내용을 읽어 그 내용을 가지고 코드를 돌립니다. 링크 넣기와 마찬가지로 올리고자 하는 코드가 2,000자 이상일 때 유용합니다. 단 20,000자를 초과할 순 없다 하네요. 파일의 확장자는 신경쓰지 않으니, txt 파일을 올리셔도 됩니다. 인코딩은 UTF-8만 인식 가능합니다.
입력 값 넣기 : input
📥 입력
do run ```py
star = input()
count = int(input())
for i in range(1, count+1):
print(star*i)
```
input `■`
input `3`
📤 출력
만약 코드를 돌릴 때 입력값이 있다면 코드 아래 입력값 갯수마다 input `넣는 값`형식으로 입력해주세요. 주의하실 점은 input과 백틱으로 감싼 부분 사이에 띄어쓰기가 반드시 있어야 한다는 점입니다.
플래그(flag) 붙이기
뒤에 --stats, --wrapped를 붙여 특수한 기능을 적용시킬 수 있습니다.
실행 시간 보기 : --stats
📥 입력
do run py --stats ```py
star = "★"
for i in range(1, 6):
print(star*i)
```
📤 출력
언어명 뒤에 --stats을 붙이면 실행시간 등의 여러 정보를 보여줍니다. 자신의 코드가 얼마나 빠른지 확인할 때 좋겠네요. --stats을 붙일 때는 언어명을 생략하실 수 없습니다.
main 함수로 감싸주기 : --wrapped
📥 입력
do run c --wrapped ```c
for(int i=0;i<6;i++){
for(int j=0;j<i;j++){
printf("★");
}
printf("\n");
}
```
📤 출력
언어명 뒤에 --wrapped를 붙이면 main 함수가 있는 몇몇 언어명에서 main 함수를 적어주지 않아도 main 함수로 감싸져 있는 것처럼 돌릴 수 있습니다. 가능한 언어명은 다음과 같습니다 : c, cpp, cs, java, rust, d, kotlin
추가로 compiler flags, command-line-options 또는 arguments를 정해줄 수 도 있다고 하네요. 위에서 입력값 넣을 때처럼 코드 아래쪽에 원하는 설정 이름 `값`형식으로 적어주시면 됩니다. 이 부분은 저도 정확히는 잘 모르겠네요.
프로그래밍 관련 문서 보기
RTFM 봇은 코드 실행 말고도 여러가지 프로그래밍에 관련된 기능들을 제공합니다. 그 중 하나는 프로그래밍 관련 문서들을 검색해서 보여준다는 것입니다.
레퍼런스 보기 : do ref
do ref <레퍼런스 명> <검색 내용>을 입력하시면 해당 내용을 검색해서 볼 수 있습니다. 검색해볼 수 있는 레퍼런스로는 csp-directives, git, git-guides, haskell, html5, http-headers, http-methods, http-status-codes, sql가 있습니다.
문서 보기 : do doc
do ref <문서 명> <검색 내용> 을 입력하여 문서에서 해당 내용을 검색 가능합니다! 아래 검색 결과가 뜨며 클릭하면 해당 사이트로 이동합니다. 검색 가능한 문서들은 다음과 같습니다 : c, cpp, haskell, python
데비안 프로그램 검색 : do man
mac.cx라는 데비안 리눅스 프로그램들의 메뉴얼을 모아둔 사이트에서 검색해줍니다. do man <검색 내용> 을 입력하면 됩니다.
스텍오버플로우에서 검색 : do stack
StackExchange라는 스택오버플로우류의 질문 답변 사이트들을 모아놓은 사이트에서 검색해줍니다. do stack <질문 사이트 명> <검색 내용>이라 입력해주시면 됩니다. 스택오버플로우에서 검색하시려면 StackOverflow라고 입력해주세요. 주의하실 점은 사이트명은 대소문자를 따진다는 점입니다.
여러 프로그래밍 관련 도구들
또 RTFM봇에는 여러 프로그래밍 관련 도구들도 있습니다. 아스키 변환을 하거나 해쉬 함수 변환 등이 있죠.
문자를 아스키 코드로 : do ascii
do ascii <변환할 것>을 입력하여 문자를 아스키코드로 바꿉니다.
아스키 코드를 문자로 : do unascii
do unascii <변환할 것>을 입력하여 아스키 코드를 문자로 바꿉니다.
바이트 변환 : do byteconvert
o는 옥텟으로, 8비트를 뜻하며 1바이트(1B)와 같은 단위입니다. 그리고 단위가 하나 커질 때마다 2의 10승배가 늘어나죠. Tio는 TiB(테비바이트)와 같은 단위입니다. do byteconvert <숫자> [단위, 기본값 Mio]를 입력하여 돌리실 수 있습니다.
해쉬 변환 : do hash
do byteconvert <알고리즘> <내용>을 입력해 해쉬 알고리즘을 이용하여 변환을 시켜줍니다. 가능한 해쉬 알고리즘은 다음과 같습니다. blake2b, blake2s, md4, md5, md5-sha1, ripemd160, sha1, sha224, sha256, sha384, sha3_224, sha3_256, sha3_384, sha3_512, sha512, sha512_224, sha512_256, shake_128, shake_256, sm3, whirlpool
기타 명령어
이 외 환경설정과 같은 기타 명령어에 대해 설명합니다.
- do setprefix : 접두사를 바꿉니다.
- do info : 봇의 정보를 봅니다
- do help : 명령어 안내를 봅니다
- do ping : 봇에게 핑을 보냅니다.
마치며
지금까지 디코에서 코딩을 할 수 있는 놀라운 봇에 대해 알아봤습니다! 혹시 디스코드에서 할 수 있는 프로그래밍에 관련된 다른 사항들이 궁금하시면 아래를 한번 봐주세요!
또 언제든지 궁금한 내용이 있으면 댓글을 달아주시거나
화면 왼쪽 아래의 디스코드 아이콘을 누르면 실시간으로 답해드립니다!
(아이콘이 보이지 않는다면 에드 블록을 꺼주세요)
https://discord.link/feedbackblog
또 위 링크를 눌러 Feed & Back 서버에 들어오시면
블로그의 새 글을 알림 받고
디스코드, 디코 봇 프로그래밍에 대해 질문할 수 있어요!
'디스코드 봇 소개 > 기능봇' 카테고리의 다른 글
➗ MathBot - 수식을 표현하고 수학 문제를 풀어봅시다 (0) | 2022.01.23 |
---|---|
😀 미니쿠다 - 서버 이모지를 크게 키워봅시다! (1) | 2022.01.22 |
🗓️ Sesh - 디스코드 일정 봇 / 투표 봇! (1) | 2022.01.06 |
🔠 Discord Translator - 디코에서 손쉽게 번역하여 외국인과 대화해봅시다! (3) | 2021.07.05 |
📼 Craig - 디스코드 음성 채팅을 디코 봇으로 쉽게 녹음해 봅시다! (0) | 2021.04.15 |
댓글