Builder.shin
Python
142개의 게시물
Python
Python 비동기 작업 큐에서 메모리 누수 추적하기
Celery로 구현한 이미지 처리 워커에서 메모리가 계속 증가하는 문제가 발생했다. tracemalloc과 objgraph를 활용해 원인을 찾고 해결한 과정을 기록했다.
2023년 7월 23일
Python
Python asyncio로 API 호출 속도 개선하기
레거시 배치 작업에서 순차적으로 처리하던 외부 API 호출을 asyncio로 전환했다. 실행 시간이 12분에서 2분으로 줄어들었고, 코드 구조도 깔끔해졌다.
2023년 6월 26일
Python
Python 비동기 처리에서 asyncio.gather()와 as_completed() 선택 기준
API 크롤러 리팩토링 중 asyncio.gather()와 as_completed()의 차이를 정확히 파악하게 됐다. 결과 순서 보장 여부와 메모리 효율성 측면에서 명확한 차이가 있었고, 각 상황에 맞는 선택 기준을 정리했다.
2023년 6월 23일
Python
FastAPI에서 Pydantic V2 마이그레이션 대응하기
Pydantic V2 베타가 출시되면서 FastAPI 프로젝트에서 호환성 문제가 발생했다. 당장 마이그레이션은 어려워 V1으로 고정하고, 주요 변경사항을 미리 파악해두었다.
2023년 5월 28일
Python
FastAPI 비동기 처리 중 DB 커넥션 풀 고갈 이슈
FastAPI로 마이그레이션 후 트래픽 증가 시 DB 커넥션 풀 고갈 현상이 발생했다. SQLAlchemy의 비동기 엔진 설정과 커넥션 라이프사이클 관리를 통해 해결한 과정을 기록한다.
2023년 5월 20일
Python
FastAPI에서 Pydantic V2 마이그레이션 준비
Pydantic V2 베타가 공개되면서 기존 FastAPI 프로젝트의 마이그레이션을 검토했다. 주요 변경사항과 Breaking Changes를 정리하고, 단계적 마이그레이션 전략을 수립했다.
2023년 5월 10일
Python
FastAPI에서 비동기 DB 쿼리 성능 개선
FastAPI 프로젝트에서 SQLAlchemy의 비동기 세션을 도입하면서 발생한 성능 이슈를 해결했다. 동기 방식 대비 약 3배의 처리량 개선을 확인했다.
2023년 4월 14일
Python
Python 비동기 처리에서 asyncio.gather 대신 TaskGroup 사용하기
API 병렬 호출 로직을 asyncio.gather로 구현했다가 예외 처리가 복잡해지는 문제를 겪었다. Python 3.11의 TaskGroup을 도입해 더 명확한 에러 핸들링을 구현한 과정을 정리했다.
2023년 3월 22일
Python
FastAPI에서 Pydantic V2 마이그레이션 준비
Pydantic V2 베타가 공개되면서 기존 FastAPI 프로젝트의 마이그레이션을 검토했다. 주요 변경사항과 당장 적용 가능한 코드 개선 방향을 정리했다.
2023년 3월 1일
Python
Python 비동기 작업에서 asyncio.gather의 예외 처리
여러 API를 동시에 호출하는 배치 작업에서 일부 요청이 실패해도 전체가 중단되는 문제가 있었다. asyncio.gather의 return_exceptions 파라미터로 해결했다.
2023년 2월 14일
Previous
1
2
3
4
5
6
More pages
15
Next
카테고리