[android] 데이터 바인딩과 속성바인딩
Android 앱을 개발할 때 UI 컴포넌트와 데이터를 연결하는 데 유용한 도구로 “데이터 바인딩”과 “속성바인딩”을 사용할 수 있습니다. 이 두 기술은 레이아웃 XML 파일에서 UI 컴포넌트와 데이터 소스를 더 쉽게 연결하고 동적으로 업데이트하는 데 도움을 줍니다.
데이터 바인딩이란?
데이터 바인딩은 레이아웃 파일에서 UI 컴포넌트를 정의하고 해당 컴포넌트에 데이터를 연결하는 기술입니다. 이를 통해 XML 파일에서 문자열이나 데이터를 하드 코딩하기보다는 데이터 소스와 바인딩하여 동적으로 데이터를 표시할 수 있습니다.
예를 들어, 사용자 이름을 텍스트뷰에 표시해야 하는 경우 데이터 바인딩을 사용하여 해당 텍스트뷰에 사용자 이름을 동적으로 표시할 수 있습니다.
<TextView
android:text="@{user.name}" />
@{}
구문을 사용하여 데이터 소스인 user
객체의 name
속성을 텍스트뷰의 텍스트로 바인딩할 수 있습니다.
속성바인딩이란?
속성바인딩은 레이아웃 파일에서 UI 컴포넌트의 속성과 데이터를 연결하는 기술입니다. 이를 통해 UI 컴포넌트의 다양한 속성을 동적으로 업데이트할 수 있습니다.
예를 들어, 배경 색상을 동적으로 변경해야 하는 경우 속성바인딩을 사용하여 해당 속성을 데이터에 연결할 수 있습니다.
<LinearLayout
android:background="@{viewModel.backgroundColor}" />
@{}
구문을 사용하여 데이터 소스인 viewModel
객체의 backgroundColor
속성을 레이아웃의 배경 색상에 바인딩할 수 있습니다.
데이터 바인딩과 속성바인딩의 장점
- 코드 간결성: 데이터 바인딩 및 속성바인딩을 사용하면 XML 및 Java/Kotlin 코드 간에 데이터 및 UI 컴포넌트를 쉽게 연결할 수 있습니다.
- 성능 향상: 데이터 바인딩을 사용하면 UI 업데이트에 필요한 콜백이나 반복적인 findViewById() 호출을 최소화할 수 있어 성능을 향상시킬 수 있습니다.
Android 앱을 개발하면서 데이터와 UI를 연결하는 데 있어 데이터 바인딩과 속성바인딩을 적극적으로 활용하여 개발 효율성과 성능을 향상시킬 수 있습니다.