보면 DI 컨테이너 c에 등로갷서
lambda_:store_instance때문에 store 요청하는거라 사실 동일한 객체 반환
그래서, 참조가 람다함수에 '캡쳐' 되서 계속 사용 가능하고, 단일 인스턴스로 동작하는거
이게 훨씬 좋은구현이고 이건 일단 보통 한국에서는 잘 안쓰는 기술인데 저도 중국인한테 배운거
실제로 이를 함수형 클로저 캡쳐 사용한거라 사실 완전 캡쳐는 아니고, 상태 접근하는 것에 현재 캡쳐된 값을 전달하는거라 오히려 더 안정적임
왜냐하면 복수 에이전트를 그래프 노드로 연결하는게 프로젝트 최종 목표인데
이게 Vector_stored의 설정값이 달라야함 이유가 에이전트간의 연결에서 제가 봤던 논문에 따르면 특정 값이 잘맞고 안맞는 에이전트가 있어서
결국 이때문에 특정 값 캡쳐로 넘겨주면서 선언한 시점에서 주입하는 방식이 그래프 노드에 맞아서
따라서, 여러 객체의 다중 사용을 전제로 한 코드라서, 최종적으로는 일반적인 구현이랑 다른데, 전반적으로 이게 훨씬 아름다운 구현이라고 생각함
실제로는 싱글톤인 건 나도 앎 근데 그렇기 때문에 FastAPI가 그걸 관리해주지 못한다는 거임. 우회 싱글톤이라서 이게 싱글톤인지 모르니까. 그리고 다른 개발자들은 이것이 싱글톤임을 쉽게 알 수 없기 때문에 더더욱 문제가 됨 그니까 이 코드는 아무도 안 믿겠다. 그리고 너도 날 믿지 마라 식 코드인 거임 이렇게 코드를 짜면 뛰어난 개발자는 될 수 있어도 좋은 개발자는 못되지
근데 이게 fast api쪽에서 생명주기가 좀 달라서 이게 자바 코드랑 파이썬 프레임워크의 차이죠. 어쩔 수 없긴함. 사실 이부분은 순전히 개인차이라. 근데 나는 랭그래프 아이디어 얻어서 랭그래프 확장으로 만들려다 때려친거라<<돈이 없어서
오히려 DI주입이라고 사실 초기화부분에서 주입하는거라 이게 살짝 다른거. 사실 부트 스트래퍼를 따로 만들긴 해야하는데 그거는 나도 귀찮음
ㅇㅈ 개인차이이긴 하지
@에이도비 뭐 자바 개발자들이 들으면 학을 떼는데, 중요한건 이 차이 알정도면 대단하시긴한데, 솔직히 이건 전략적 선택이라. 어쩔 수가 없는듯. 결국 남이 쓸려면 차별점이 있어야하니까
@ㅆㅇㅆ(124.216) 딴소리긴 한데 이런 식의 개발은 팀 내 개발자 평균 실력이 높아야돼서 요즘엔 걍 서버를 더 만드는 식으로 개발을 하더라. 마이크로서비스, 마이크로프론트 등 해보니까 편하긴 했음
@ㅆㅇㅆ(124.216) 음... 아니 그건 너무 엔지니어적인 관점이지...
@에이도비 애초에 전 협업을 안하잖아요. 거의 외주 단기 납품이고
@ㅆㅇㅆ(124.216) 음... 대걸레 만드는 회사 중에 너무 잘 만들어서 망한 회사 얘기 들어봄? 10년 동안 고장 안나서 망했다던가... 엔지니어로서는 대단하지만 회사로서는 좀 그렇잖아. 웹 서비스의 경우도 그런 면이 있음. 서비스는 작고 단단할 수록 좋음. 엔지니어들은 지루해할지 몰라도 소비자들은 그걸 더 좋아해. 작고 단단하게 잘 만들면 투자가 들어오기 때문에 나중에라도 웅장하게 할 수 있잖아. 작게 만들면 안정성에 문제가 될 여지도 적지. 지금 플젝은 내 생각에 10분의 1정도로 구현할 수 있을 것 같음. 그리고 그것만으로도 다들 좋다고 쓸 것 같음 잘만든 프로젝트인데 아깝다
@에이도비 중요한건 재미라. 제가 에이도비님처럼 뭐 사업성 내는 사장이면 모를까. 중요한건 내 재미< 이게 중요한거죠. 사실 뭐 개인 단기 작품이라 크게 어려울게 있나 싶습니다. 돈이 있어야 계속하죠
@ㅆㅇㅆ(124.216) 항상 돈이 문제야 ㅋㅋ - dc App