1. 뷰바인딩 - findViewById를 없애기
   액티비티 소스코드 내에 XML Layout을 조작하는 코드를 분리해 내면 소스코드의 가독성이 높아 집니다.
   구글이 제공하는 뷰바인딩은 액티비티 내에서 findViewById를 통해 변경이 필요한 모든 뷰객체의 레퍼런스를
   가져오는 번거로움을 없애 줍니다.


2. 데이터바인딩 개념 - 화면과 데이터를 분리하자
   액티비티 소스코드 내에 XML Layout을 조작하는 코드를 분리해 내면 소스코드의 가독성이 높아 집니다.
   구글이 제공하는 데이터바인딩은 뷰객체에 데이터 설정을 액티비티 코드에서 XML로 옮기는 것을 도와주는데요,
   전체적인 데이터바인딩의 개념과 왜 이러한 것이 필요한지 샘플코드와 함께 설명합니다.


3. 데이터바인딩 응용 - 화면과 데이터를 분리하자
   액티비티 소스코드 내에 XML Layout을 조작하는 코드를 분리해 내면 소스코드의 가독성이 높아 집니다.
   구글이 제공하는 데이터바인딩은 뷰객체에 데이터 설정을 액티비티 코드에서 XML로 옮기는 것을 도와주는데요,
   전체적인 데이터바인딩의 개념과 왜 이러한 것이 필요한지 샘플코드와 함께 설명합니다.


4. 라이브데이터 - 데이터 처리와 화면 업데이트를 분리하자
   데이터 변경과 화면 처리를 한번에 처리하는 것 보다 이를 분리하게 되면 전체 로직이 간단해져 유지보수가 쉬워집니다.
   이를 위해 구글에서는 라이브데이터 API를 제공하는데요, 이 영상에서는 샘플 코드를 통해 라이브데이터의 개념과
   왜 필요한지를 설명합니다.


5. 뷰모델 - 액티비티 라이프싸이클 대응

   안드로이드 기기를 가로세로 회전을 하면 개발자의 의도와 상관없이 액티비티가 Destroy, Create을 하게되어
   액티비티 내에 운영중인 데이터를 잃어 버리게 되는데요, 이런 경우에도 데이터를 쉽게 보존/복원하기 위해
   구글에서는 뷰모델을 제공하고 있습니다.


6. 룸 Room - SQLite를 더욱 안전하고 쉽게
   사용자 설정 같은 간단한 정보는 shared preferences에 저장하면 되지만 좀 더 복잡하고, 대량의 데이터를
   저장하고 조회하기 위해서 안드로이드는 SQLite이라는 데이터베이스 엔진을 탑재하고 있습니다.
   Room은 SQLite 사용을 더욱 안정적이고 편리하게 사용할 수 있는 구글의 라이브러리이고요, 구글에서도
   SQLite API를 사용하지 말고 Room API 사용을 권장하고 있습니다.


7. Room + LiveData + ViewModel 대통합 - 앱 아키텍처 완성
   지난 영상에서 다룬 ViewBinding, DataBinding, LiveData, ViewModel과 Room을 통합함으로써 최근 주목 받고 있는
   클라이언트 어플리케이션 아키텍처인 MVVM이 더욱 가깝게 느껴지실 겁니다.
   비즈니스 로직과 프리젠테이션 로직을 분리하면 유지보수가 편리하고, 더욱 안정적인 앱 운영이 가능합니다.