[kotlin] 데이터 바인딩 바인딩 어트리뷰트
Kotlin에서 데이터 바인딩을 사용하면 XML 레이아웃 파일에서 뷰를 직접 참조하지 않고, 뷰와 그 데이터를 결합할 수 있습니다. 데이터 바인딩 어트리뷰트를 사용하면 뷰 모델의 속성을 커스텀 바인딩 표현식으로 쉽게 사용할 수 있습니다.
데이터 바인딩 어트리뷰트란?
데이터 바인딩 라이브러리는 레이아웃 파일의 루트 요소에 layout 어트리뷰트를 추가하여 사용할 수 있습니다. 이어서 새로운 data 블록을 추가하고, 해당 블록 안에서 변수를 선언하고 데이터와 결합할 수 있습니다.
<layout>
<data>
<variable
name="user"
type="com.example.User" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}" />
</LinearLayout>
</layout>
위의 코드에서 user 객체의 firstName 속성과 TextView의 android:text 어트리뷰트를 결합하고 있습니다.
어트리뷰트와 뷰 모델
어트리뷰트를 사용하여 데이터를 뷰에 바인딩할 경우, 레이아웃 파일과 뷰모델이 서로 해당하는 데이터를 인식해야 합니다. 이는 어트리뷰트와 뷰 모델 간의 연결을 정의하고, 뷰 모델의 속성을 참조하기 위해 필요합니다.
자동 생성된 바인딩 클래스
데이터 바인딩 라이브러리는 XML 레이아웃 파일에 대한 바인딩 정보를 포함하는 자동 생성된 클래스를 생성합니다. 이 클래스를 통해 데이터 바인딩을 이용하여 뷰와 뷰모델을 연결할 수 있습니다.
결론
데이터 바인딩 어트리뷰트를 사용하면 XML 레이아웃 파일에서 강력한 데이터 결합 및 표현 기능을 활용할 수 있습니다. 이를 통해 코드의 가독성을 높이고, 개발 생산성을 향상시킬 수 있습니다.
참고 문헌:
- https://developer.android.com/topic/libraries/data-binding/expressions
- https://medium.com/androiddevelopers/data-binding-in-android-part-1-23238f97fdcf