최근에 RecyclerView에 대해 다시 한번 공부하게 되어 그 내용을 간략하게 정리하였다.
RecyclerView는 많은 양의 데이터를 효율적으로 화면에 표시하기 위한 안드로이드의 Jetpack 라이브러리 중 하나이다. 안드로이드 초창기에 사용하던 ListView는 아이템을 한번에 불러와서 많은 양의 데이터를 표시할 때 성능 문제가 존재했다.

하지만 RecyclerView는 이름에서도 알 수 있듯이, 아이템 View를 재활용한다. 아이템이 스크롤되어서 화면에서 사라지면, RecyclerView는 View를 파괴하지 않고 스크롤되어 새롭게 나타나는 아이템에 재사용한다. 그래서 RecyclerView는 성능과 앱의 응답성을 개선하고, 전력 소비를 줄여준다.
onCreateViewHolder(): RecyclerView 인스턴스는 새로운 ViewHolder 생성이 필요할 때 이 메소드를 호출한다. 이 메소드는 ViewHolder와 그와 연결된 View를 생성 및 초기화한다. 하지만 View의 콘텐츠를 채우지는 않는다. (아직 data와 binding되지 않은 상태)onBindViewHolder(): RecyclerView 인스턴스가 ViewHolder와 data를 binding하기 위해 이 메소드를 호출한다. 이 메소드는 적절한 data를 가져와서 view holder의 레이아웃에 data를 채워넣는다.getItemCount(): RecyclerView 인스턴스가 이 메소드를 호출하여 dataset의 size를 알아낸다. RecyclerView 라이브러리는 이 메소드를 통해서 더이상 표시할 수 있는 항목이 없는 경우를 확인한다.