Data Binding을 왜 쓰는가?
앱의 한 Activity에 View 계층 구조가 복잡한 경우 findViewById()는 비용이 많이 들고 앱 속도가 느려지는데,
안드로이드는 원하는 View를 찾을 때까지 루트부터 보기 계층을 통과하기 때문이다.
이에 대한 해결책으로 각 View에 대한 참조가 포함된 객체를 만드는 것이다.
Binding 오브젝트라고 불리는 이 오브젝트는 앱 전체가 사용할 수 있다. 이 기술을 데이터 바인딩이라고 한다.
앱에 대한 바인딩 개체가 생성되면 뷰 계층을 통과하거나 데이터를 검색할 필요 없이 바인딩 개체를 통해 View 및 기타 데이터에 액세스할 수 있다.
Data Binding의 이점
- 코드가 짧아지고 읽기 쉬워진다. findByView()를 사용하는 것보다 유지, 보수하기가 더 쉽다.
- 데이터랑 뷰가 명확히 분리되어 있다.
- 안드로이드 시스템은 각 뷰를 얻기 위해 뷰 계층을 한 번만 가로지르고, 이는 사용자가 앱과 상호 작용하는 런타임이 아닌 앱 시작 중에 발생한다.
- 뷰 액세스를 위한 type safety을 얻는다. (type safety는 컴파일러가 컴파일을 하는 동안 유형을 검증하는 것을 의미하며, 변수에 잘못된 유형을 할당하려고 하면 오류를 발생시킨다.)
참고 : codelabs.developers.google.com/android-kotlin-fundamentals/
'Android > Jetpack, Clean Architecture' 카테고리의 다른 글
모던 안드로이드 앱 만들기 (3) - Retrofit, RxJava를 이용한 네트워크 통신 (0) | 2021.01.18 |
---|---|
모던 안드로이드 앱 만들기 (2) - MVVM 구조를 사용한 리스트 구현 (0) | 2021.01.17 |
모던 안드로이드 앱 만들기 (1) - 소개 (using Java, MVVM, RxJava) (0) | 2021.01.17 |
[Android / Kotlin] DataBinding을 사용해 뷰와 데이터를 연결해주기 (0) | 2020.09.06 |
[Android / Kotlin] DataBinding을 사용해 findViewById()를 대체하기 (0) | 2020.09.06 |