비동기 프로그래밍은 대기시간을 낭비하지 않고, 그 시간에 CPU가 다른 처리를 할 수 있도록 코드를 구성한다.
파이썬은 동기방식이라 비동기 함수 선언 시 특정 키워드 입력해 줘야 한다. Node 개발하면서 많이 봤던 async/await을 여기서 쓴다.
명령어를 받아 메세지를 전송하는 작업은 디스코드의 API와 연동을 해야 하기 때문에 비동기 함수로 구현된다.
@client.command(name='ping') #명령어 등록
async def _ping(ctx): #ctx는 context의 줄임말로, 메세지의 문맥
await ctx.send("pong!") #명령어가 전송된 위치에 메세지 전송
@app.command()
async def follow(ctx, arg):
await ctx.send(arg)
ctx는 discord.ext.commands.Context 클래스 객체를 뜻한다. 모든 명령어의 첫 번째 인자로 이 클래스 객체가 전달되기 때문에 항상 첫 번째 매개변수로 ctx를 추가해야 한다.
@app.command(aliases=['따라하기', 'f'])
async def follow(ctx, arg):
await ctx.send(arg)

귀,,,귀엽당