MVVMCross의 유창한 데이터 바인딩은 주로 유형 안전 및 컴파일 타임 확인 특성을 통해 응용 프로그램의 성능을 향상시켜 주지만, 성능 이점은 개발 효율성과 더 관련이 있으며 런타임 성능 개선과 관련이 없습니다. 다음은 전반적인 응용 프로그램 성능 및 유지 관리에 기여하는 방법입니다.
1. 안전 및 컴파일 타임 점검 유형 : 유창한 데이터 바인딩을 사용하면 개발자가 C# 코드를 사용하여 바인딩을 생성 할 수 있으므로 바인딩은 런타임이 아닌 컴파일 타임에서 확인됩니다. 이렇게하면 바인딩 경로 또는 오타가 잘못된 잘못된 바인딩 경로로 인한 런타임 오류 가능성이 줄어들어 성능 문제 나 충돌이 발생할 수 있습니다. 이러한 오류를 조기에 포착함으로써 개발자는 애플리케이션이 처음부터 더 안정적이고 성능이 있는지 확인할 수 있습니다 [2] [4].
2. 개발 효율성 향상 : 유창한 구문은 JSON 또는 XML 기반 바인딩과 같은 다른 바인딩 형식보다 읽고 유지하기가 더 쉽습니다. 이러한 사용 편의성으로 인해 개발주기가 빨라지고 버그가 줄어들어 디버깅에 소요 된 시간을 줄이고 최적화하여 응용 프로그램의 전반적인 성능을 간접적으로 향상시킬 수 있습니다 [1] [4].
3. 플랫폼 유연성 : 유창한 바인딩은 iOS 및 Android와 같은 플랫폼에서 특히 유용합니다. 여기서 XML 레이아웃 파일은 Windows 또는 .NET Maui 애플리케이션에 사용되는 XAML 파일만큼 쉽게 편집 할 수 없습니다. 이러한 유연성을 통해 개발자는 다양한 플랫폼에서 일관된 코딩 관행을 유지할 수있어 디버깅 및 최적화 프로세스를 단순화 할 수 있습니다 [1] [4].
4. 런타임 오버 헤드 감소 : 유창한 바인딩 자체는 다른 바인딩 방법에 비해 런타임 오버 헤드를 본질적으로 줄이지 않지만 바인딩이 올바르게 설정되고 유지되도록합니다. 잘못 구성된 바인딩은 불필요한 업데이트 또는 알림으로 이어져 성능에 영향을 줄 수 있습니다. 구속력이 올바르게 확립되도록함으로써 개발자는 이러한 잠재적 성능 함정을 피할 수 있습니다 [2].
5. MVVMCross 기능과의 통합 : MVVMCross는 내비게이션 및 종속성 주입을 포함한 다양한 기능을 제공하여 유창한 바인딩과 함께 사용하여 효율적이고 확장 가능한 응용 프로그램을 생성 할 수 있습니다. 이러한 기능을 효과적으로 활용하여 개발자는 다양한 플랫폼에서 잘 수행되는 응용 프로그램을 구축 할 수 있습니다 [5] [7].
요약하면, MVVMCross의 유창한 데이터 바인딩은 .NET Maui DO의 컴파일 된 바인딩과 같은 방식으로 런타임 성능을 직접 개선하지는 않지만 개발 효율성을 향상시키고 오류를 줄이며 응용 프로그램이 잘못 유지 가능하고 부정확 한 바인딩으로 인해 성능 문제가 덜되도록 보장합니다 [3].
인용 :[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/compiled-bindings?view=net-maui-9.0
[4] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding
[5] http://wojosoftware.com/software/mvvmcross/
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=Browse
[7] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[8] https://www.mvvmcross.com/documentation/getting-started/getting-started
[9] https://www.reddit.com/r/dotnet/comments/68ste4/wpf_databinding_performance_issue/