본문 바로가기
반응형

분류 전체보기1074

SQLAlchemy - QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00 최근 작업요청이 많아지는 것 같더니, 다량의 호출로 인해 Database 접근 오류가 발생하였다. 오류내용은 다음과 같다. QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00 (Background on this error at: https://sqlalche.me/e/14/3o7r) Error Messages — SQLAlchemy 1.4 Documentation Previous: Third Party Integration Issues Next: Changes and Migration Up: Home On this page: Error Messages Connections and Transactions DBA.. 2024. 3. 25.
Python - GIL, 멀티 쓰레드(thread) vs 멀티 프로세스(multiprocessing, subprocess) Python 코드를 작성하다보면 시스템 I/O를 효과적으로 사용하는 병령 처리 프로세스를 고민하게된다.병렬 처리란, 특정 Task를 동시에 실행함으로써 순차적으로 처리하는 기본 처리 프로세스 보다 이점을 가져갈 수 있다.특히 HTTP와 같은 네트워크 요청이나 Disk등 시스템 자원을 사용하는 I/O 가 발생하는 경우 자원 I/O를 기다리지 않고 다른 Task로 실행할 수 있어 보다 효과적으로 프로세스를 처리할 수 있다.그렇다면 Python에는 어떤 방식으로 병렬처리를 진행해볼 수 있을까?필자가 생각하는 방안은 총 2가지 정도이다.멀티 쓰레드(thread)를 사용하는 방법과 멀티 프로세스(process)를 사용하는 방법이다.다만 이 멀티 쓰레드(thread)와 멀티 프로세스(process)를 시작하기 전에.. 2024. 3. 25.
Python - *args와 **kwargs 이해 파이썬은 참 편리한 언어이다. 여러가지 내부적으로 처리해주는 기능들이 있으면서도, 이러한 부분들이 개발자들이 사용하는데 크게 이질감이 있지 않다. 이렇게 개발자의 편의를 지원해주는 기능들을 매직 메소드라는 것이 있고, 그중에 *args와 **kwargs 역시 이러한 매직 메소드로 지원되는 기능인데 어떻게 활용 할 수 있는지에 대해서 간략히 정리해 본다. *args와 **kwargs 는 보다 쉽게 아스키로 표현된다고 할 수 있다. * 아스키 기호 하나: 값를 의미 ** 아스키 기호 두개: 사용하면 키가 있는 인자값을 의미 이 매직 메소드를 사용하기 유용한 곳은 어떠한 변수 값을 받을지 알 수 없는 경우에 여기에 값이 있는지를 확인해서 처리할 수 있기 때문에 유용하게 사용할 수 있다. *args(Arguem.. 2024. 3. 25.
Python - JSON 데이터 검색 및 불러오기(dumps, loads, items) >>> load_json_data.keys() >>> for json_key in load_json_data.keys(): ... print(load_json_data[json_key]) ... ('a', 'atest') ('b', ['{"b":"btest"}']) 최근에는 API간 통신을 JSON 형태로 진행하는 경우가 많은데, Python은 JSON 친화적인 언어라고 할 수 있다. Python에서 JSON을 어떻게 다루는지 간단히 알아보자. JSON 만들기(dumps) JSON 데이터를 생성하는 방법은 다음과 같이 중괄호를 이용하여 키를 지정하여 Value를 넣어주면 된다. >>> json_data = {} >>> json_data['a'] = 'atest' >>> json_data {'a': 'at.. 2024. 3. 25.
Python - Web Framework - Django, FastAPI 오늘은 Python Web Framework에서 많이 오르내리는 Django와 Fastapi에 대해서 간략히 비교해 보고자 한다. Django 2003년에 출시 되어 현재 가장 많은 인기를 누리고 있는 웹 프레임워크이다. Instagram, Youtube 에서도 사용중이라는 말 다했다. 장점 -Django는 보안부터 DRF(Django Rest Framework), ORM, 서드파티와의 연계 등 대부분의 기능 지원 -바로 사용할 수 있는 Migrate를 통한 편리한 admin패널 및 데이터베이스 제공 -거대한 커뮤니티와 상세한 문서 단점 -풀 프레임 워크를 지향하기 때문에 상대적으로 리소스 사이즈가 큰 편 -3.0 부터 ASGI(비동기 인터페이스)를 지원하지만 아직은 느린편 -Django ORM은 SQL.. 2024. 3. 25.
Python - FastAPI with CRUD application by pydantic FastAPI는 파이썬에서 사용할 수 있는 현재 가장 좋은 백엔드 프레임워크라고 할 수 있다. FastAPI는 다음과 같은 장점을 가지고 있다. 1. 각 함수는 비동기로 동작한다. 2. 백엔드를 작업하면 데이터 처리에 골치를 아픈 경우가 많다. FastAPI는 데이터 오류를 쉽게 처리할 수 있는 좋은 프레임워크 이다. Pydantic을 이용한 Json 값 오류를 쉽게 조치 할 수 있다. 세부적인 내용은 https://pydantic-docs.helpmanual.io/ 를 확인하기 바란다. 3. Swagger, Redoc를 기본적으로 제공한다 4. 파이썬에서 빠른 프레임 워크에 속한다. 아래 벤치마크 결과를 확인해보면, 다른 파이썬 웹 프레임워크 보다 휼륭한 속도를 가지고 있다. Round 19 resul.. 2024. 3. 25.
반응형