클래스 메서드와 정적 메서드로 효율적인 객체 관리하기 @classmethod, @staticmethod
클래스 메서드와 정적 메서드로 효율적인 객체 관리하기 @classmethod, @staticmethod 파이썬에서는 객체 지향 프로그래밍의 유연성을 극대화하기 위해 인스턴스 메서드 외에도 클래스 레벨에서 동작하는 클래스 메서드와 정적 메서드를 제공합니다. 이 두 메서드를 적절히 활용하면, 객체 생성 및 관리, 또는 인스턴스화 없이 유틸리티 함수 호출을 수행할 수 있어 코드의 재사용성과 유지보수성이 크게 향상됩니다. 이번 포스팅에서는 클래스 메서드와 정적 메서드의 개념, 차이점, 그리고 활용 사례를 통해 효율적인 객체 관리 전략을 소개합니다. 클래스 메서드의 기본 개념 클래스 메서드는 첫 번째 매개변수로 항상 클래스(cls)를 받으며, 클래스 자체에 영향을 미치는 작업을 수행할 때 사용됩니다. 인스턴스 생성 없이도 호출할 수 있는 장점이 있어, 클래스 변수 관리나 팩토리 메서드 패턴 등에서 유용하게 활용됩니다. class Person: population = 0 # 클래스 변수 def __init__(self, name, age): self.name = name self.age = age Person.population += 1 @classmethod def get_population(cls): return cls.population @classmethod def create_child(cls, name): # 자식 객체 생성 시 나이를 0으로 초기화하는 팩토리 메서드 return cls(name, 0) # 인스턴스 생성 없이 클래스 메서드 호출 print("현재 인구수:", Person.get_population()) # 팩토리 메서드를 통한 객체 생성 child = Person.create_child("새싹") print(child.name, child.age) 위 예제에서 ...