dependency-injector (4) 썸네일형 리스트형 [FastAPI] Depands와 Dependency-injector DI 비교해보기 HTML 삽입 미리보기할 수 없는 소스 개요 최근에는 SQLAlchemy의 session을 이용해 프로젝트 구조를 잡는 편이다. FastAPI가 구동되는 단계에서 DI를 이용해 전역적으로 사용할 Session을 설정하는 방식으로 구성하는데 크게 3가지 정도의 방법을 이용해 Session DI를 구성할 수 있었다. SQLAlchemy의 Session으로 DI를 사용할 경우 어떤 식으로 DI를 시도했는지에 대한 내용 정리와 각 구성별 LoadTest 결과를 기록하려 한다. 테스트 셋업 FastAPI에서는 Too Many Open File 이슈가 발생할 수 있다. ulimit 설정은 soft 설정을 5012 정도로 잡았다. locust를 이용해 테스트를 진행했으며 RPS 가 어느 경우에 더 높은 지를 보는 게.. dependency-Injector로 Repository Pattern 사용하기 HTML 삽입 미리보기할 수 없는 소스 1. 개요 어떤 API를 만들던 웬만해서는 repository pattern을 사용하고 있는 중이다. 처음엔 장단점을 의식하면서 사용했지만 지금은 익숙해서 그런지 별로 신경을 쓰고 있지 않는다. 최근 진행하고 있는 프로젝트에도 repositoy pattern을 사용하고 있으며 이와 더불어 "dependency-injector"라는 라이브러리도 같이 사용 중이다. 그러나 처음에 depenencey-injector와 함께 repository pattern을 같이 사용하는 것에 어려움이 많았는데 그 당시 했던 고민을 따로 기록해두지 않아 이번 기회에 이 내용을 정리해 보고자 한다. 2. Repository를 DI 해보자. Repository Pattern에 depende.. [SQLAlchemy] dependency-injector로 SQLAlchemy Session 다루기 HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI에서 SQLAlchemy Session을 사용하는 예제들을 살펴보면, 주로 contextmanager를 활용한 방법들이 계속해서 등장한다. 이러한 예제들은 주로 FastAPI에서 제공하는 Depands 함수를 이용하여 Dependency Injector를 구현한 형태이다. 그러나 "dependency-injector"라는 DI 라이브러리를 통해서도 DI를 사용할 수 있는데 이 글에서는 “dependency-injector”를 이용해 SQLAlchemy Session을 FastAPI에서 사용한 방법을 기술하려 한다. dependency-injector library 객체 지향 언어에서 뜻하는 의존성 주입은 꽤나 포괄적이고 그 내용도 심오하지만 기본적.. [FastAPI] DI는 bootstrapping을 생각해보기 HTML 삽입 미리보기할 수 없는 소스 이 글의 DI는 의존성 주입(Dependecny injection)을 의미한다. 개요 FastAPI는 Django와 Flask랑 확연이 차이가 있다는 지점을 느낀 부분이 DI이다. FastAPI의 DI를 사용할 수도 있으며 dependency-injector라는 라이브러리를 이용해서 DI를 사용할 수도 있다. 이 글은 FastAPI의 dependency-injector라는 라이브러리를 적용하기 위해 고민했던 흔적을 남긴다. 1. 부트스트래핑과 DI dependency-injector를 적용하기 위해 먼저 고민했던 것은 DI의 시작점을 어떻게 가져갈 것인지에 대한 부분이었다. django에서는 settings.py라는 것을 통해 간접적으로 드러나는데 FastAPI로 .. 이전 1 다음