본문 바로가기

Android

[Android] RecyclerView를 사용해야 하는 이유 (feat. ListView)

안드로이드에서는 ListView 또는 RecyclerView를 사용하여 데이터 목록을 스크롤 가능한 리스트 형태로 화면에 보여줄 수 있다.

ListView vs RecyclerView

먼저 간단한 특징과 차이점을 알아보자.

  • ListView : 데이터 목록을 스크롤(세로 방향만 가능) 형태로 화면에 보여주는 가장 기본적인 방법
  • RecyclerView : 대량의 데이터 목록을 재활용 가능한 형태로 화면에 효율적으로 보여주는 방법 (ViewHolder 패턴 사용)
    ViewHolder란, 데이터 목록 중 개별 항목을 보여주기 위한 뷰를 가지고 있는 객체

두 방법 모두 Adapter를 통해 개별 항목의 뷰를 바인딩 하여 화면에 리스트 형태로 보여준다.

 

하지만 차이점을 위한 예시로 1000개의 데이터 목록을 보여주는 경우,

  • ListView : 모든 데이터 항목의 뷰를 매번 바인딩
  • RecyclerView : ViewHolder 패턴을 통해 항목의 뷰를 한 번만 바인딩하고, 바인딩 된 뷰를 재사용

스마트폰의 메모리는 한정적이고 화면을 바인딩 하는 작업은 MainThread에서 이루어진다.
그러므로, 대량의 데이터 목록을 보여줄 경우에는 RecyclerView를 사용하여 불필요한 메모리 낭비를 줄일 수 있다.

 

RecyclerView를 사용할 경우 반드시 ViewHolder를 적용해야 한다.
또한 LayoutManager를 통해 다양한 형태로 데이터 항목을 보여줄 수 있다.

 

물론 ListView에서 ViewHolder 패턴을 적용하여 재활용 가능한 형태로 구현할 수 있지만 강제가 아니고,
ListView 공식 문서에도 RecyclerView 사용을 권장하고 있다.


결론

ListView는 오래된 기능이고 RecyclerView는 최신 기능이니까 사용해야지라는 단순한 생각에서
두 가지의 특징과 차이점을 통해 RecyclerView를 왜 사용해야 하는지 이유에 대해 공부하는 시간이었다.

 

참고

ListView 공식문서

RecyclerView 공식문서