[python] 불변 객체와 가변 객체의 메모리 관리 차이

파이썬에서 변수를 다룰 때 불변 객체와 가변 객체가 메모리에서 어떻게 다뤄지는지 이해하는 것은 중요합니다. 불변 객체는 한 번 생성되면 그 값을 변경할 수 없는 객체이며, 가변 객체는 값이 변경될 수 있는 객체입니다.

불변 객체와 가변 객체란 무엇인가?

불변 객체와 가변 객체의 메모리 관리 차이

Python에서 불변 객체와 가변 객체는 메모리 관리 측면에서 다르게 다뤄집니다.

불변 객체는 동일한 값을 가진 객체는 메모리에서 공유될 수 있습니다. 예를 들어, 같은 정수값을 가진 변수들은 모두 같은 메모리 주소를 가리킬 수 있습니다. 이것을 ‘값이 변경될 수 없다’ 라는 특성때문에 가능합니다. 이렇게 하면 메모리를 절약할 수 있습니다.

반면, 가변 객체는 값이 변경될 수 있기 때문에 각각의 객체는 별도의 메모리 주소를 갖게 됩니다. 이러한 특성으로 인해 같은 값을 갖는 다수의 객체가 메모리를 소비하게 됩니다.

이러한 메모리 관리 차이로 인해 불변 객체는 객체가 생성될 때마다 새로운 메모리 주소를 가리키는 것이 아니라, 공유된 메모리 주소를 가리키기 때문에 메모리 효율적 관리가 가능합니다.

Python에서의 불변 객체와 가변 객체의 메모리 관리 차이를 이해하면, 변수 할당 및 메모리 사용에 대한 최적화된 결정을 내릴 수 있습니다.

참고 자료