Declarative UI 개발에서 상태 수명 주기 문제를 파악하고 설계로 해결한 경험을 정리한 결
사이드 프로젝트에서 SwiftUI로 iOS 앱을 처음 만들며 Declarative UI를 경험했습니다. 처음에는 상태가 바뀌면 UI가 자동으로 갱신된다는 개념이 직관적이어서 빠르게 프로토타입을 만들었습니다. 그런데 공유 상태가 여러 뷰에 퍼지면서 예상치 못한 재렌더링이 발생했고, @ObservedObject와 @StateObject의 수명 주기 차이를 제대로 이해하지 못한 것이 원인이었습니다. 상태 소유권 규칙을 정리한 뒤 뷰 계층을 다시 설계하니 불필요한 렌더링이 사라지고 스크롤 성능이 눈에 띄게 개선됐습니다. 이 경험으로 Declarative UI는 상태 흐름을 먼저 설계하지 않으면 오히려 디버깅이 복잡해진다는 것을 배웠습니다.