본문 바로가기
반응형

Backend MLOps/Database3

Fastapi docs 무작정 따라하기 ORM 편 - 3 Main FastAPI app 이제 모든 파일을 통합해 보자. 나는 ./sql_app/main.py 로 만들지 않고 ./main.py 로 만들었다. 이렇게 하는 편이 다른 앱을 만들 때와 더 유사하다고 판단했기 때문이다. 우선 코드를 모두 적고 하나씩 분석해 보자. DB ionitialize 앞서 작성한 models.py에 있는 테이블들을 모두 생성한다. 그리고 그 모델들은 condition을 만족하는 engine에 연결된다. Dependency 서버에 여러 요청이 동시에 들어온다고 가정해보면 각각의 요청에 따라 DB의 로컬세션을 생성하고 요청에 맞는 작업을 수행 한 후 세션을 커밋하고 닫는 일련의 작업이 필요하다. 즉 어떤 메소드가 수행되기 전과 후에 DB를 열고 닫는 데코레이터같은 기능이 필요한데 이.. 2022. 6. 7.
Fastapi docs 무작정 따라하기 ORM 편 - 2 Create the Pydantic models 이전 포스팅에서 SQLAlchemy의 models를 구성하고 제작하는 방식을 알아보았다. 그리고 언급한 부분이 pydantic의 model과 sqlalchemy의 model이 다르므로 혼동해서는 안된다는 내용이었다. pydantic은 데이터 검증을 위해 사용하는 툴로 타입 힌트를 이용해 데이터의 타입을 명시하고 그에 맞지 않는 데이터가 발견되면 에러를 발생시켜 데이터의 형태를 강제하는 용도로 사용한다. api를 이용한 io 테스크가 많은 백엔드 작업시에 굉장히 유용한 툴이다. io 작업에서는 직렬화된 데이터를 주고 받는 작업이 대부분인데 pydantic은 이 직렬화된 데이터를 파싱해주는 툴이기 때문이다. 그래서 만약 파싱이 불가능한 데이터는 에러를 발생시키.. 2022. 6. 6.
Fastapi docs 무작정 따라하기 ORM 편 - 1 시작하기 Fastapi에서는 파이썬으로 제공되는 어떤 방식의 DB도 사용이 가능하다. DB는 서버에서 발생하는 io 작업이므로 서버 성능에 큰 영향을 주게 된다. 따라서 Fasapi의 공식 문서를 무작정 따라가면서 어떤 방식을 권장하는지 알아보자. 여기에 의존하여 작성된 문서임을 밝힌다. ORM 서버에서 DB를 사용하는 방법은 크게 두가지가 있다. 하나는 쿼리문을 직접 작성하여 DB로 날리는 방식이고 다른 하나는 DB의 Table에 mapping 할 수 있는 형태의 객체를 만들어서 관리하는 방식이다. 후자의 이름이 바로 ORM인데 지금까지 나는 쿼리를 직접 작성하는 방식에 익숙해 있어 ORM을 많이 활용하지 않았다. 하지만 비동기 처리나 컨테이너를 올리고 내리는 작업에서 쿼리를 직접 작성해 execute.. 2022. 6. 3.
반응형