Skip to content

Latest commit

 

History

History
92 lines (60 loc) · 2.53 KB

File metadata and controls

92 lines (60 loc) · 2.53 KB

Swift 2-1. 저장 프로퍼티 vs 연산 프로퍼티

✅ 프로퍼티란?

프로퍼티(Property)는 클래스, 구조체, 열거형 내부에서 값을 저장하거나 계산하는 변수 또는 상수를 의미합니다.

Swift에서는 두 가지 주요 프로퍼티가 존재합니다:

  • 저장 프로퍼티(Stored Property): 실제 데이터를 저장하는 공간
  • 연산 프로퍼티(Computed Property): 특정 연산을 통해 값을 계산하여 반환




🧱 저장 프로퍼티

struct Person {
    var name: String     // 저장 프로퍼티
    let birthYear: Int   // 저장 프로퍼티 (상수)
}
  • 구조체나 클래스의 인스턴스가 생성될 때 메모리에 함께 저장됩니다.
  • let으로 선언하면 초기화 후 변경할 수 없습니다.
  • 저장 프로퍼티는 기본적으로 모든 인스턴스가 고유한 값을 가짐 (값 타입에서는 복사됨)




⚙️ 연산 프로퍼티

struct Circle {
    var radius: Double

    var diameter: Double {
        return radius * 2   // get만 있는 연산 프로퍼티 (읽기 전용)
    }
}
  • 값을 저장하지 않고, 계산된 값을 반환합니다.
  • 내부적으로는 get { ... }이 생략된 형태입니다.
  • 실제 메모리 공간은 존재하지 않고, 호출 시 계산하여 반환합니다.
var area: Double {
    get {
        return radius * radius * 3.14
    }
}

get 키워드만 있으면 읽기 전용 연산 프로퍼티입니다.




🧠 저장 vs 연산: 메모리 관점 차이

항목 저장 프로퍼티 연산 프로퍼티
메모리 값을 저장함 (메모리 공간 차지) 메모리 없음, 호출 시 계산
실행 시점 인스턴스 생성 시 메모리 할당 호출될 때마다 계산 실행
예시 var name = "Pepper" var area: Double { return r * r * π }




📌 정리 포인트

구분 역할 특징
저장 프로퍼티 상태를 저장 인스턴스와 함께 메모리에 저장
연산 프로퍼티 계산된 값을 제공 실제 저장되지 않고 호출 시 계산

연산 프로퍼티는 효율적인 계산과 로직 분리에 유리하지만, 반복 호출 시 성능을 고려해야 합니다.




다음 챕터 2-2. getter / setter에서는
**연산 프로퍼티 내부의 구성 요소인 getset**을 보다 구체적으로 다루어 보겠습니다. ✍️