Android Data Binding: LiveData 연동 (단방향 및 양방향)

Source

  • Evernote/Inbox/Advanced Data Binding Binding to LiveData (One- and Two-Way Binding).md

Summary

이 문서는 Android Data Binding Library 에서 LiveData 를 사용하는 방법과 그 이점을 설명합니다. ObservableField 대비 LiveData 가 제공하는 생명주기 관리 자동화, 메모리 누수 방지, Transformations/MediatorLiveData 활용성 등을 강조합니다. LiveData 를 Data Binding 에 적용하려면 binding.setLifecycleOwner() 호출이 필수이며, nullable 타입 사용 시 safeUnbox 함수로 경고 처리가 필요함을 안내합니다. 양방향 바인딩 구현 방법의 서두 부분만 포함되어 있습니다.

Key Points

  • LiveData 는 생명주기를 인식하므로 Activity 정지 시 충돌 방지, 구성 변경 시 최신 데이터 즉시 수신, 관찰자 자동 정리(메모리 누수 방지) 등의 장점이 있음
  • ObservableField 대비 LiveData 는 수동 생명주기 관리가 필요 없으며, MediatorLiveData 를 통해 여러 소스 통합 관찰이 가능해 코드 복잡도 감소
  • Data Binding 에서 LiveData 사용 시 binding.setLifecycleOwner(this) 호출로 생명주기 소유자 설정 필요
  • Nullable LiveData 타입 사용 시 safeUnbox 함수를 사용하여 언박싱 경고(safeUnbox warning) 해결 권장
  • 양방향 바인딩(Two-Way Binding) 구현에 대한 내용은 문서 시작 부분만 존재하여 불완전함