FastAPI를 하면서 파이썬의 비동기 프로그래밍을 접해보았다. 하지만 정확한 이해 없이 마구잡이로 async를 하니, 속도가 오히려 떨어지는 상황을 겪게되는 경우가 있었다.
이러한 사태를 다시 겪지 않기 위해 기초부터 다시 찾아보기로 했다.
우선 둘의 차이점을 먼저 말하고 가는 것이 뒷부분을 이해하는데 편할 것 같다.
작업을 수행하는 2개 이상의 주체가 시작, 종료 시간을 서로 맞출 것인지?
작업 요청을 했을 때 요청의 결과값(return)을 직접 받는 것이다
def a():
# do something
return 1
def b():
# do something
return 2
def c():
# do something
return 3
def d():
# do something
return 4
def main():
print(a())
print(b())
print(c())
print(d())
# 1 2 3 4
호출한 함수가 작업 완료를 신경 쓴다. → 작업이 끝날때까지 기다린다.