파이썬은 기본적으로 싱글 쓰레드로 동작하기 때문에 I/O 작업의 경우에 비동기적으로 프로그래밍 하면 훨씬 효율적으로 application을 구현할 수 있다. 파이썬에서는 asyncio라는 라이브러리를 사용하여 비동기 프로그래밍을 할 수 있다.
async 키워드를 붙이면 코루틴 함수가 된다.EventLoop에 등록되어야 실행되기 때문에 await 키워드를 붙이거나 Future혹은 Task로 감싸서 실행시켜줘야 한다.await나 return으로 실행권을 EventLoop로 넘겨줘야, 다른 코루틴을 실행시킬 수 있다.await의 역할
- await 키워드 뒤에 있는 코루틴을 EventLoop에 등록한다.
- await을 호출한 주체(ex. main)이 코루틴이 끝나면 실행권을 다시 돌려받기를 기대하며 실행권을 EventLoop로 넘긴다.

await 이나 return을 만나면 실행권이 EventLoop로 넘어가고, EventLoop는 자신의 queue에 담긴 다른 코루틴을 실행시킨다.await으로 잠시 멈춘 코루틴은, await이 호출된 지점에서 멈춰있다가 다시 EventLoop로부터 실행될 때는 멈춰있던 지점부터 이어서 다시 실행된다.await로 실행시킬 때와 달리 실행권을 EventLoop로 넘기지 않으면서 바로 EventLoop에 등록시킨다.지금까지는 asyncio의 핵심 컴포넌트의 개념에 대해 살펴봤고, 다음 포스트에서 코드와 함께 살펴보자