Tagged

python

A collection of 8 posts

benchmark

uvicorn 0.16.0 성능문제

cloud 에서 uvicorn 으로 서비스 해야 하는 상황에서 어떤 구조로 서비스 하는게 효율이 좋을 지 고민 중에 다음과 같은 테스트를 진행했고 뜻밖의 상황을 기록해둔다. 테스트를 마친 지금 결론은 uvicorn 의 특정버전 문제가 아닌 듯 하다. uvicorn 이 worker 프로세스를 제어하는 방식(spawn)에서 파생된 문제로 보인다. (그렇다고 하기에도 워커가 1개일때도

python, db library benchmark (feat. sqlalchemy vs aiomysql)
benchmark

python, db library benchmark (feat. sqlalchemy vs aiomysql)

DB 라이브러리에서 동기처리 (sqlalchemy) 가 비동기처리 (aiomysql) 특성에 따라 어떤 차이가 있는 지 살펴봤다. 벤치마크 테스트는 Pool 을 구성하고 주요 옵션이나 기능의 차이를 살펴보고자 했다. 기본적으로 동기처리는 Pool 에서 하나씩 Connection을 사용하고 리턴하는 방식으로 처리 될 것이며, 비동기 처리는 비동기로 날라오는 요청들을 가능한 Pool 안의 Connection을 가져다 쓰고 리턴하는 방식을

FastAPI, CRUD API 개발을 위한 기록
python

FastAPI, CRUD API 개발을 위한 기록

API에 있어 기본이 되는 CRUD API 를 개발하며 FastAPI 에 적응하기 위한 기록을 남긴다. (adsbygoogle = window.adsbygoogle || []).push({}); 1. 환경세팅1) 프로젝트 생성poetry new appspoetry 를 통해 프로젝트를 생성하면 아래와 같은 구조를 갖게 된다. apps ├── pyproject.toml ├── README.rst ├── apps │ └── __init__.py └── tests ├── __init__.py └── test_apps.py2) 의존성 라이브러리 설치db는

benchmark

FastAPI (Python) vs Echo (Go)

단순 호기심에 동일 기능을 벤치마크 해봤다. 언어의 성격이나 장단이 다르니 동일한 조건의 테스트는 아니라고 생각된다. 다른 파이썬 라이브러리로도 벤치마크 해봐야겠지만, 결론적으로는 Go 로 작성된 echo 프레임웍이 RPS 면이나 응답속도로도 압도적으로 빨랐다. 1. Envapple m1 macbook air, osx v.11.6.2 bigsur, memory 16GB2.FastAPI (Python), MysqlDB 연동 API 1)

ASGI 웹 프레임워크 FastAPI  를 시작하며
python

ASGI 웹 프레임워크 FastAPI 를 시작하며

Python, Backend 를 시작하는 데 부족한 부분들을 정리해 보고자 한다. 1. Backend 구성 (feat. WSGI 와 ASGI)Python 의 일반적인 웹서비스에 아키텍쳐를 이해하기 위해 아래와 같은 그림을 그려봤다. 1) Web Server웹서버의 역할은 두개로 나누어 볼 수 있다. 정적인 요청의 서빙이나 Reverse Proxy를 이용하여 어플리케이션 서버로 동적인 요청을 전달하는 용도이다. (로드밸런싱의

Slicon M1 Mac에 Conda 가상환경 만들기 (feat. miniforge)
python

Slicon M1 Mac에 Conda 가상환경 만들기 (feat. miniforge)

conda는 주로 Python의 버전별 가상환경과 의존성이나 패키지를 관리하는 툴입니다. 간단하게 생각하면 패키지 매니저이면서 파이썬의 버전을 골라 설치 할 수도 있는 툴이라고 보면 된다. 대표적인 conda 환경을 만들어주는 프로그램은 Anaconda(anaconda 채널), miniconda(anaconda 채널), miniforge(conda-forge 커뮤니티 채널)가 있고, Anaconda는 5G 정도 되는 패키지를 동시에 설치하는 다소 무거운 환경을