본문 바로가기
디스코드 봇 소개/기능봇

💽 RTFM - 디코에서 프로그래밍 언어를 실행하고 결과를 확인해봅시다!

by 뒬탕 2022. 1. 12.
반응형

디스코드에서 코드를 돌려 프로그래밍 연습을 해봅시다

 

RTFM 봇은 디스코드에 코드를 입력하면 실행시킨 후 결과를 알려주는 봇입니다! 또 여러 프로그래밍 관련 문서들을 쉽게 볼 수 있지요. 그리고 텍스트-ascii 변환을 하거나 해쉬 알고리즘을 돌려보는 등 프로그래머에게 여러모로 유용한 디코 봇입니다! 이제 이 봇을 자신의 디코 서버에 초대해 다른 사람들과 함께 프로그래밍 공부를 해 봅시다.

 

사족으로 RTFM은 read the fucking manual의 약자입니다.

 

RTFM 봇 초대하기

https://discordapp.com/api/oauth2/authorize?client_id=495914599531675648&permissions=379968&scope=bot 

 

 위 링크를 클릭한 후, 초대하고 싶은 서버를 선택해주시면 됩니다! 만약 봇을 별로 써보지 않아서 봇을 초대하는 법이 익숙하지 않으신다면, 아래 링크를 클릭해 글을 봐주세요.

 

🤖 디스코드 봇들을 찾고 서버에 초대하는 법에 대해 알아봅시다.

 

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개(```)를 감싸고 싶은 코드 양 끝에 붙여주시면 만들어집니다. 언어명과 코드블럭 사이는 띄어쓰기 또는 엔터로 구분해주시면 됩니다.

 디스코드에서 코드블럭을 쓰는 더 자세한 법에 대해선 아래 글을 참고해주세요.

 

 

[💻개발용] 디스코드에서 코드블럭과 파일로 보기 쉽게 코드를 공유해봅시다!

디스코드에서 코드블록과 파일로 한눈에 보기 좋게 코드를 공유해봅시다  프로그래밍에 대한 관심이 커짐에 따라 디스코드에서도 코드가 공유되는 일이 많아졌습니다. 주로 질문할 때 많이 적

discordbot.tistory.com

 

코드블럭 안에 언어명 명시하기

📥 입력

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 : 봇에게 핑을 보냅니다.

 

마치며

 

지금까지 디코에서 코딩을 할 수 있는 놀라운 봇에 대해 알아봤습니다! 혹시 디스코드에서 할 수 있는 프로그래밍에 관련된 다른 사항들이 궁금하시면 아래를 한번 봐주세요!

 

 

[💻개발용] 디스코드에서 코드블럭과 파일로 보기 쉽게 코드를 공유해봅시다!

디스코드에서 코드블록과 파일로 한눈에 보기 좋게 코드를 공유해봅시다  프로그래밍에 대한 관심이 커짐에 따라 디스코드에서도 코드가 공유되는 일이 많아졌습니다. 주로 질문할 때 많이 적

discordbot.tistory.com

 

 

⚓ 디스코드 채널과 연동된 웹훅을 만들고 관리해봅시다

디스코드 웹훅 설정을 해봅시다  웹훅이란 어떤 일이 수행되면 수행된 쪽에서 해당 일이 수행됐음을 알려주는 것입니다. 디스코드 채널에 웹훅을 설정하여 새 글들을 디스코드로 알림 받아봅

discordbot.tistory.com

 

또 언제든지 궁금한 내용이 있으면 댓글을 달아주시거나
화면 왼쪽 아래의 디스코드 아이콘을 누르면 실시간으로 답해드립니다!
(아이콘이 보이지 않는다면 에드 블록을 꺼주세요)

https://discord.link/feedbackblog

또 위 링크를 눌러 Feed & Back 서버에 들어오시면
블로그의 새 글을 알림 받고
디스코드, 디코 봇 프로그래밍에 대해 질문할 수 있어요!
반응형
그리드형

댓글