인프런 커뮤니티 질문&답변

유준모님의 프로필 이미지
유준모

작성한 질문수

실전! FastAPI 입문

(실습) 회원가입 알림 - Background Task

BackgroundTask 인자값 전달

해결된 질문

작성

·

173

1

안녕하세요 강사님 강의 재밌게 잘보고 있습니다

BackGround task 강의에서 궁금한게 생겨서 질문 남깁니다.

 

아래는 verify_otp_handler 의 선언부인데

def verify_otp_handler(

request : VerifyOTPRequest,

background_tasks : BackGroundTasks

... )

backgound_tasks 라는 객체는 DI로 받지도 않고 있는데 어떻게 함수 내부에서 사용될 수 있는지가 궁금합니다.

request 라는 객체는 request 헤더부에서 넘어온 값이 프레임워크에 의해서 VerifyOTPRequest로 전처리되거라 어디서부터 왔는지 그 출처를 알겠지만,

backgound_tasks는 DI도 되지 않았고 헤더부에서 넘어온 것도 아닌데 어떻게 생성된건지 궁금합니다.

답변 1

1

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요. FastAPI는 서버가 동작할 때 router에 연결된 함수의 signautre를 분석하는 과정을 거치는데요. 이 때 parameter에 적힌 type hint에 따라 해당 parameter에 어떤 값을 전달할지 결정됩니다. 따라서 BackGroundTasks라고 type hints를 적어주게 되면, FastAPI에 의해서 background_tasks 객체가 주입됩니다. (FastAPI 코드 보기)

유준모님의 프로필 이미지
유준모

작성한 질문수

질문하기