Study/Swift
SwiftUI의 동작방식 : 선언형(Declarative) 프레임워크 <- 이게 진짜로 의미하는 것은 무엇일까?
minulbora
2025. 4. 18. 11:09
네비게이션 링크 기능을 담은 버튼 구현을 학습하다가 알게 된 점..
버튼 안에 직접 네비게이션 링크를 넣는 게 아니라, bool 변수를 하나 만들어놓고 버튼을 누르면 이 변수를 true 로 만들어서 보내게 한다.
버튼 안에 링크를 넣는게 불가능한 건 아닌데, 아무튼 오류가 많으니 추천하는 방법이 아니고.
그렇다면 자연스럽게 드는 생각.
'그럼 bool 변수가 변하는지 아닌지 계속 검사하는거 아닌가? 이게 더 비효율적인거 아닌가? '
이에 대해서 알아보니, 스위프트는 UIKit과 달리 선언형 프레임워크라고 한다 !
이게 의미하는 바는 다음과 같다.
@state @binding 등 모두 값이 바뀔 때만 화면을 갱신한다.
즉, SwiftUI가 내부적으로 값을 감지(Observe) 하는 시스템을 가지고 있는 것!
그래서 CPU나 메모리 낭비 없이 가볍게 돌아가는 것!
더 자세히 말하자면, 뷰의 '결과'를 선언하는 흐름인거고, 그렇기 때문에 UI 자체를 상태가 움직이게 된다.
상태 동기화라는거 진짜.. 좋은것이군아.. 이래서 SwiftUI 쓰라고 하는거군아..