lazy라는 단어 그대로 연산을 지연시키는 키워드.
연산을 필요할 때까지 미뤄서 메모리 사용과 불필요한 계산을 줄이는 데 유용하다.
- lazy 프로퍼티
- 프로퍼티의 초기화를 지연. 프로퍼티가 실제로 호출될 때까지 초기화 코드를 실행하지 않음.
- 일반적으로 무거운 연산이 필요한 프로퍼티나 외부 자원에 접근하는 프로퍼티에 유용
- lazy 시퀀스
- swift의 컬렉션은 일반적으로 고차함수를 사용해 변환할 때, 각 단계마다 새로운 배열을 생성하는데, lazy 시퀀스를 사용하면 중간 컬렉션을 만들지 않고 최종 결과가 필요할 때까지 각 요소에 대한 연산을 미룸
- lazy 시퀀스는 특히
큰 데이터셋에 대해 여러 고차함수를 연결해서 사용할 때 성능을 최적화
- lazy의 장점
- 성능 최적화: 필요할 때만 연산을 수행하므로 메모리 사용량이 줄고 불필요한 연산 방지
- 지연 초기화: 무거운 연산을 하는 프로퍼티를 초기화 시점에 실행하지 않고, 필요할 때만 계산하므로 성능 향상
- 주의사항
- 항상
var과 함께 사용되어야 함. 기본적으로 lazy로 선언된 변수는 초기 값이 존재하지 않다가 이후에 값이 생기는 것이기 때문에 let으로 선언 될 수 없음
Struct, Class에서만 사용 가능