나도 걍 2달전에 짜두고 돈 안되서 버려둔거라 가물가물하지만 어차피 이건 뭐 어려운것도 아니고
Fast API자체가 의존성 함수또는 클래스를 사용하며 정의됨
이 과정에서 정의된 의존성은 요청된 시점에서 가져오고 그 핸들러의 인자를 가져옴
싱글톤도 이때 의존성을 주입하는 거대한 컨테이너로 쓸 수있지만
어차피 FastAPI에서는 람다 캡쳐해서 데이터 넣으면 FastAPI는 기본적으로 값이 변하지 않으면 첫 요청 이후 그 객체를 캐싱함
따라서 캐싱이라는 관점에서보면 첫 실행에서 차이가 있지, 2번째에서는 큰 차이가 없음
따라서 싱글톤이랑 내부적으로 거의 동일하게 흘러감.
문제는 이 관점에서 에이전트 병렬처리를 위한 에이전트의 노드화 하고 엣지(즉 해야할 작업 FLOW)를 만든다했을때 이때 싱글톤이면 힘들다.
에이전트는 독립적인 상태를 보장해야하는데, 싱글톤을 쓰면 싱글톤의 상태에 종속된다. 이게 병렬처리에서 싱글톤이 꺼려지는 이유고.
따라서 DI로 정확히 그 시점에서 주입하는게 훨 나은거
FastAPI 프레임워크의 문서를 읽고 그 안에서 그 철학을 존중하는게 맞음
프레임워크를 쓴다는 것은 그러한 것.
댓글 0