[파이썬] 함수 최적화 전략 예제
함수 최적화는 코드의 실행 속도를 향상시키거나 메모리 사용을 최적화하는 것을 의미합니다. 함수 최적화 전략은 코드를 더 효율적으로 만들기 위해 다양한 기법을 사용하는 것을 말합니다. 아래는 함수 최적화를 위한 몇 가지 전략과 예제를 제공합니다:
-
로컬 변수 사용하기:
루프 내에서 같은 값을 계속 다시 계산하지 말고 변수에 저장하여 재사용하세요.
def calculate_sum(n):
result = 0
for i in range(1, n + 1):
result += i
return result
-
List Comprehension 사용하기:
리스트를 생성할 때
for
루프를 사용하는 대신 리스트 컴프리헨션을 사용하여 간결하고 빠른 코드를 작성하세요.
def squares(n):
return [x**2 for x in range(1, n + 1)]
-
불필요한 계산 피하기:
불필요한 계산을 피하고, 함수 호출을 최소화하세요.
def is_prime(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
-
제너레이터 사용하기:
큰 데이터셋을 다룰 때는 제너레이터를 사용하여 메모리를 효율적으로 관리하세요.
def read_large_file(file_path):
with open(file_path, 'r') as file:
for line in file:
yield line
-
Cython 또는 Numba 사용하기:
파이썬 코드를 C로 컴파일하거나 JIT(Just-In-Time) 컴파일러를 사용하여 성능을 향상시키세요.
from numba import jit
@jit
def calculate_sum(n):
result = 0
for i in range(1, n + 1):
result += i
return result
-
알고리즘 최적화:
코드의 알고리즘을 최적화하여 복잡성을 줄이세요.
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = left + (right - left) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
이러한 전략을 적용하면 코드의 성능을 향상시킬 수 있으며, 특히 대용량 데이터나 계산 집약적인 작업을 수행할 때 유용합니다. 다만, 코드 최적화는 어떤 상황에서는 읽기 어렵거나 디버그하기 어려울 수 있으므로, 코드의 가독성을 유지하는 것이 중요합니다.