동기화 어댑터를 사용하여 데이터 전송

참고: 대부분의 백그라운드 처리 사용 사례에 권장되는 솔루션인 WorkManager를 사용하는 것이 좋습니다. 가장 적합한 솔루션을 알아보려면 백그라운드 처리 가이드를 참조하세요.

Android 기기와 웹 서버 간에 데이터를 동기화하면 사용자에게 훨씬 더 유용하고 매력적인 애플리케이션을 만들 수 있습니다. 예를 들어 웹 서버로 데이터를 전송하면 유용한 백업이 되며 서버에서 데이터를 전송하면 기기가 오프라인 상태일 때도 사용자가 데이터를 사용할 수 있습니다. 경우에 따라 사용자는 웹 인터페이스에서 데이터를 입력하고 수정한 다음 데이터를 기기에서 사용하는 것이 더 쉬울 수 있습니다. 또는 시간 경과에 따라 데이터를 수집한 다음 중앙 저장소 영역에 업로드하기를 원하는 경우도 있습니다.

앱에서 데이터 전송을 실행하기 위해 자체 시스템을 설계할 수도 있지만, Android의 동기화 어댑터 프레임워크 사용을 고려해야 합니다. 이 프레임워크는 데이터 전송을 관리 및 자동화하고 여러 앱 간의 동기화 작업을 조정하는 데 도움이 됩니다. 이 프레임워크를 사용하면 직접 설계하는 데이터 전송 체계에서는 사용할 수 없는 몇 가지 기능을 활용할 수 있습니다.

플러그인 아키텍처
호출 가능한 구성요소 형태로 시스템에 데이터 전송 코드를 추가할 수 있습니다.
자동 실행
데이터 변경, 경과 시간 또는 하루 중 특정 시간을 비롯한 다양한 기준에 따라 데이터 전송을 자동화할 수 있습니다. 또한 시스템은 실행할 수 없는 전송을 큐에 추가하고 가능한 경우 전송을 실행합니다.
네트워크 확인 자동화
기기가 네트워크에 연결되어 있을 때만 시스템에서 데이터 전송을 실행합니다.
배터리 성능 향상
앱의 데이터 전송 작업을 모두 한곳에 중앙화하여 모두 동시에 실행되도록 할 수 있습니다. 데이터 전송은 다른 앱의 데이터 전송과 함께 예약됩니다. 이러한 요인으로 인해 시스템에서 네트워크를 켜야 하는 횟수가 줄어들어 배터리 사용량이 줄어듭니다.
계정 관리 및 인증
앱에 사용자 인증 정보나 서버 로그인이 필요한 경우 선택적으로 계정 관리 및 인증을 데이터 전송에 통합할 수 있습니다.

이 과정에서는 동기화 어댑터와 이를 래핑하는 바인드된 Service를 만드는 방법, 동기화 어댑터를 프레임워크에 플러그인하는 데 도움이 되는 다른 구성요소를 제공하는 방법, 동기화 어댑터를 다양한 방식으로 실행하는 방법을 보여줍니다.

참고: 동기화 어댑터는 비동기식으로 실행되므로 데이터를 규칙적이고 효율적으로 전송하지만 즉각적으로 전송하지는 않을 것을 염두에 두고 사용해야 합니다. 실시간 데이터 전송이 필요한 경우 AsyncTask 또는 IntentService에서 실행해야 합니다.

과정

스터브 인증자 만들기
동기화 어댑터 프레임워크가 앱의 일부일 것으로 예상되는 계정 처리 구성요소를 추가하는 방법을 알아봅니다. 이 과정에서는 편의를 위해 스텁 인증 구성요소를 만드는 방법을 보여줍니다.
스터브 콘텐츠 제공업체 만들기
동기화 어댑터 프레임워크가 앱의 일부일 것으로 예상되는 콘텐츠 제공업체 구성요소를 추가하는 방법을 알아봅니다. 이 과정에서는 앱이 콘텐츠 제공업체를 사용하지 않는다고 가정하므로 스텁 구성요소를 추가하는 방법을 보여줍니다. 앱에 이미 콘텐츠 제공업체가 있다면 이 과정을 건너뛰어도 됩니다.
동기화 어댑터 만들기
동기화 어댑터 프레임워크가 자동으로 실행할 수 있는 구성요소에서 데이터 전송 코드를 캡슐화하는 방법을 알아보세요.
동기화 어댑터 실행
동기화 어댑터 프레임워크를 사용하여 데이터 전송을 트리거하고 예약하는 방법을 알아봅니다.