[swift] 프로퍼티 감시자(Property Observers)

프로퍼티 감시자를 사용하려면 willSetdidSet 키워드를 이용하여 각각 값을 변경하기 직전과 직후에 호출될 코드를 구현합니다.

예를 들어, 아래와 같이 temperature 프로퍼티를 가지는 클래스를 만들고 감시자를 추가할 수 있습니다.

class Thermostat {
    var temperature: Double = 0 {
        willSet {
            print("현재 온도: \(temperature)℃") // 값이 변경 전의 온도 출력
        }
        didSet {
            if temperature > oldValue {
                print("온도가 상승했습니다.")
            } else if temperature < oldValue {
                print("온도가 하락했습니다.")
            } else {
                print("온도가 변하지 않았습니다.")
            }
        }
    }
}

위의 코드에서 temperature 프로퍼티에는 willSetdidSet 감시자가 추가되어 있습니다. willSet은 값이 변경되기 전에, didSet은 값이 변경된 후에 호출됩니다.

이제 Thermostat 클래스를 사용하여 temperature 값을 변경하면 감시자에서 설정한 동작이 수행됩니다.

프로퍼티 감시자는 코드 재사용성과 간결한 구현을 위해 매우 유용합니다. 값을 변경하는 과정에서 추가적인 로직을 쉽게 삽입할 수 있어 프로그래밍을 보다 효율적으로 만들어줍니다.

참고 자료: Swift 공식 문서