iOS/Common
[Swift] lazy 왜 쓰나요?
TDCIAN
2022. 5. 13. 23:17
우리 iOS 개발할 때 이런식으로 lazy 많이 쓰지요?
private lazy var sampleLabel: UILable = {
let label = UILabel()
label.text = "lazy 왜 쓰나요?"
label.textColor = UIColor.systemBlue
return label
}()
그런데 lazy를 왜 쓰는지 알고 계신가요?
lazy 키워드를 사용하는 프로퍼티를 지연 저장 프로퍼티(Lazy Stroed Property)라고 합니다.
지연 저장 프로퍼티는 호출이 있어야만 값을 초기화 하는 특성을 가지고 있습니다.
좀 더 자세히 설명해 봅시다.
우리가 인스턴스를 초기화 하는 과정에서
언제나 모든 저장 프로퍼티가 동시에 초기화 될 필요가 없는 상황이 분명히 있겠지요?
그럴 때 지연 저장 프로퍼티 즉, lazy를 사용해 주시면 호출이 있을 때만 값을 초기화 하기 때문에
불필요한 성능저하나 공간 낭비를 줄일 수 있습니다!
다만 요런 것을 알고 계시면 좋겠네요!
다중 스레드 환경에서 지연 저장 프로퍼티에 동시다발적으로 접근할 때는 한 번만 초기화된다는 보장이 없습니다.
생성되지 않은 지연 저장 프로퍼티에 많은 스레드가 비슷한 시점에 접근한다면, 여러 번 초기화될 수 있습니다.
출처: 야곰님의 스위프트 프로그래밍: Swift 5
스위프트 프로그래밍: Swift 5 - 교보문고
객체지향, 함수형, 프로토콜 지향 패러다임까지 한 번에! | 스위프트를 제대로 이해하고 싶은 개발자를 위한 책스위프트는 iOS와 macOS용 애플리케이션 개발에 주로 사용하는 프로그래밍 언어입니
www.kyobobook.co.kr