오프라인 우선이란 무엇을 의미하나요?
'오프라인 우선'이라는 용어는 인터넷에 접속하지 않고도 핵심 기능의 대부분 또는 전부를 수행할 수 있도록 제작된 모바일 앱을 의미합니다. 개념은 간단하지만 모바일 앱이 이렇게 개발되는 경우는 많지 않습니다. 대신 멀리 떨어진 클라우드 데이터 센터의 데이터에 액세스하도록 구축되어 인터넷에 의존하게 됩니다. 즉, 네트워크 연결이 느려지거나 사용할 수 없게 되면 앱도 느려져 사용자에게 불편을 주고 앱 채택률이 떨어집니다. '오프라인 우선' 접근 방식으로 앱을 구축하면 인터넷 종속성을 근본적으로 제거하여 앱의 속도와 안정성을 높일 수 있습니다.
오프라인 우선 개념의 핵심은 원격 위치의 사용 사례에만 적용되는 것이 아니라 모든 모바일 앱 개발 노력의 표준 접근 방식으로 간주되어야 한다는 점을 이해하는 것입니다.
이 개념에 대해 더 자세히 알아봅시다...
규칙 #1: 인터넷은 신뢰할 수 없습니다.
모바일 앱이 인터넷 종속성으로 구축되는 이유는 무엇인가요? 크게 두 가지 이유가 있습니다:
-
- 연결이 항상 빠르고 가용할 것이라는 가정과 RESTful API 및 클라우드 백엔드 같은 인터넷 기반 리소스의 보급으로 인해 인터넷에 의존하는 앱을 개발하는 것이 쉬운 선택이 되었습니다.
- 오프라인 우선 요건은 대도시 지역에는 적용되지 않는다는 가정, 즉 에너지 탐사, 경암 채굴 또는 야생 구조 작업과 같이 이국적이고 고립된 초원거리 사용 사례, 즉 앱이 장시간 인터넷 불통 지역에서 작동해야 하는 경우에만 적용된다는 가정이 있습니다.
이러한 가정은 인터넷 연결 없이는 작동할 수 없는 수많은 모바일 앱의 개발로 이어졌습니다. 이러한 애플리케이션이 필요한데 네트워크를 사용할 수 없다면 안타까운 일이 아닐 수 없습니다!
오프라인 우선은 틈새가 아닌 기본이 되어야 합니다.
모바일 앱은 모바일 디바이스에서 실행된다는 특성상 끊임없이 장소를 이동하기 때문에 지구상에서 가장 현대적인 도시 한복판에서도 언제든 네트워크 커버리지가 끊길 수 있습니다. 사용자는 지하철, 엘리베이터, 지하 주차장, 터널 등 잠시만 연결이 끊겨도 인터넷에 의존하는 앱을 사용할 수 없게 될 수 있는 장소에 들어가게 됩니다.
스트리밍 영화에서 중요한 장면을 보거나, 다음과 같은 상황을 경험한 적이 있을 것입니다. 보내기만 누르면 됩니다. 중요한 이메일을 확인해야 하거나, 새벽 2시인데 공항에서 차량 공유 서비스를 이용해야 하는데 인터넷에는 다른 계획이 있을 때!
이러한 시나리오가 익숙하게 들린다면 앱이 연결되지 않아 실패할 때마다 사용자가 겪는 좌절감을 이해하실 것입니다.
그리고 이러한 유형의 경험이 용인될 것이라는 기대는 잘못된 생각입니다. 사실 70% 의 모바일 앱 사용자가 로딩 시간이 너무 오래 걸리는 앱을 포기하고 84% 의 앱 사용자가 단 두 번만 실패해도 앱을 포기할 것이며, 이는 인터넷에 의존하는 앱에서 연결이 중단될 때 발생하는 문제일 뿐입니다.
안정적인 인터넷 연결을 계획하고 중단을 오류로 간주하는 것이 아니라 인터넷의 내재된 불안정성을 예상하고 이를 중심으로 개발하는 개발 사고방식의 전환이 필요합니다. 즉, 가장 빠르고 안정적인 모바일 앱을 개발하려면 다음을 수행해야 합니다. 항상 오프라인 우선 빌드.
오프라인 우선 모바일 앱의 핵심 구성 요소
오프라인 우선 모바일 앱을 개발할 때 가장 중요한 측면은 데이터를 처리하는 방식입니다. 인터넷 종속성을 제거하려면 데이터를 앱에 로컬로 저장하고 처리해야 합니다. 또한 데이터를 다른 사용자와 공유할 수 있어야 하며, 데이터 변경 사항이 앱 에코시스템 전체에 즉각적이고 정확하게 반영되도록 해야 합니다.
요컨대, 다음이 필요합니다:
-
- 로컬 데이터 처리 - 모바일 디바이스에서 데이터 지속성을 유지하여 네트워크가 없는 경우에도 앱 가용성을 유지합니다. 또한 데이터가 로컬에 저장되므로 실시간 응답성이라는 이점이 추가됩니다.
- 클라우드 데이터 처리 - 오프라인 우선 모델에서 클라우드는 여전히 앱 데이터의 중앙 집계 지점이라는 중요한 역할을 합니다.
- 데이터 동기화 - 앱 클라이언트와 클라우드 간에 데이터를 동기화하여 앱 에코시스템의 데이터 일관성과 무결성을 보장합니다.
중요한 구성 요소에 대해 자세히 살펴 보겠습니다...
로컬 데이터 처리
네트워크를 사용할 수 없을 때 앱 가용성을 유지하려면 데이터를 로컬에 저장해야 합니다. 이를 위해 일부 클라우드 데이터베이스 공급업체의 모바일 솔루션은 연결이 복구되어 백엔드 클라우드 데이터베이스에 커밋될 때까지 쓰기를 수집하여 대기열에 보관하는 온디바이스 임시 데이터 캐싱을 제공합니다. 그러나 이 접근 방식은 앱이 너무 오래 오프라인 상태일 경우 대기열이 커지면 앱 성능에 영향을 미치기 시작하기 때문에 문제가 발생할 수 있습니다. 또한 임시 캐싱은 수집할 수 있는 데이터 양에 엄격한 제한을 두며, 제한을 초과하면 데이터 손실의 위험이 있습니다.
임시 캐시와 달리 임베디드 데이터베이스는 고속 및 장기 데이터 저장을 위해 설계되었기 때문에 더 탄력적이고 안전하며 처리 효율이 높습니다. 임베디드 데이터베이스는 오프라인 퍼스트 모바일 앱의 첫 번째 선택이 되어야 합니다. 이상적인 임베디드 데이터베이스 기술에는 다음이 포함됩니다:
-
- 장애 조치를 제공하고 데이터 손실 위험을 최소화하기 위한 온디바이스 백업 지원
- 빠른 앱 시작을 위해 사전 구축된 데이터베이스를 배포하는 기능
- 비동기식 데이터베이스 변경 알림으로 반응형 워크플로우 지원
- 선호하는 프로그래밍 언어와 플랫폼을 위한 직관적이고 사용하기 쉬운 SDK
- 전체 SQL 지원
- 기본 제공 검색
클라우드 데이터 처리
오프라인 우선 환경에서는 클라우드 데이터베이스가 여전히 모바일 애플리케이션의 모선 백엔드 역할을 합니다. 유연성과 확장성을 극대화하려면 고가용성 및 내결함성을 위해 분산되어 설계된 NoSQL JSON 문서 데이터베이스가 이상적인 선택입니다. 또한 JSON 문서 스토리지 모델은 관계형 데이터베이스보다 훨씬 덜 경직되어 있어 변경이 쉽고 빠르므로 개발 속도가 빨라집니다. 이상적인 클라우드 데이터베이스 기술에는 다음이 포함됩니다:
-
- 키-값, 인덱싱, 전체 텍스트 검색, 분석, 시계열 및 이벤트 기본 제공
- 전체 SQL 지원
- 자동 샤딩, 자동 페일오버, 자동 복제
- 호스팅 또는 자체 관리 옵션
데이터 동기화
오프라인 첫 앱 퍼즐의 중요한 조각은 다른 앱 클라이언트와 데이터 변경 사항을 공유하는 것입니다. 사용자가 가격이나 예상 번호와 같은 주요 정보를 업데이트한다고 가정하면, 앱을 사용하는 다른 모든 사용자가 업데이트된 정보를 볼 수 있도록 해야 합니다. 이를 위해서는 모바일 앱이 데이터를 자동으로 동기화할 수 있는지 확인해야 합니다.
모바일 앱의 데이터 동기화 구축은 간단해 보이지만 본질적으로 복잡하므로 직접 해보고 싶은 충동을 억제하세요. 많은 개발팀이 순진하게 자체 동기화 솔루션을 구축하려고 시도하다가 핵심 애플리케이션에 더 잘 사용할 수 있는 엄청난 양의 개발 시간을 낭비한 후 실패하는 경우가 많습니다. 그 이유는 다음과 같습니다. 동기화는 단순한 데이터 복제 그 이상입니다.를 통해 매번 안전하고 정확하며 효율적이고 즉각적인 작업을 수행할 수 있습니다. 데이터 동기화를 직접 구축하지 마세요를 클릭하고 이미 모바일 동기화를 제공하는 데이터베이스를 찾습니다. 이상적인 동기화 기술에는 다음이 포함됩니다:
-
- 기본 제공 충돌 해결 기능
- 보안 액세스
- 양방향 동기화
- 연결 장애를 처리하기 위한 네트워크 상태 모니터링
- 인터넷 연결과 무관하게 피어 투 피어 데이터 동기화
- 델타 동기화, 변경된 데이터만 동기화합니다.
- 필터 및 데이터 파티셔닝을 통해 데이터를 정밀하게 라우팅하고 격리
완전히 조립된 오프라인 우선 앱 아키텍처는 다음과 같은 모습입니다:
이러한 중요한 구성 요소를 갖추면 네트워크 속도 저하나 장애에 영향을 받지 않는 모바일 앱을 개발할 수 있습니다.
그렇다면 어디서부터 시작해야 할까요? 오프라인 우선 앱을 위해 설계된 모바일 데이터베이스 플랫폼으로 시작하세요.
Couchbase Mobile: 오프라인 우선 앱을 위한 최고의 선택
Couchbase Mobile은 더 빠르고 안정적인 모바일 앱을 구현하기 위해 특별히 구축된 강력하고 성숙한 모바일 데이터베이스 플랫폼입니다. 다음과 같은 필수 구성 요소를 제공하여 오프라인 우선 아키텍처를 우아하게 지원합니다:
-
- 카우치베이스 라이트 - SQL, 내장된 P2P 동기화, 광범위한 모바일 플랫폼을 지원하는 임베디드 모바일 NoSQL 데이터베이스입니다.
- 카우치베이스 카펠라 - SQL, 검색, 분석, 이벤트 지원을 제공하는 완전 관리형 클라우드 NoSQL 서비스형 데이터베이스(DBaaS)입니다.
- 카펠라 앱 서비스 - 모바일 및 엣지 앱의 양방향 동기화, 인증 및 액세스 제어를 위한 완전 관리형 서비스입니다.
Capella 앱 서비스는 웹소켓 기반의 데이터 동기화를 통해 백엔드 Capella DBaaS와 엣지 디바이스의 Couchbase Lite 임베디드 앱 간에 데이터를 동기화합니다. 앱 서비스를 사용하면 연결이 허용하는 한 데이터 변경 사항이 앱 에코시스템 전체에 즉시 자동으로 복제되며, 네트워크가 중단되는 동안에도 임베디드 Couchbase Lite 데이터베이스 덕분에 앱이 계속 작동합니다.
결론
오프라인 우선 구축은 앱이 인터넷 속도 저하와 중단에 영향을 받지 않을 뿐만 아니라 사용자에게 우수한 경험을 제공하므로 최신 모바일 앱의 사실상의 디자인 모델이 되어야 합니다.
가장 빠르고 안정적인 모바일 앱을 제공하려면 다음을 수행해야 합니다. 항상 카우치베이스 모바일을 사용하여 오프라인 우선으로 구축하세요.