본문 바로가기
Kotlin

[Paging] Paging이란?

by 명훈스토리 2023. 2. 3.
SMALL

1. Paging이란?

 사용자에게 정보를 표시하는 가장 일반적인 방법 중 하나는 리스트를 사용하는 것이다. 그러나 이러한 리스트는 전체 콘텐츠로 통하는 작은 창에 불과하다. 사용자는 제공되는 정보를 스크롤할 떄 이미 확인한 정보를 보완할 수 있는 더 많은 데이터가 있을 것이라고 예상하는 경우가 많다. 데이터를 가져올 때 효율적이고 원활하게 진행되어 계속 늘어나는 로드가 사용자 환경을 저해하지 않아야 한다. 점진적 로드는 성능 향상에도 도움이 되며 앱에서 많은 양의 데이터를 한 번에 메모리에 저장할 필요가 없기 때문이다.

 정보를 점진적으로 가져오는 이 프로세스를 페이지로 나누기라고 하며 각 페이지는 가져올 데이터에 상응한다. 페이지를 요청하려면 페이징되는 데이터 소스에는 필요한 정보를 정의하는 쿼리가 필요하다.

 

2. Paging 라이브러리의 핵심 구성 요소(준비물)

Paging 라이브러리를 사용하려면 다음과 같은 준비물이 필요하다.

- PagingSource : 특정 페이지 쿼리의 데이터를 로드하는 기본 클래스이다. 데이터 레이어의 일부이며 일반적으로 DataSource 클래스에서 노출되고 이후에 ViewModel에서 사용하기 위해 REpository에 의해 노출된다.

- PagingConfig : 페이징 동작을 결정하는 매개변수를 정의하는 클래스이다. 여기에는 페이지 크기, 자리표시자의 사용 설정 여부 등이 포함된다. 

- Pager : PagingData 스트림을 생성하는 클래스입니다. PagingSource에 따라 다르게 실행되며 ViewModel에서 만들어야 합니다.

- PagingData : 페이지로 나눈 데이터의 컨테이너입니다. 데이터를 새로고침할 때마다 자체 PagingSource로 지원되는 상응하는 PagingData 내보내기가 별도로 생성됩니다.

- PagingDataAdapter : RecyclerView에 PagingData를 표시하는 RecyclerView.Adapter 서브 클래스입니다. PagingDataAdapter는 팩토리 메서드를 사용하여 Kotlin Flow나 LiveData, RxJava Flowable, RxJava Observable 또는 정적 목록에도 연결할 수 있다.

 

 

LIST

'Kotlin' 카테고리의 다른 글

[Paging] UI용 PagingData 생성  (0) 2023.02.07
[Paging] Paging 사용법  (0) 2023.02.05
[ViewModel] ViewModel이란?  (0) 2023.02.03
[LifeCycles] LifeCycles란?  (0) 2023.02.03
[Coroutine] Coroutine이란?  (0) 2023.02.02

댓글