본문 바로가기

Android/Jetpack, Clean Architecture

안드로이드에서 Data Binding을 왜 사용할까?

Data Binding을 왜 쓰는가?

앱의 한 Activity에 View 계층 구조가 복잡한 경우 findViewById()는 비용이 많이 들고 앱 속도가 느려지는데,

안드로이드는 원하는 View를 찾을 때까지 루트부터 보기 계층을 통과하기 때문이다.

 

이에 대한 해결책으로 각 View에 대한 참조가 포함된 객체를 만드는 것이다.

Binding 오브젝트라고 불리는 이 오브젝트는 앱 전체가 사용할 수 있다. 이 기술을 데이터 바인딩이라고 한다.

앱에 대한 바인딩 개체가 생성되면 뷰 계층을 통과하거나 데이터를 검색할 필요 없이 바인딩 개체를 통해 View 및 기타 데이터에 액세스할 수 있다.

Data Binding 이점

  1. 코드가 짧아지고 읽기 쉬워진다. findByView() 사용하는 것보다 유지, 보수하기가 쉽다.
  2. 데이터랑 뷰가 명확히 분리되어 있다.
  3. 안드로이드 시스템은 각 뷰를 얻기 위해 뷰 계층을 한 번만 가로지르고, 이는 사용자가 앱과 상호 작용하는 런타임이 아닌 앱 시작 중에 발생한다.
  4. 액세스를 위한 type safety을 얻는다. (type safety는 컴파일러가 컴파일을 하는 동안 유형을 검증하는 것을 의미하며, 변수에 잘못된 유형을 할당하려고 하면 오류를 발생시킨다.)

 

참고 : codelabs.developers.google.com/android-kotlin-fundamentals/