asyncio - Asynchronous I/O - Python 3.10.7 documentation
async def로 만든 코루틴은 네이티브 코루틴이라고 합니다. 네이티브 코루틴을 호출하면 코루틴 객체가 생성됩니다.
awitawait 뒤에 코루틴 객체, 퓨처 객체, 태스크 객체를 지정하면 해당 객체가 끝날 때까지 기다린 뒤 결과를 반환합니다. await는 단어 뜻 그대로 특정 객체가 끝날 때까지 기다립니다.
await는 네이티브 코루틴 안에서만 사용할 수 있습니다. 코루틴 안에서 다른 코루틴을 실행할 때는 await를 사용합니다.
퓨처(asyncio.Future)는 미래에 할 일을 표현하는 클래스인데 할 일을 취소하거나 상태 확인, 완료 및 결과 설정에 사용합니다.
태스크(asyncio.Task)는 asyncio.Future의 파생 클래스이며 asyncio.Future의 기능과 실행할 코루틴의 객체를 포함하고 있습니다. 태스크는 코루틴의 실행을 취소하거나 상태 확인, 완료 및 결과 설정에 사용합니다. 이 부분은 내용이 다소 복잡하므로 이정도까지만 설명하겠습니다.