SyncAdapter는 무엇이죠?

SyncAdapter는 2010년 구글 IO에서 발표됐습니다. 디바이스와 서버를 자동으로 동기화시켜주는 기능을 합니다. 다음과 같이 Account가 추가됩니다. 어떤 방식으로 sync할 것인지는 사용자가 매니지할 수 있습니다. 

1. 서버의 데이터가 변경됐을 때
2. 디바이스의 데이터가 변경됐을 때
3. 시스템이 네트워크 메시지를 보냈을 때
4. 특정 주기로
5. 필요할 때


SyncAdapter 장점

1 ~ 4번의 sync 시 프레임워크 내 어카운트가 등록되어 별도의 인증없이 가능합니다. 게다가 디바이스의 베터리 상황에 따라 OS가 sync 여부를 판단한다고 합니다. 구글 도큐멘트에선 5번을 권장하진 않습니다. 유저에게 리프레쉬 권한을 주면 데이터가 변경되었다는 아무런 근거 없이 sync를 시도하게 되어 네트워크와 배터리 자원을 효율적으로 이용하지 못하게 된다는 게 설명입니다. (안드로이드 디벨로퍼 문서 참조)


SyncAdapter 단점

SyncAdapter는 Content Provider와 붙어 다닙니다. Content Provider는 다른 어플리케이션과 데이터를 공유하지 않으면 굳이 만들 필요가 없는데 SyncAdapter를 쓰려면 달아야 한다는 거죠. 물론 Dummy로 만들면 CP를 모두 구현하지 않아도 됩니다. SyncAdapter를 Device와 서버 간의 데이터 전송을 전담하는 객체로 만들 수 있는 까닭에 구조적으로 앱을 더 깔끔하게 만들 수 있게도 해줍니다. 

+ Recent posts