모바일 개발자 생산성을 혁신하는 JSON Anywhere

카우치베이스가 오늘 발표한 모바일 기술은 모바일 애플리케이션 개발자들이 웹 중심의 LAMP 스택에서 벗어나 통합 모바일 스택으로 전환하는 시작을 알리는 신호탄입니다. JSON Anywhere를 사용하면 개발자는 디바이스와 클라우드 간에 데이터를 푸시하는 데 필요한 코드를 작성하는 대신 사용자를 위한 가치 창출에 집중할 수 있습니다. 저희 엔지니어들은 이 프로젝트의 시작부터 개발자 경험에 초점을 맞춰 왔기 때문에 다음과 같이 개발자를 만족시킬 수 있는 많은 세부 사항들이 있습니다. 소셜 로그인 지원iOS의 UITableView를 위한 라이브 데이터 바인딩하지만 생산성에 가장 큰 영향을 미치는 두 가지 측면은 JSON 스키마의 유연성과 다른 디바이스 및 백엔드 데이터베이스와의 원활한 JSON 동기화입니다.

많은 개발자와 마찬가지로 저도 처음에 데이터베이스 형식인 JSON의 유연성 때문에 NoSQL에 끌렸습니다. 언제든지 문서에 새 필드를 추가할 수 있기 때문에 애플리케이션 개발자는 데이터베이스 마이그레이션을 기다릴 필요가 없습니다. 그동안 많이 말했다애자일 개발 관행과 함께 JSON 사용에서 설명했으므로 여기서는 반복하지 않겠습니다. Couchbase Lite의 중요한 점은 JSON의 강력한 성능과 유연성을 모바일로 가져온다는 점입니다.

모바일 애플리케이션의 경우 구 버전의 소프트웨어를 실행하는 사용자와 최신 업그레이드 버전을 사용하는 사용자가 섞여 있는 경우가 많기 때문에 JSON은 특히 유용합니다. JSON을 사용하면 대부분의 코드가 사용하지 않는 '추가' 필드를 무시합니다. 사용자가 최신 버전의 앱으로 업그레이드하더라도 여전히 이전 버전을 실행 중인 사용자와 계속 상호 작용할 수 있습니다. 새 버전의 앱에서 사용하는 필드는 이전 버전에서 무시됩니다. 따라서 사용자가 하던 작업을 중단하고 바로 업그레이드하도록 강요하지 않고도 사용자가 자신의 속도에 맞춰 업그레이드할 수 있습니다. 기존 아키텍처에서도 롤링 업그레이드를 지원할 수 있지만, 유연한 데이터베이스를 사용하면 자연스러운 결과 대신 서버 개발 팀의 추가 작업이 필요합니다.

애플리케이션 개발자는 생산성을 높이거나 더 적은 코드로 더 나은 사용자 경험을 구축할 수 있는 도구와 기술을 항상 찾고 있습니다. 우리는 웹 아키텍처에서 애드혹 CGI 스크립트에서 관리형 애플리케이션 서버로, Java에서 개발자의 행복에 초점을 맞춘 Ruby나 JavaScript와 같은 언어로 전환하는 것을 이미 경험한 적이 있습니다. 이러한 전환은 개발자 생산성의 비약적인 향상으로 이어질 때만 성공할 수 있으며, 이러한 새로운 플랫폼이 약속한 바가 바로 그것입니다. 루비 온 레일즈가 처음 발표되었을 때, 많은 개발자가 이 플랫폼의 이점을 활용하기 위해 몰려들었습니다. 생산성 차익 거래 기회 동일한 작업에 대해 고객에게 더 적은 비용을 청구하고 동급의 Java 팀보다 더 많은 수익을 창출할 수 있습니다.

원활한 동기화는 관계형에서 JSON으로 전환하는 것보다 훨씬 더 많은 생산성 향상을 제공합니다. 모바일 애플리케이션을 위한 기존 웹 서비스 백엔드를 구축하는 것보다 동기화가 더 쉬울 정도로 동기화가 간단해지면서, 더 많은 애플리케이션에서 사용자가 여러 디바이스와 운영 체제에서 데이터에 액세스할 수 있게 될 것입니다. 동기화는 구현하기가 매우 어렵다는 평판이 있습니다. 동기화 구축에 상당한 리소스를 투입한 기업의 사례를 어렵지 않게 찾아볼 수 있습니다. 수년간의 개발 후에도 여전히 버그와 에지 케이스에 직면합니다.. 자체 사용자 지정 동기화 기능을 구축한 앱과 Couchbase Lite를 사용하여 Couchbase 서버와 동기화하는 앱과 Couchbase 동기화 게이트웨이를 사용하는 앱을 비교하는 것은 공정하지 않을 수 있습니다. 동기화 기능을 처음부터 구축하는 사람은 수년에 걸친 프로세스를 시작해야 하며, Couchbase를 통해 "안녕하세요"에 도달하는 데는 몇 분 밖에 걸리지 않습니다.

동기화가 빠르게 새로운 표준이 되고 있지만, 오늘날 대부분의 협업 모바일 앱은 클라우드 서버에 연결되어 있어야 합니다. 따라서 공정성을 위해 예시 앱 중 하나의 백엔드를 Ruby on Rails 백엔드를 사용하는 동일한 앱과 비교하겠습니다. 우리의 목표는 Rails가 이전 버전과 비교했을 때 개발자의 생산성을 크게 향상시키는 기술을 구축하는 것입니다. 따라서 JSON Anywhere 앱과 기존 모바일 앱과 웹 서비스 접근 방식의 차이점을 살펴보겠습니다.

Todo Lite 예제 앱의 백엔드에 대한 소스 코드는 다음에 포함되어 있습니다. 단일 33줄 자바스크립트 함수. 주요 책임은 목록 소유자가 목록 구성원으로 지정한 사람만 각 할 일 목록에 액세스할 수 있도록 하는 것입니다. 또한 각 작업이 관련 목록에 액세스할 수 있는 장치로 라우팅되도록 하는 역할도 담당합니다. 공유 UI를 구동하기 위해 사용자 프로필을 배포하는 몇 줄의 코드도 있습니다. 유사한 앱에 대해 더 자세히 알아보려면 채팅 앱 예제의 데이터 모델 둘러보기를 참조하세요.

기존의 3계층 Rails 앱에는 사용자, 목록 및 작업에 해당하는 모델이 있습니다. 액세스 제한을 캡처하는 "멤버십" 모델도 있을 수 있습니다. 하지만 Rails 스타일 애플리케이션의 가장 큰 특징은 사용자가 작업을 만들거나 확인란을 토글하거나 할 일 목록에 새 멤버를 추가할 때마다 모바일 애플리케이션이 서버에 HTTP 요청을 보낸다는 것입니다. 그러면 서버는 데이터베이스에서 적절한 모델 개체를 로드하고 변경 사항의 유효성을 검사한 다음 데이터베이스에 다시 저장합니다. 그런 다음 다른 모바일 기기에 해당 객체의 표현이 오래되었다는 사실을 알려 새로 고칠 수 있도록 해야 합니다. (모바일 장치가 연결이 끊긴 상태에서 데이터를 수정하는 경우는 아직 고려하지 않았습니다...).

이러한 Rails 앱을 구축하기 위해 작성해야 하는 코드의 양을 대략적으로 계산해 보겠습니다. 사용자/로그인 관련 내용은 일반적으로 애플리케이션의 사용자 정의 코드로 작성되지 않으므로 생략하겠습니다.

  • 모델: 작업, 목록, 멤버십, 각각 10줄씩
  • 컨트롤러: 목록, 작업, 멤버십, 각각 GET, PUT, DELETE가 있는 각 40줄의 목록
  • JSON을 반환하기 때문에 템플릿이 필요하지 않습니다.
  • 수신 클라이언트에 새로 고침 이벤트 전송을 처리하는 50줄의 코드가 추가되었습니다.

따라서 베어본 할 일 목록 애플리케이션을 구축하는 데 필요한 사용자 지정 Ruby on Rails 코드는 총 200줄 정도입니다. 이는 Todo Lite에서 사용하는 Couchbase 동기화 게이트웨이 기능보다 거의 훨씬 더 많은 코드입니다. 어느 쪽을 작성하고 유지 관리하시겠습니까? Couchbase 스택을 사용하면 오프라인 동기화가 가능할 뿐만 아니라 백엔드에 훨씬 적은 코드가 필요하므로 중요한 곳에 가치를 창출하는 데 더 많은 시간을 할애할 수 있습니다.

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

작성자

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

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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