FastAPI를 하면서 파이썬의 비동기 프로그래밍을 접해보았다. 하지만 정확한 이해 없이 마구잡이로 async를 하니, 속도가 오히려 떨어지는 상황을 겪게되는 경우가 있었다.

이러한 사태를 다시 겪지 않기 위해 기초부터 다시 찾아보기로 했다.

동기/비동기 vs 블로킹/논블로킹

우선 둘의 차이점을 먼저 말하고 가는 것이 뒷부분을 이해하는데 편할 것 같다.

동기/비동기

블로킹/논블로킹

동기 vs 비동기

작업을 수행하는 2개 이상의 주체가 시작, 종료 시간을 서로 맞출 것인지?

동기

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/69e5a45e-4174-4a94-b2b6-8a7b4ae135d6/Untitled.png

비동기