[swift] 프로퍼티 선언

프로퍼티는 Swift에서 클래스, 구조체, 열거형 등의 객체가 가지는 속성을 나타내는 것입니다. 프로퍼티는 값을 저장하거나 계산하여 제공하는 역할을 수행합니다. 이번 글에서는 Swift에서 프로퍼티를 선언하는 방법에 대해 알아보겠습니다.

저장 프로퍼티 (Stored Properties)

저장 프로퍼티는 값을 저장하기 위해 메모리 공간을 할당받는 프로퍼티입니다. 클래스나 구조체의 인스턴스마다 고유한 값을 가질 수 있습니다. 저장 프로퍼티는 다음과 같이 선언할 수 있습니다.

class Person {
    var name: String = "" // 저장 프로퍼티 선언
    var age: Int = 0 // 저장 프로퍼티 선언
}

위 예제에서 nameagePerson 클래스의 저장 프로퍼티입니다. String 타입의 name은 기본값으로 빈 문자열을 가지고 있고, Int 타입의 age는 0을 가지고 있습니다.

구조체나 열거형에서도 저장 프로퍼티를 선언할 수 있습니다. 이 경우에도 동일한 방식으로 프로퍼티를 선언하면 됩니다.

계산 프로퍼티 (Computed Properties)

계산 프로퍼티는 값을 직접 저장하는 것이 아니라, 특정한 연산을 통해 값을 제공하는 프로퍼티입니다. 계산 프로퍼티는 다음과 같이 선언할 수 있습니다.

struct Rectangle {
    var width: Double = 0.0
    var height: Double = 0.0

    var area: Double { // 계산 프로퍼티 선언
        return width * height
    }
}

위 예제에서 areawidthheight를 곱한 값을 반환하는 계산 프로퍼티입니다. 계산 프로퍼티는 실제로 값을 저장하지 않고, 연산을 통해 값을 동적으로 계산합니다.

프로퍼티 감시자 (Property Observers)

프로퍼티 감시자는 프로퍼티의 값이 변경될 때 특정 코드를 실행할 수 있는 기능입니다. 프로퍼티 감시자로는 willSetdidSet이 있으며, 각각 값이 변경되기 에 실행됩니다.

class Person {
    var name: String = "" {
        willSet {
            print("변경 예정인 값: \(newValue)")
        }
        didSet {
            print("값이 변경되었습니다. 이전 값: \(oldValue)")
        }
    }
}

위 예제에서 name 프로퍼티에 프로퍼티 감시자를 설정하여, 값이 변경될 때마다 메시지를 출력하도록 구현하였습니다.

프로퍼티 감시자는 저장 프로퍼티에만 적용할 수 있습니다.

이상으로 Swift에서 프로퍼티를 선언하는 방법에 대해 알아보았습니다. 프로퍼티는 객체의 속성을 표현하고 값을 저장하거나 계산하여 제공하는 핵심 기능입니다. 다양한 종류의 프로퍼티를 선언하여 Swift에서 다양한 기능을 구현해 보세요!


참고자료: