본문 바로가기
728x90
SMALL

API5

동일 API 호출에 대한 처리 방법(feat. asyncio) 1. 글을 쓰게 된 계기 동일 API를 호출하는 경우들이 굉장히 많다. 현재 상황은 다음과 같다. API요청이 들어왔을 때 해당 API에서 동작되는 함수들이 실행되고 최종적으로는 해당 결과가 db에 저장되도록 되어있다. 여기서 불필요한 API호출를 방지하기 위해 1. db에 있는 경우 함수가 작동되지 않도록 했다. 2. 함수가 작동되고 있는 경우 (기존과 동일한 요청에서 대해서) 함수가 작동되지 않도록 했다. 내가 글을 작성하는 내용은 2번의 상황을 해결하는 것이다. 2. 해결 방법 간단하게 asyncio.Lock()을 사용하면 해결할 수 있다. emailUid_locks = {} # emailUid = "test1234" if emailUid in emailUid_locks: logging.info(f.. 2023. 9. 5.
[FastAPI] FastAPI와 DB(MySQL) 연결하기 1. 이 글의 목표 이미 존재하는 별도의 MySQL DB를 FastAPI에서 ORM을 이용해서 가져올 수 있다. 2. FastAPI와 MySQL(DB) 연결하기 - 디렉터리 구조 . ├── app.py ├── models.py └── database.py - 필요 모듈 설치 pip install fastapi pip install pydantic pip install SQLAlchemy pip install mysql - database.py : 기존에 존재하는 database를 sqlalchemy를 이용해 연결해주는 파일 from sqlalchemy import * from sqlalchemy.orm import sessionmaker DB_URL = 'mysql+pymysql://{USERNAME}:.. 2022. 11. 30.
ORM vs SQL Mapper 1. 글을 작성하게 된 이유 Rest API를 만들면서 생겨난 이슈사항이다. FastAPI를 이용해 request가 왔을 때 response를 해주는 Rest API를 만들고 있었다. response를 위해서는 기존에 만들어진 db(mysql)에서 데이터를 가져와 미리 만들어진 분석 코드를 실행시켜 데이터 분석 결과를 결과값으로 응답해주어야 했다. 이때 기존에 만들어진 db에서 데이터를 어떻게 가져와야 할까 라는 고민이 생겼다. ORM이 좋은 방법일까 아니면 SQL Mapper가 좋은 방법일까 장단점에 대해 비교해보자. 2. ORM vs SQL Mapper ORM 이란? ORM(Object-relational mapping)을 단순하게 표현하면 객체와 관계와의 설정이라 할 수 있다. OOP(Object .. 2022. 11. 5.
[FastAPI] FastAPI를 이용한 서버 구축 1. 글을 쓰게 된 계기 앞에 포스팅에서 FastAPI를 쓰게 된 이유를 나열했다. FastAPI 간단 요약 특징들 빠름 : NodeJS 및 Go 와 동등한 매우 높은 성능 (Starlette 및 Pydantic 덕분에). 사용 가능한 가장 빠른 Python 프레임워크 중 하나입니다. 빠른 코딩 : 기능 개발 속도를 약 200%~300% 증가시킵니다. 버그 감소 : 인간(개발자)이 유발하는 오류의 약 40%를 줄입니다. 직관적 : 훌륭한 편집기 지원. 어디서나 완성 . 디버깅 시간이 적습니다. Easy : 사용하고 배우기 쉽도록 설계되었습니다. 문서를 읽는 시간이 줄어듭니다. Short : 코드 중복을 최소화합니다. 각 매개변수 선언의 여러 기능. 버그가 적습니다. 강력함 : 프로덕션 준비 코드를 가져옵.. 2022. 10. 24.
Python FastAPI, docker-compose로 구축하기 1. 작성하게 된 이유 나는 기존에 django 혹은 flask를 이용해 api를 구축하곤 했었다. 그러나 FastAPI가 파이썬 웹 프레임워크의 새로운 트렌드로 자리 잡고 있고 Flask를 사용하던 조직들은 FastAPI로 옮겨가고, 요즘 대세는 fastapi라고 한다. 물론 Google Trends를 봐도 아직 Django와 Flask가 압도적인 추세이긴 하다. 그런데도 왜 대세이고 FastAPI를 쓰는 것일까? FastAPI는 python 3.6+ 버전으로 API를 빌드하는데 도움이 되는 현대적인 프레임워크이다. 가장 빠른 파이썬 프레임워크 중 하나로 간주되며, 개발자가 유발하는 버그가 적고 빠르게 개발할 수 있다는 장점이 있다. (장점 : 빠른 개발, 버그 감소, 높고 빠른 성능) 구축 사례 : .. 2022. 10. 24.
728x90
LIST