본문 바로가기

전체 글64

python3/파이썬 Mutable 객체 default 매개변수로 인한 버그, 객체 멤버 변수 값 변경 예전에도 할당한적 없는 값이 객체에 멤버 변수에 계속 할당되는 이슈가 있었는데, 오랫동안 잊고지내다 또 발생해서..원인 찾는데 삽질 시~원하게 해주고 다시는 반복하지 않기 위해서 포스팅까지 작성해봅니다  문제 배경fastapi 앱을 TestClient & 멀티 쓰레드 환경에서 테스트하던 중 계속 DB primary 중복 에러가 발생했다..조금 트랙킹을 해보니 서로 다른 http scope간 데이터가 엉키는 현상이 발견됬다.여러 Session 클래스와 멀티 쓰레드 환경이다보니 어디부터 잘못된건지..  하나씩 데이터를 추적하면서 좁혀가려고하는데 엉키는 시점이 매번 다르고 착잡하던 와중에 아무래도 Session 소켓 내에서 데이터가 꼬이는 현상은 절대 아닐거 같고 (설명에도 TestClient는 thread .. 2025. 3. 3.
[컴퓨터 사이언스] Big/Little Endian (feat. LSB, MSB, network byte order) 인사말요즘 공부를 너무 안해서.. 오랜만에 포스팅 올립니다최근 너무 오픈소스 프로그램을 통해 감사하게도 편하게 일을하다보니 어느 순간 내가 너무 바보가 되는게 아닌가 싶더라구요..그래서 틈날 때마다 시스템상 이미 공개된 포맷이나 데이터들을 직접 읽어오고 가공해보고있는데 학생 시절 공부하고 잊고있었던 엔디안 이슈가 ㅎㅎ..오랜만에 보니 헷갈리는 부분도 있고, 예전 공부할 때는 그냥 지나갔던 부분들에 의문도 생겨서 고찰하는 시간도 가져보고자 합니다~  ✔️ LSB, MSB란?컴퓨터/시스템(OS를 포함한) 구조에서 바이너리(이진) 숫자를 어떻게 표현하고 어떤 형식으로 다룰지는 끊이지 않는 논쟁이죠사람이 읽기 편하면, 컴퓨터가 불편하고.. 바이너리란 항상 그런 관계랄까.. 엔디안을 설명하기 앞서 유사한 개념인 .. 2025. 1. 28.
[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.