데이터를 받아오고 이를 레이아웃에 직접 연결하는 함수를 실행시키는 클래스이다.
ListView나 App의 특정 데이터와 RecyclerView를 Bind하는 것을 도와준다.
‼️ RecyclerView의 Adapter 같은 경우, 전체 리스트를 통째로 업데이트해야 할때 100개의 아이템들이 있다면 100개가 모두 업데이트된다. 안바뀌는 항목이 더 많은 경우 비효율적이다.
기존 리스트와 업데이트 된 리스트의 차이를 계산하고 실제로 변환할 리스트 아이템들의 결과를 반환하는 유틸리티 클래스이다. 주로 RecyclerView Adapter의 업데이트를 계산하는데 사용되고 ListAdapter에서 DiffUtil을 활용해서 차이점을 계산한다.
→ 이와 비슷한 기능을 하는 Recyclerview.Adapter의 notifyDataSetChanged()가 있는데, 이는 리스트를 전부 지우고 처음부터 객체를 새로 렌더링하는 과정을 거치기 때문에 비용이 많이 발생하여 비효율적이다.
DiffUtil.Callback 이라는 기능을 구현해야 한다.
ListAdapter<데이터 클래스, 뷰홀더>(콜백)

콜백 구현부
