lazy

JG Ahn·2024년 11월 14일

swift 심화

목록 보기
12/18
post-thumbnail

lazy라는 단어 그대로 연산을 지연시키는 키워드.

연산을 필요할 때까지 미뤄서 메모리 사용과 불필요한 계산을 줄이는 데 유용하다.

- lazy 프로퍼티

  • 프로퍼티의 초기화를 지연. 프로퍼티가 실제로 호출될 때까지 초기화 코드를 실행하지 않음.
  • 일반적으로 무거운 연산이 필요한 프로퍼티나 외부 자원에 접근하는 프로퍼티에 유용

- lazy 시퀀스

  • swift의 컬렉션은 일반적으로 고차함수를 사용해 변환할 때, 각 단계마다 새로운 배열을 생성하는데, lazy 시퀀스를 사용하면 중간 컬렉션을 만들지 않고 최종 결과가 필요할 때까지 각 요소에 대한 연산을 미룸
  • lazy 시퀀스는 특히 큰 데이터셋에 대해 여러 고차함수를 연결해서 사용할 때 성능을 최적화

- lazy의 장점

  • 성능 최적화: 필요할 때만 연산을 수행하므로 메모리 사용량이 줄고 불필요한 연산 방지
  • 지연 초기화: 무거운 연산을 하는 프로퍼티를 초기화 시점에 실행하지 않고, 필요할 때만 계산하므로 성능 향상

- 주의사항

  • 항상 var과 함께 사용되어야 함. 기본적으로 lazy로 선언된 변수는 초기 값이 존재하지 않다가 이후에 값이 생기는 것이기 때문에 let으로 선언 될 수 없음
  • Struct, Class에서만 사용 가능

0개의 댓글