클래스에서 사용되는 getter와 setter의 역할은 무엇인가요?

getter는 클래스 내부의 속성 값을 반환하는 메서드입니다. 이를 통해 클래스 외부에서 객체의 속성 값을 읽을 수 있습니다. getter를 사용함으로써 직접적인 접근을 막고, 객체의 상태에 대한 제어를 할 수 있습니다.

setter는 클래스 내부의 속성 값을 설정하는 메서드입니다. 이를 통해 클래스 외부에서 객체의 속성 값을 변경할 수 있습니다. setter를 사용하여 속성 값의 유효성을 검사하거나, 속성에 대한 특정한 동작을 수행할 수 있습니다.

예를 들어, User 클래스에서는 name이라는 속성에 대한 getter와 setter를 정의할 수 있습니다. getter는 name 속성의 값을 반환하고, setter는 name 속성에 새로운 값을 할당합니다. 이렇게 getter와 setter를 사용함으로써 외부에서 클래스의 속성에 접근하는 것을 제어할 수 있고, 유효성 검사나 특정 동작을 수행할 수 있습니다.

class User:
    def __init__(self, name):
        self._name = name
    
    def get_name(self):
        return self._name
    
    def set_name(self, new_name):
        # 이름은 최소한 2글자 이상이어야 함
        if len(new_name) >= 2:
            self._name = new_name
        else:
            print("이름은 최소한 2글자 이상이어야 합니다.")

user = User("John")
print(user.get_name())  # "John" 출력

user.set_name("Alice")
print(user.get_name())  # "Alice" 출력

user.set_name("J")  # "이름은 최소한 2글자 이상이어야 합니다." 출력

위의 예시 코드에서는 User 클래스에서 name 속성에 대한 getter와 setter를 정의한 것을 볼 수 있습니다. getter인 get_name 메서드는 name 속성 값을 반환하고, setter인 set_name 메서드는 name 속성을 새로운 값으로 설정합니다. 속성에 대한 유효성 검사도 수행하고 있으며, 최소한 2글자 이상의 이름을 요구하고 있습니다.

[#getter #setter]