asyncio 병렬 호출로 외부 API 응답 시간 개선 경험
팀 프로젝트에서 I/O 집약적인 외부 API 호출이 많은 서비스를 만들다가 비동기 서버 프레임워크를 처음 도입했습니다. 동기 방식일 때 요청마다 스레드가 블로킹되면서 동시 요청이 늘어나자 응답 시간이 크게 나빠졌습니다. FastAPI와 파이썬의 asyncio를 결합해 여러 외부 호출을 동시에 발사하고 모두 완료되면 응답을 조합하는 방식으로 바꿨더니, 외부 API 세 곳을 순차 호출하던 2.4초가 0.9초로 줄었습니다.
비동기 코드에서 가장 주의할 점은 CPU 바운드 작업을 async 함수 안에 넣으면 이벤트 루프 전체가 멈춘다는 것이었는데, 이 함정을 한 번 겪은 뒤 작업 성격을 I/O와 CPU 바운드로 먼저 분류하는 습관이 생겼습니다. 지금도 비동기 코드를 설계할 때 블로킹 경로를 먼저 찾는 것부터 시작합니다.