Builder.shin
Python
142개의 게시물
Python
Python 딕셔너리 merge 연산자 대신 사용하던 방법들
Python 3.9의 merge 연산자가 나오기 전, 딕셔너리 병합을 위해 사용하던 여러 방법들을 정리했다. 상황에 따라 성능과 가독성이 달랐던 경험을 기록한다.
2019년 6월 7일
Python
Python 딕셔너리 병합, 3.5 이상에서 언패킹 연산자 활용
레거시 코드에서 딕셔너리를 병합하는 방식이 제각각이어서 통일된 방식을 찾아봤다. Python 3.5부터 지원하는 언패킹 연산자가 가장 직관적이고 간결했다.
2019년 5월 11일
Python
Python 비동기 처리 asyncio 실전 적용기
API 서버의 외부 호출 병목을 해결하기 위해 asyncio를 도입했다. requests 기반 동기 코드를 aiohttp로 전환하며 겪은 시행착오와 성능 개선 결과를 정리했다.
2019년 5월 10일
Python
Python 멀티프로세싱으로 이미지 리사이징 속도 개선
사용자가 업로드한 수천 장의 이미지를 리사이징하는 배치 작업이 너무 오래 걸려서 멀티프로세싱을 적용했다. CPU 코어를 활용해 처리 시간을 1/4로 단축했다.
2019년 4월 6일
Python
Python 비동기 처리 asyncio로 API 응답 속도 개선
레거시 크롤러를 asyncio로 리팩토링하면서 응답 속도를 4배 개선했다. 동기 처리에서 비동기로 전환하며 마주친 이슈들을 정리한다.
2019년 3월 20일
Python
Python 데코레이터로 API 응답 캐싱 처리하기
사내 데이터 API 서버에서 동일한 요청이 반복되면서 DB 부하가 증가하는 문제가 발생했다. 데코레이터 패턴을 활용해 간단한 캐싱 레이어를 구현하여 응답 시간을 평균 300ms에서 20ms로 개선했다.
2019년 2월 16일
Python
Python 딕셔너리 병합 시 성능 비교
여러 딕셔너리를 병합하는 작업이 잦은 API 응답 처리 로직에서 성능 이슈가 발생했다. Python 3.5+ 환경에서 사용 가능한 여러 병합 방식의 성능을 비교하고 적절한 방법을 선택했다.
2019년 2월 8일
Python
Django REST Framework에서 Serializer 중첩 처리하기
API 응답에서 관계된 모델 데이터를 함께 반환해야 하는 경우가 있다. DRF의 Serializer를 중첩해서 사용하면서 발생한 N+1 쿼리 문제와 해결 과정을 정리했다.
2019년 1월 16일
Python
Python 3.7 asyncio 기반 크롤러 성능 개선
동기 방식의 크롤러를 asyncio로 전환하면서 처리 속도를 5배 개선했다. aiohttp와 asyncio.gather를 활용한 동시성 처리 방법을 정리한다.
2019년 1월 1일
Python
Python asyncio로 API 호출 성능 개선하기
레거시 배치 작업에서 외부 API를 순차 호출하면서 발생한 성능 문제를 asyncio로 해결했다. 동기 방식 대비 약 10배 빠른 처리 속도를 확보할 수 있었다.
2018년 11월 10일
Previous
1
More pages
10
11
12
13
14
15
Next
카테고리