mingkeNov 7, 2024PostgreSQL JSON과 JSONB 데이터타입 알아보기PostgreSQL이나 MySQL 같은 RDBMS에서도 JSON과 같은 정형화되지 않은 데이터를 저장할 수 있습니다. 그것을 저장하기 위한 데이터 타입인 JSON 타입이 있습니다. 그리고 PostgreSQL에는 PostgreSQL의 고유한 타입인 JSONB 타입이 있습니다.PostgreSQLDjangoSQLAlchemy
mingkeMar 31, 2024SQLALCHEMY MYSQL UPSERT on_duplicate_key_update데이터가 존재하면 업데이트를 하고, 존재하지 않으면 데이터를 삽입하는 방법이 있습니다. 이것을 Upsert라고 부릅니다. 얼마전 사용할 일이 있어서 사용했는데, 블로그로도 한 번 공유 해볼까 합니다. 데이터베이스는 MySQL 기준으로 작성합니다.SQLAlchemy
mingkeMar 30, 2024SQLALCHEMY MYSQL DB INDEX 설정하기DB 인덱스와 관련해서는 주니어 이하의 면접에서도 많이 다뤄지는 주제라고 생각됩니다. 개인적으론 최근 치렀던 과제테스트와 면접에서도 다뤄졌던 내용인데요. 오늘은 이와 관련해서 블로그 포스팅을 해보려고합니다.SQLAlchemy
mingkeFeb 6, 2024SQLAlchemy 임시테이블 생성하기요구사항에 맞춰 개발을 하던 도중, IN 절에 데이터를 넣어 조회해야하는 케이스가 생겼습니다. 그런데, 그 숫자가 수만에서 수십만까지도 가능한 상황이라, 다른 방법이 필요했습니다. 여러가지 방법들 중 선택한 방법은 임시테이블을 만들어 조인하여 사용하는 것이었습니다.SQLAlchemy
mingkeJan 19, 2024SQLAlchemy - 기존 DB로 SQLAlchemy 모델 생성하기(feat.sqlacodegen)새 프로젝트에서 DB를 새로 만들고 migration할 땐 보통 alembic을 사용해서 테이블을 만들고 그것을 기반으로 SQLAlchemy model을 작성합니다. 하지만 DB가 기존에 만들어져 있는 경우는 그렇게 할 수 없죠. 오늘은 sqlacodegen 라이브러리로 기존 DB를 가져와서 SQLAlchemy Model을 생성하는 방법을 알아보려고 합니다.SQLAlchemy
mingkeJan 10, 2024SQLAlchemy ORM 속도 측정하기최근 FastAPI + Async SQLAlchemy 조합으로 백엔드 개발을 주로하고 있습니다. 며칠전까지 별 문제 없었는데 어제 API 응답 속도가 좀 느려진 것을 감지했습니다. 원인을 파악하던 도중에 ORM 속도를 측정봐야겠다고 생각했습니다. Async SQLAlchemy ORM의 Query를 실행하는데 걸리는 시간을 측정하는 데코레이터를 만들어보았습니다.PythonSQLAlchemy
mingkeNov 14, 2023sqlalchemy greenlet_spawn error 해결sqlalchemy.exc.StatementError (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been calledSQLAlchemy
mingkeNov 12, 2023FastAPI - Async SQLALCHEMY 테스트 환경 구축하기테스트 코드의 중요성은 두 말하면 입이 아픈데요. SQLAlchemy를 비동기로 사용하면 테스트 환경을 구축하는 방법도 달라집니다. 오늘은 Pytest를 이용해서 SQLAlchemy를 비동기로 테스트하는 환경 구축을 공부해보겠습니다.FastAPIPytestSQLAlchemy
mingkeNov 11, 2023FastAPI + Async SQLALCHEMY 사용하기최신 애플리케이션 개발에서 효율성과 확장성은 가장 중요한 요소입니다. 비동기를 지원하는 ORM은 이러한 목표를 달성하는 데 중요한 역할을 할 수 있습니다. 비동기 API를 지원하는 Python Framework(요즘 제가 제일 좋아하는)FastAPI를 사용할 때 적용한다면 더 큰 효과를 볼 수 있습니다.FastAPISQLAlchemy