파이썬 기초문법

파이썬 코딩의 혁신! __slots__로 메모리 절약하기

Family in August 2024. 5. 10. 11:32
반응형


__slots__로 메모리 절약하기

요즘 프로그램 개발 시 메모리 효율성은 중요한 고려사항입니다. 파이썬은 동적 타입 언어라 메모리 관리가 느릴 수 있는데, 이를 개선할 수 있는 기법 중 __slots__가 있습니다.

__slots__는 클래스에서 사용할 속성들의 이름을 미리 정의해 메모리 사용량을 최적화하는 방법입니다. 기본적으로 파이썬 객체에는 __dict__ 라는 딕셔너리 형태의 속성 저장소가 있어 메모리를 많이 차지합니다. 하지만 __slots__를 활용하면 객체당 고정된 양의 메모리만 사용하게 됩니다.

class MyClass(object):
    __slots__ = ['name', 'age']
    
    def __init__(self, name, age):
        self.name = name
        self.age = age



위 예시에서 MyClass의 인스턴스는 name과 age 속성만 가질 수 있고, __dict__가 생성되지 않아 메모리를 절약합니다. 단, 부모 클래스에 __slots__가 있다면 자식에서도 다시 정의해야 합니다.

__slots__를 잘 활용하면 대규모 객체 생성 시 상당한 메모리 절감 효과가 있습니다. 게임 개발이나 데이터 처리 등 메모리에 민감한 작업에서 유용합니다. 단, 동적으로 속성을 추가할 수 없다는 단점도 있습니다.

이처럼 __slots__는 파이썬 코딩에서 메모리 최적화를 위한 주요 기법 중 하나입니다. 메모리 효율적인 코딩을 하고 싶다면 __slots__를 적극 활용해 보시기 바랍니다.

반응형