본문 바로가기
개발관련

데이터 바인딩 (DataBinding) 이란?

by MinChan-Youn 2021. 11. 18.

이번에는 데이터 바인딩(DataBinding)에 대해서 알아보겠습니다.

 

DataBinding이란?

코틀린에서 레이아웃을, 레이아웃에서 코틀린의 데이터를 직접 참조하는 라이브러리.

코틀린에서 레이아웃 파일에 의존적인 부분이 많이 사라지고 MVVM등의 패턴과 함께 사용된다.

 

인드로이드에서 해당 view에 어떤 값을 변경하거나 그럴때 코드를 계속 작성해야 하는 번거로움

하지만 최근 디자인패턴과같이 코드를 서로 분리시키는 디자인패턴 중 하나인 MVVM에서는 View에 해당되는 코드를 xml에서 처리할 수 있기 때문에 View 자체에서 데이터 변경에 대한 동적 처리가 가능합니다. (ViewModel에 데이터만 남게 함으로서 View-ViewModel 분리가 용이함)

 

결론적으로 다음과 같이 DataBinding을 통해 객체를 일일이 setText 하지않고도 xml에서 다음과 같은 작업을 함으로서 소스 코드를 줄일 수 있습니다.

 

 

* excutePendingBindings를 이용하여 View 강제 업데이트

 

 

ViewModel에서는 LifeCyclerOwner를 모름...

DataBinding에서는 lifecycleOwner를 설정해줘야함 그래야 ViewModel 해당 Activity의 생명주기를 따라감, 결국 Activity가 Destory 되었을 때 자동으로 observe가 제거되므로 메모리 leak에서 안전함

 

 

참고자료

1. https://leveloper.tistory.com/160