728x90

프로퍼티

클래스, 구조체 또는 열거형 등에 관련된 값

 

 

  • 저장 프로퍼티 : 인스턴스의 변수 또는 상수 (클래스, 구조체에서만 사용)
  • 연산 프로퍼티 : 값을 저장한 것이 아닌 특정 연산을 실행한 결괏값 (클래스, 구조체, 열거형에서 사용)
  • 타입 프로퍼티 : 특정 타입에 사용
  • 프로퍼티 감시자 : 프로퍼티의 값이 변할 때 변화에 따른 특정 작업을 실행 (저장 프로퍼티에 적용, 부모 클래스로부터 상속 가능)   

지연 저장 프로퍼티

필요할 때 값이 할당됨

  • lazy (지연 저장 프로퍼티)
var 키워드를 사용하여 변수로 정의함 (상수(let)는 인스턴스가 완전히 생성되기 전에 초기화해야 하므로 필요할 때 값을 할당하는 지연 저장 프로퍼티와는 맞지 않기 때문에)

복잡한 클래스나 구조체를 구현할 때 많이 사용됨

지연 저장 프로퍼티 사용시 불필요한 성능저하나 공간 낭비를 줄일 수 있음 (모든 저장 프로퍼티를 사용할 필요가 없을 때)

※ 다중 스레드 환경에서 지연 저장 프로퍼티에 동시다발적으로 접근할 때는 한 번만 초기화된다는 보장이 없으므로,

생성되지 않은 지연 저장 프로퍼티에 많은 스레드가 비슷한 시점에 접근한다면, 여러 번 초기화될 수 있다.

 


지연 저장 프로퍼티

 

728x90

+ Recent posts