왜 Paging 3을 사용할까?

  1. 대량 데이터 처리

    한 번에 모든 데이터를 가져오지 않고, 필요한 만큼만 불러와서 메모리 사용을 최적화

  2. 자동 로드 & 페이징 처리

    리스트의 끝에 도달하면 자동으로 다음 페이지 데이터를 가져올 수 있음

  3. RecyclerView + DiffUtil 지원

    데이터 변경 시 전체 리스트가 아니라 변경된 부분만 업데이트해서 성능을 높여.

  4. Flow & LiveData 지원

    MVVM 패턴과 잘 어울려서 Jetpack 구성요소와 함께 사용하기 좋다.

Paging 3 기본 구조

Paging3 에는 데이터를 어떻게 로드할 것인지 정의하는 PagingSource, 데이터를 관리하는 Pager, 화면에 표시하는 PagingDataAdapter가 존재한다

  1. PagingSource → 데이터 로드 방식 정의 (API 또는 DB에서 가져오기)
  2. Pager → PagingSource를 사용해서 PagingData Flow 형식으로 제곡하여서 페이징 데이터를 생성
  3. PagingDataAdapter → RecyclerView에 PagingData를 연결

Paging 3 예제

Compose에서는 어떻게 사용할까?

흐름