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

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

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

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

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

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

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

과정

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