Python/성능
-
Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
비동기 프로그래밍의 마법: asyncio.gather()로 데이터베이스 쿼리 최적화하기Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
2024.08.13 -
성능에 대해서는 프로그램을 만들고 나서나 기능 개발이 완료되고 나서나 작동이 잘되는것을 확인했는데 속도가 아쉽다면 항상 고민을 하게 됩니다.우리는 더 나은 품질에 빠릿빠릿한 프로그램을 원하니까요!프로그램이 원할하게 돌아가게 하기 위해선 Frontend에서의 부드러움도 중요하지만 그만큼 Backend 및 자동화를 위한 스크립트에서도 빠른 속도가 바쳐줘야 합니다. 이글은 제가 많은 시도 끝에 성능을 올려본 방법론중에 하나이며 스스로도 추후에 참고하고 싶어 기록을 남겨봅니다.속도가 문제가 되는곳에는 그만큼 거대한 연산작업이 있다는것입니다. 그 거대한 연산작업을 기다리지 않고 병렬로 처리한다면 사용자는 우선적으로 결과값을 바로 받을 수 있어 사용성에 부드러움을 느낄 수 있습니다. 그 병렬처리를 위해 동시프로그래..
(Python 성능 향상) concurrent.futures 동시 프로그래밍 모듈로 속도 개선해보자!성능에 대해서는 프로그램을 만들고 나서나 기능 개발이 완료되고 나서나 작동이 잘되는것을 확인했는데 속도가 아쉽다면 항상 고민을 하게 됩니다.우리는 더 나은 품질에 빠릿빠릿한 프로그램을 원하니까요!프로그램이 원할하게 돌아가게 하기 위해선 Frontend에서의 부드러움도 중요하지만 그만큼 Backend 및 자동화를 위한 스크립트에서도 빠른 속도가 바쳐줘야 합니다. 이글은 제가 많은 시도 끝에 성능을 올려본 방법론중에 하나이며 스스로도 추후에 참고하고 싶어 기록을 남겨봅니다.속도가 문제가 되는곳에는 그만큼 거대한 연산작업이 있다는것입니다. 그 거대한 연산작업을 기다리지 않고 병렬로 처리한다면 사용자는 우선적으로 결과값을 바로 받을 수 있어 사용성에 부드러움을 느낄 수 있습니다. 그 병렬처리를 위해 동시프로그래..
2024.06.17