본문 바로가기

최적화2

[Swift] actor도 final 키워드로 최적화 할 수 있을까? 흔히들 class에서 상속 구조가 없으면 swift optimizationTips에서 가이드하는 것처럼 아래와 같이 final 키워드를 명시하여 컴파일러가 최적화를 수행할 수 있도록 해준다. class 뿐만 아니라 메서드, 프로퍼티는 final 키워드를 통해 컴파일러가 최적화가 가능하다.final 키워드는 더 이상 얘는 overriden 되지않아.! 걍 바로 얘 쓰면 돼! 라고 알려주는 것과 같기 때문이다. 그렇다면 swift 5.5에 새롭게 등장한 actor는 어떨까? 그보다 먼저 actor가 뭔지부터 간략하게 끄적여보면actor는 class와 같은 reference type이다. class와 다른 점은 상속이 불가능하고, MT-safe를 기본적으로 보장한다.다른 타입처럼 initializer도 가질 .. 2024. 8. 24.
[SwiftUI] 링크도 게으름이 필요해: NavigationLink를 Lazy하게 안녕하세요. 로디입니다. SwiftUI로 앱을 개발하다 보면 자연스럽게 만나게 되는 친구가 있죠. 바로 NavigationLink입니다.오늘은 NavigationLink에서 메모리 사용을 최적화하는 기법에 대해 알아보려고 합니다. 뷰 간의 네비게이션을 손쉽게 처리해주는 NavigationLink 요녀석, 처음엔 아주 사랑스러운데, 쓰다 보면 뭔가 불편함을 느낄 때가 있습니다.  기본적으로 NavigationLink는 화면에 나타나는 순간, 링크의 목적지(destination)를 미리 생성해버립니다. 작은 화면이나 간단한 뷰라면 상관없지만, 복잡한 화면이거나 무거운 데이터를 다루는 경우라면 이야기가 달라집니다. 무거운 뷰를 미리 생성해둔다..? 메모리 폭행범인가요?..🥲 아직 쓰지도 않는 뷰의 메모리를 .. 2024. 8. 18.