본문 바로가기

전체 글62

[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.
linux hostname / 리눅스 호스트네임 (초안) linux의 호스트네임은 static, transient, pretty 세가지 종류가 있습니다. transient hostname 이중 linux kernel에서 인식하는 hostname이 transient 호스트네임으로 리눅스 커널의 파라미터로 메모리상에 존재합니다. 파라미터는 아래와 같이 확인 가능 # 커널 파라미터 조회 $ sysctl kernel.hostname # 커널 파일시스템을 통해서, 커널 파리미터 조회 $ cat /proc/sys/kernel/hostname 위 커널 파라미터를 직접 수정해서 transient 호스트네임을 변경할 수 있습니다. 흔히 hostname 변경을 위해 사용하는 명령어들도 transient hostname 변경을 위해서 내부적으로 위 커널 파리미터를 변경합니다. (.. 2023. 3. 27.
3. Linux(리눅스) 이해 - 프로그램 생명주기 단계 program lifecycle phase / runtime 런타임 프로그램은 하드웨어를 실행할 수 있는 일련의 코드 나열이며, 이런 프로그램을 어떻게 관리하고 어떤 환경에서 실행시킬지는 하드웨어에 따라 운영체제에 따라 달라질 수 있습니다. 위키피디아에서는 이런 개념을 Program lifecycle phase라고 소개하고 있고 현대 OS는 대부분 위키피디아의 내용과 유사한 구성을 이루고 있습니다. Computer Science와 흔히 it계열에서 말하는 runtime도 phase에 들어가는 개념입니다. (요즘 여러 상황에서 혼용되어 사용하지만 전반적인 의미는 유사함) https://en.wikipedia.org/wiki/Program_lifecycle_phase Program lifecycle phase - Wikipedia From Wikipedia, the free.. 2023. 3. 27.