[python] 스택 메모리와 힙 메모리의 차이

Python에서 변수 및 객체는 스택 메모리와 힙 메모리 두 가지 영역에서 관리됩니다. 이 두 메모리 영역은 서로 다른 방식으로 동작하며 각각의 장단점이 있습니다.

스택 메모리(Stack Memory)

스택 메모리는 함수 호출 및 로컬 변수와 같은 작은 크기의 데이터를 저장하는 데 사용됩니다. 함수가 호출될 때 매개변수, 지역 변수 및 함수의 반환 주소 등이 스택에 저장됩니다. 이러한 데이터는 LIFO(Last In, First Out) 구조로 저장되고 제거됩니다.

def example_function():
    num = 10
    # 'num' 변수는 스택 메모리에 저장됨

힙 메모리(Heap Memory)

힙 메모리는 동적으로 할당된 데이터를 저장하는 데 사용됩니다. 이는 객체 및 데이터 구조체와 같이 크기가 불명확하거나 런타임 중에 동적으로 크기가 변하는 데이터를 저장하는 데에 유용합니다. 힙 메모리는 메모리의 어딘가에 저장되며 데이터를 참조하기 위한 포인터가 스택에 저장됩니다.

# 'my_list' 변수는 힙 메모리에 저장됨
my_list = [1, 2, 3, 4, 5] 

결론

스택 메모리는 작고 빠르지만 크기가 고정되어 있고, 힙 메모리는 동적으로 크기가 조정되며 객체와 데이터 구조체와 같은 데이터를 저장하기에 좋습니다. 이러한 이해는 Python 프로그램을 작성하고 메모리를 효율적으로 사용하는 데 도움이 될 것입니다.

이러한 메모리 구조에 대한 이해는 Python 프로그래밍을 하는 데 도움이 될 것이며, 메모리 누수와 같은 문제를 예방하는 데에도 중요합니다.