<aside> 💡 tempfile.SpooledTemporaryFile을 래핑한 Starlette 객체로, 클라이언트 요청에 담긴 파일을 전달 받을 수 있다.

</aside>

<aside> 💡 파일의 총 크기가 커질 수록 foreground에서 S3 저장까지 수행하게 되면 소요시간이 너무 길어 백그라운드에서 진행

</aside>

이슈1 : 백그라운드 태스크에서 처리 시도 한 경우 파일에 더 이상 접근할 수 없었다

이슈2: fastapi BackgroundTasks 사용 시 db 쓰기 작업 미작동

PDF 업로드 개선 방안 (TODO)

  1. 스레드 풀을 매번 생성하지 않고 기본 ThreadPoolExecutor 스레드 수를 조절하여 재사용 [vs asyncioloop.run_in_executor() ](https://fortune-lark-b0d.notion.site/vs-asyncio-loop-run_in_executor-11b1bf6ebbe581dfb343e7ff9c77439a)
  2. python streaming-form-data 라이브러리 활용 스트리밍 (참고)
  3. s3 multipart upload
  4. 파일 업로드 서버 분리