Python

메모리 영역 - 메모리 , 스택 ( stack ) , 코드 영역

yugyeong 2022. 11. 22. 15:19

 

메모리 영역에 대해서 간단하게 알아보자!

 

 

 

먼저 영역은 크게 세가지가 있다. 메모리 영역, 스택영역, 코드영역 

이 영역들을 그림으로 표현하면 아래와 같다.

 

----------------  메모리 ------------------

 

----------------- stack -----------------

 

----------------- 코드 -----------------

 

 

아래의 코드를 실행할 경우 코드들이 어떻게 돌아가고 메모리 영역에 어떤식으로 저장되고 삭제되는지에 대해서 알아보려고 한다

 

 

먼저 result = 100 은 result 변수에 100이라는 데이터를 저장한 것이기 때문에 메모리 영역에 저장이 된다.

 

----------------  메모리 ------------------

result : 100

 

----------------- stack -----------------

 

----------------- 코드 -----------------

 

 

 

 

그리고 

 

def n_plus_1 (n) :
    result = n + 1

 

부분은 함수의 정의이기 때문에 코드영역에 저장이 된다.

 

----------------  메모리 ------------------

result : 100

 

----------------- stack -----------------

 

----------------- 코드 -----------------

def n_plus_1 (n) :
    result = n + 1

 

 

 

stack영역에는 함수의 변수 n_plus_1( ) 영역이 생기게 된다.

n_plus_1(3) 을 실행한 값인 결과 4는 stack부분에 저장이 된다.

 

----------------  메모리 ------------------

result : 100

 

----------------- stack-----------------

     ------- n_plus_1 ( ) --------

 

result : 4

 

----------------- 코드 -----------------

def n_plus_1 (n) :
    result = n + 1

 

 

 

함수부분 실행 끝나면 stack 영역에 저장된 함수 부분은 사라지게 된다.

 

----------------  메모리 ------------------

result : 100

 

----------------- stack -----------------

 

 

----------------- 코드 -----------------

def n_plus_1 (n) :
    result = n + 1

 

 

그림으로 표현하면 위와같은 형태이다.

 

 

마지막으로 print(result)를 했기 때문에 메모리 영역에 저장된 데이터 100이 출력된다.