FastAPI 백그라운드 태스크는 진정한 비동기인가? 서버 종료 시 살아남는가?
FastAPI 백그라운드 태스크를 코드에 추가해 두고 "비동기로 동작하니 메인 앱에는 영향이 없을 것이고, 서버를 재시작해도 끝까지 처리될 것"이라고 가정한 적이 있는가? 나 역시 그러했다. 그러나 운영 환경에서 한 번 장애가 발생한 뒤에야 진실을 깨달았다. 이것은 별도 프로세스가 아니다. 동일한 앱 내부에서 동작한다. 메인이 종료되면 함께 종료된다. 이 글에서 정리할 내용은 다음과 같다. FastAPI 공식 문서와 Starlette 소스를 분석하여 BackgroundTasks가 실제로 어디에서 실행되는지, Ctrl+C / SIGKILL / --reload / 멀티 워커 시나리오별로 진행 중인 작업이 어떻게 처리되는지, 그리고 언제 BackgroundTasks를 사용하고 언제 Celery로 이전해야 하는..
Backend
2026. 4. 28. 22:18
