RecyclerView 란?
- 앱을 사용하다보면, 쇼핑몰이든 게시판이든 목록이 쭈욱- 나열된 페이지를 본 적이 있을 것이다! 거~의 모든 앱에서 리스트를 보여줄만큼 필수적이다.
많은 데이터 (리스트, 목록) 를 보여주기 위한 위젯
ListView
- 이전에는 목록을 보여줄 때 ListView 를 활용했었다.
- ListView 는 스크롤하다가 화면을 벗어나면 해당 view 를 삭제하고, 해당 데이터를 보여줘야할 때 다시 생성하고 -> 삭제 -> 생성 -> 삭제 -> 생성 ... (무한반복)
=> 매번 view 를 만들어줘야하니 시간도 오래 걸리고 메모리도 많이 사용한다는 문제가 발생한다. 재사용성도 떨어짐!
ViewHolder 의 등장
- 이러한 Listview 의 단점을 해결하기 위해 ViewHolder 가 등장했다.
- 한 번 찾았던 view 를 다시 탐색하지 않도록 저장해두는 방식이다.
=> findViewById() 호출 횟수가 줄어든다!
- 각 뷰를 보관하는 객체 라고 생각하면 될 것 같다!

- 왼쪽의 ListView 는 모든 view 를 하나하나 생성하는 반면,
ViewHolder 를 사용하는 RecyclerView 는 스크롤하다가 맨 위의 빨간 테두리칸이 화면에 보일 필요가 없으니 저장해두었다가,
맨 아래 빨간 테두리 칸을 화면에 보여줄 때 재사용하는 것이다!
RecyclerView 와 ListView 의 차이
반면, ListView 에는 notifyDataSetChanged() 만 있는데.. 이건 그냥 데이터가 변경됨을 알려주는 메소드이기 때문에 RecyclerView 의 메소드를 통해 더 세세하게 활용할 수 있다!