카우치베이스 모바일

MobileSync란 무엇이며 왜 사용해야 하나요?

모바일 앱은 충분히 어렵습니다. 툴킷에 라이브러리를 하나만 추가해도 빌드 프로세스에 시간이 더 걸릴 수 있습니다. 그렇다면 MobileSync란 무엇이며 왜 시간을 투자해야 할까요? 간단히 답하자면 동기화는 모든 단계에서 네트워크 프로그래밍에 대한 관례적인 부담 없이 분산된 데이터에 액세스할 수 있도록 해줍니다. 애플리케이션에서 사용자 데이터를 가져오고 저장하기 위해 네트워크 호출을 하는 경우 다음과 같은 동기화 라이브러리를 사용하면 됩니다. 카우치베이스 라이트 를 사용하면 개발 시간과 좌절감을 줄이는 동시에 더 빠르고 안정적인 사용자 인터페이스와 같은 추가적인 이점을 얻을 수 있습니다.

동기화는 사람마다 다른 의미로 사용됩니다. 아마도 가장 널리 알려진 동기화 시스템은 여러 대의 컴퓨터에서 파일을 동기화하고 공유하는 데 사용되는 Dropbox 클라우드 서비스일 것입니다. Dropbox 용량만 충분하다면 팀원들과 파일을 공유할 수 있는 좋은 방법입니다.

동기화와 일반 클라우드 데이터 스토리지의 차이점은 동기화는 데이터를 사전에 장치로 가져오는 반면, 클라우드 스토리지는 일반적으로 요청에 따라 액세스한다는 점입니다. Dropbox에서는 오프라인 상태에서도 파일을 수정하고 새 파일을 만들 수 있습니다. 다시 연결하면 변경한 내용이 클라우드에 동기화되고 새 파일이 다운로드됩니다. 따라서 사용자(및 애플리케이션 프로그래머)는 네트워크 연결 상태에 대해 걱정할 필요가 없습니다.

모바일 애플리케이션 개발자는 데이터베이스 동기화(예: 카우치베이스 라이트)를 사용하면 각 사용자 입력 작업에 따라 개별 네트워크 요청을 트리거할 필요 없이 로컬에서 구조화된 데이터를 사용할 수 있습니다. 따라서 개발자는 네트워크 API가 아닌 비즈니스 로직에 집중할 수 있습니다.

동기화의 가장 큰 장점은 네트워크 계층을 통한 추상화로 애플리케이션 개발자가 네트워크 연결 상태에 관계없이 데이터와 상호 작용할 수 있다는 점입니다. 이것이 큰 장점이라면 어떤 종류의 앱이 동기화를 사용해야 할까요?

* 최소한의 서버 측 코딩으로 여러 디바이스와 운영 체제에서 사용자 데이터(작성된 콘텐츠, 그림, 게임 데이터 등)를 사용할 수 있어야 하는 경우.

* 사용자가 연결이 끊어졌을 때 데이터를 편집하고 다시 연결할 때 기록 시스템과 조정하기를 원합니다. (항공사 조종사, 자원 추출, 배달, 의료 서비스 등)

* 복잡한 데이터 유형(및 단순한 데이터 흐름)을 가진 애플리케이션. 메시징과 게임 내 분석 기능이 통합된 턴 기반 단어 게임을 하는 경우 동기화를 통해 작업을 간소화할 수 있습니다. 이 사용 사례에 대한 예시 앱이 곧 제공될 예정입니다.

* 잡지 등의 콘텐츠 전송 HTML5 인터랙티브 매거진과 같은 콘텐츠를 제공하는 경우 동기화를 통해 인터랙티브 콘텐츠를 쉽게 추가할 수 있습니다.

이와 같은 앱을 만들고 동기화를 사용하려는 경우 스스로에게 한 가지 질문을 던져야 합니다: "각 사용자에게 어떤 데이터가 중요한지 예측할 수 있는가?"

게임 앱에서는 현재 플레이 중인 게임의 상태와 상대방의 사용자 프로필 데이터, 사진 공유에서는 각 친구의 최근 사진, 파일럿의 경우 오늘 비행에 대한 데이터 등 매우 쉬운 앱도 있습니다.

관계형 데이터베이스를 이미 사용하고 있는 기존 웹 앱은 JSON 문서 저장소를 이미 사용하고 있는 앱보다 동기화를 준비하는 데 더 많은 작업이 필요할 수 있습니다. 또는 앱에서 각 요청의 유효성을 검사하기 위해 복잡한 백엔드 로직을 실행해야 하는 경우 동기화를 활성화하기가 쉽지 않을 수 있습니다. 마찬가지로 동기화는 사용자가 주제에 대한 초기 검색 쿼리에 대해서는 도움이 되지 않습니다. 하지만 앱에 저장된 검색 기능이 있는 경우 동기화를 사용하면 결과 집합을 점진적으로 업데이트하는 데 유용할 수 있습니다.

Couchbase 동기화 기술을 사용하는 대규모 커뮤니티가 있습니다. 메일링 리스트에 가입하여 당사에 대해 알아보세요.또는 시작할 준비가 되었다면 이 튜토리얼을 사용해 보세요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 J. Chris Anderson, 공동 창립자 겸 모바일 설계자, Couchbase

댓글 하나

  1. 니콜라스 오르 3월 14, 2013에서 4:24 오전

    동기화에서 제가 어려움을 겪고있는 것은 하나의 버킷을 사용하는 경우 해당 버킷 전체가 동기화되어야하지 않습니까?.. (사용자 특정 데이터와 다른 모든 사용자 데이터) 동기화되는 항목에 선택적 필터가 있어야한다고 생각합니다. 사용자 당 버킷은 최소 2,000 명의 사용자를 원하기 때문에 불가능 해 보입니다... 그것을 관리하고 적절한 크기를 조정하는 방법을 알아 내고 싶지 않습니다... 이것을 조사해야합니다 :)

    1. 동기화 게이트웨이를 통해 클라이언트는 동기화 대상을 필터링할 수 있습니다. 버킷에 있는 문서는 '채널'에 태그가 지정되고 할당되며, 동기화 연결을 하는 클라이언트는 현재 관심 있는 채널을 지정합니다. 사용자가 볼 수 있는 채널을 제어하는 ACL도 있습니다.

      이 모든 기능은 현재 개발 중이며 프리 알파 단계이지만 프로젝트의 README에서 개요를 확인할 수 있습니다:

      https://github.com/couchbasela

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.