본문 바로가기

Python9

[Fast API][Starlette] keepalive request(요청) 지연 현상 / background tasks / slow request Fast API는 python3 ASGI WAS 프레임워크입니다. 흔히 웹서버로 uvicorn을 사용하고있습니다. 이번 포스팅은 client > proxy(i.g. nginx) > uvicorn > Fast API 통신과정에서 uvicorn까지 트래픽이 들어왔지만 Fast API의 미들웨어에 인입 로그도 찍히지 않고 request가 지연되는 현상에 대한 트러블슈팅입니다. 이슈 확인 1. background task 기능을 포함한 API를 호출후, 다음 API 요청이 간헐적으로 매우 느림(오지 않음) 2. Fast API의 미들웨어 로그상 아무런 요청/인입이 없음 3. background task가 완료되면 요청이 들어옴 원인 1. Keep-alive 유지 매번 발생하는 이슈가 아니여서 원인을 찾는게 쉽지.. 2023. 7. 17.
pypi / pip / 파이썬 패키지 해킹 악성코드 pypi(pip), npm 과 같은 방대한 오픈소스 패키지 저장소의 안전성에 대해서 생각은 해봤지만 깊게 고민해보지는 않고 살던 찰나 유튜브 알고리즘에 관련 영상을 보고 머리속으로만 생각하던 일들을 실천해야겠다고 생각들었다.. > 본 포스팅은 python 생태계에 대해서만 자세하게 다룹니다. (npm은 몰라여~) 유튭 출처: https://www.youtube.com/watch?v=DjfpcmK62ew 요약 해당 영상은 pypi(pip), npm 과 같은 방대한 오픈소스 패키지 생태계에서 악의적인 코드 혹은 의존성으로 생기는 문제들을 이야기하고 있다. ## Left-pad - 11줄의 코드로 구성된, 텍스트 문자의 왼쪽에 패딩을 넣어주는 패키지 - 수 많은 패키지들이 left-pad를 사용하고 있었고, .. 2023. 5. 1.
pyinstaller, bootloader는 무엇인가? pyinstaller는 무엇인가? python3는 현대 대표적인 인터프리터 언어로 작성(개발)된 프로그램을 실행시키기 위해서는 개발 환경과 동일하거나 호환 가능한 버전의 인터프리터 프로그램과 개발하면서 사용한 파이썬 패키지가 추가로 필요합니다. pyinstaller는 다른 컴퓨팅 시스템에서도 파이썬 프로그램을 쉽게 배포할 수 있도록 실행에 필요한 모든 것들을 "패키징" 합니다. pyinstaller는 CPU가 바로 이해할 수 있는 기계어로의 "컴파일"이 아닌 실행 환경의 "패키징"임을 명심해야합니다. 그렇기 때문에 인터프리터 언어로서 실행 속도 개선을 기대할 수 없습니다. 파이썬의 실행속도를 개선하고 싶은 경우, cython등을 사용해서 속도 개선을 원하는 모듈, 로직등은 컴파일언어로 작성후 공유 라이브.. 2023. 1. 24.
FastAPI can not use request body in middleware / 미들웨어에서 request body 사용 불가 / FastAPI(starlette) AGSI flow starlette는 경량 ASGI를 구현할 수 있는 웹프레임워크이며, FastAPI는 starlette를 wraping하여 http 서비스(웹 혹은 API)를 간단하게 만들 수 있는 웹프레임워크입니다. https://www.starlette.io/ Starlette ✨ The little ASGI framework that shines. ✨ Introduction Starlette is a lightweight ASGI framework/toolkit, which is ideal for building async web services in Python. It is production-ready, and gives you the following: A lightweight, low-complexity H.. 2022. 4. 10.