안드로이드에서는 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를 왜 사용해야 하는지 이유에 대해 공부하는 시간이었다.
참고
'Android' 카테고리의 다른 글
[Android] Logger 라이브러리 확장하여 로그 파일로 저장하기 (0) | 2022.02.27 |
---|---|
[Android] 깔끔한 Log를 사용하여 생산성 향상하기 (0) | 2022.02.26 |
[Android] 웹뷰 스크롤 하단에 native 버튼 위치시키는 방법 (0) | 2021.09.20 |
[Android] Realm 데이터베이스 사용하기 (0) | 2021.09.15 |
[Android] Custom Dialog 사용하여 ID, PW 받아오기 (0) | 2021.09.02 |