728x90
프로퍼티
클래스, 구조체 또는 열거형 등에 관련된 값
- 저장 프로퍼티 : 인스턴스의 변수 또는 상수 (클래스, 구조체에서만 사용)
- 연산 프로퍼티 : 값을 저장한 것이 아닌 특정 연산을 실행한 결괏값 (클래스, 구조체, 열거형에서 사용)
- 타입 프로퍼티 : 특정 타입에 사용
- 프로퍼티 감시자 : 프로퍼티의 값이 변할 때 변화에 따른 특정 작업을 실행 (저장 프로퍼티에 적용, 부모 클래스로부터 상속 가능)
지연 저장 프로퍼티
필요할 때 값이 할당됨
- lazy (지연 저장 프로퍼티)
var 키워드를 사용하여 변수로 정의함 (상수(let)는 인스턴스가 완전히 생성되기 전에 초기화해야 하므로 필요할 때 값을 할당하는 지연 저장 프로퍼티와는 맞지 않기 때문에) 복잡한 클래스나 구조체를 구현할 때 많이 사용됨 지연 저장 프로퍼티 사용시 불필요한 성능저하나 공간 낭비를 줄일 수 있음 (모든 저장 프로퍼티를 사용할 필요가 없을 때) |
※ 다중 스레드 환경에서 지연 저장 프로퍼티에 동시다발적으로 접근할 때는 한 번만 초기화된다는 보장이 없으므로,
생성되지 않은 지연 저장 프로퍼티에 많은 스레드가 비슷한 시점에 접근한다면, 여러 번 초기화될 수 있다.
지연 저장 프로퍼티
728x90