데이터베이스 관련 개선안 정보
데이터베이스 관련 개선안본문
개요
- FastAPI문서에서 SQL 관련 문서가 곧 SQLAlchemy v2.0 기준으로 업데이트 된다는 설명을 보고 개선할 점을 전반적으로 파악함
- https://fastapi.tiangolo.com/tutorial/sql-databases/
개선안
1. ORM 연관관계
- 현재는 ORM 연관관계를 사용하지 않고 있음.
- ORM 연관관계를 사용하면 코드량 & Query 요청감소/속도증가 효과를 보일 것으로 예상됨
- 데이터베이스에 연관관계가 물리적으로 존재하지 않아도 사용이 가능함.
2. SQLAlchemy 표현식
- 현재 1.4버전의 표현식을 사용하고 있음. 2.0버전 부터는 현재 사용 중인
이 legacy 표현식으로 분류됨.db.query(model)
- https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.query
3. SQLModel
- FastAPI 에서 Pydantic과 SQLAlchemy를 기반으로 만들고 있는 SQL 라이브러리
- https://sqlmodel.tiangolo.com/
장점
- Pydantic과 SQLAlchmey를 동시에 사용할 수 있다. => 초기에 고민했던 모델 선언의 번거로움을 줄일 수 있다.
- Alembic을 활용한 데이터베이스 마이그레이션을 지원할 예정이다.
- https://sqlmodel.tiangolo.com/tutorial/fastapi/simple-hero-api/#the-sqlmodel-advantage
단점
- 개발이 진행 중이다.
- 기본적인 메뉴얼만 제공되고 있다. => 사용법을 익히는데 어려울 가능성이 있다.
결론
- ORM 연관관계는 초기에 적용해야 할 것으로 판단됨. (성능/코드)
- SQLModel의 도입과 함께 표현식도 변경하는 것이 좋다고 판단됨.
- 표현식을 변경하기 위해선 작업량이 많은 것으로 예상됨.
- SQLModel의 도입 시기를 잘 정해야 할 듯 하다..
추천
0
0
관련링크
90레벨 이상 댓글을 남길 수 있습니다.
댓글 0개