Show GN: FastAPI Base Repository 라이브러리

1 hour ago 1

ORM 기반의 CRUD 구현에서 반복되는 쿼리 코드가 계속 쌓입니다.
저희 팀에서도 모델마다 비슷한 패턴의 보일러플레이트가 늘어나고 있었고,
SQLAlchemy v2 스타일과 타입 안정성, Pydantic v2 스키마 매핑까지 모두 만족하는 라이브러리를 찾기는 어렵더군요.

그래서 이번 기회에 SQLAlchemy CRUD 보일러플레이트를 줄이기 위한
간단한 Repository 레이어를 라이브러리로 정리해보았습니다.

  • 제네릭 기반으로 Model, Schema를 지정하면 CRUD가 자동 제공되고
  • mypy에서 결과 타입을 정확하게 추론하도록 오버로드도 구성했고
  • 필요한 경우 Mapper만 교체해 다양한 스키마 전략을 적용할 수 있습니다.

저희 팀에서는 이걸 통해 SQLAlchemy CRUD 코드량을 꽤 줄일 수 있었습니다.
비슷한 문제를 겪고 계신 분이 있다면 참고해보시고,
사용하면서 느끼신 점을 알려주시면 적극 반영해보겠습니다.

링크: https://github.com/4jades/base-repository

Read Entire Article