Loading...
2021. 4. 4. 12:52

[FastAPI] 9. Persistence Layer 구간을 비동기 처리 하는 방법

첫 포스트에서 우리는 FastAPI가 ASGI 기반의 uvicorn을 이용하여 uvloop에 기반한 비동기 처리로 API 요청과 응답을 비동기로 처리할 수 있다는 이야기를 하였습니다. 하지만 공교롭게도 Database Connection에서 이러한 기능을 지원해주지 않아 API 요청 단에는 비동기 처리가 가능하여도 DB에 액세스 하는 구간은 비동기 처리가 되지 않기 때문에 Blocking이 발생하고, 다음 요청이 계속 대기 되는 문제점을 가지고 있었습니다. Python DB API 그렇다면 파이썬은 어떤식으로 Database와 연결할 수 있는 것일까요? Java의 경우는 JDBC라는 Database Connector라는 것이 존재하여 애플리케이션과 Database 사이를 연결해주는 게 가능한데요. Pyt..

2020. 12. 27. 12:14

[FastAPI] 2. SQLAlchemy를 이용한 간단한 CRUD API 만들기

이번 글에서는 ORM에 대한 사용 방법에 대해 알아보도록 하겠습니다. ORM은 Object Relation Mapping의 약자로 객체를 이용해서 데이터베이스 Entity에 접근하는 방법입니다. 보통 애플리케이션 레벨에서 DB에 접근할 때는 데이터베이스 드라이버를 이용하여 SQL Query를 던져 실행하는 방법을 사용하지만 SQL Query는 소프트웨어 엔지니어에게 있어 러닝 커브를 증가 시키고, 소프트웨어 코드 가독성을 저하시키는 원인이 되었습니다. 하지만 ORM을 이용하면 기본적인 CRUD를 포함한 간단한 쿼리에 대해 SQL Query를 프로그래밍 코드에 질의하지 않아도 프로그래밍 코드 안에서 처리할 수 있는 이점을 얻을 수 있습니다. Python 언어에서의 대표적인 ORM 라이브러리로 SQLAlch..