여러 파트로 구성된 이 블로그는 Couchbase Lite를 사용하여 엔드투엔드 모바일 애플리케이션을 구축하는 데 도움이 됩니다. 최첨단 엔드투엔드 확장 가능한 프로덕션급 애플리케이션에는 다음과 같은 기능이 포함되어 있습니다:

    1. An 임베디드 데이터베이스 - 데이터를 로컬에 저장하면 모든 활동에 대해 중앙 집중식 데이터베이스로의 네트워크 이동을 줄일 수 있습니다. 이는 사용자 경험을 개선하는 데 매우 중요합니다.
    2. 동기화 다른 피어 모바일 디바이스 및 중앙 집중식 서버와 함께 사용할 수 있습니다. 
    3. 고급 분석 기능, 전체 텍스트 검색 및 머신 러닝을 지원합니다.

다루어야 할 내용이 많기 때문에 이 프로젝트를 세 부분으로 나누었습니다. 1부에서는 Couchbase Lite를 활용하여 데이터를 저장하는 임베디드 데이터베이스로 사용하는 모바일 애플리케이션을 구축하는 과정을 보여드립니다. 2부에서는 디바이스에서 전체 텍스트 검색(FTS)을 실행하는 방법을 설명합니다. 그리고 p아트 3에서는 피어 및 중앙 집중식 Couchbase 서버와 데이터를 동기화하는 과정을 보여드립니다.

카우치베이스 모바일이란 무엇인가요? 

카우치베이스 모바일 포함:

    1. 임베디드 카우치베이스 라이트 엣지 디바이스용 데이터베이스
    2. 고성능 동기화 게이트웨이 피어 투 피어 및 중앙 서버 동기화용
    3. 엣지 데이터 센터는 다음을 기반으로 합니다. 카우치베이스 서버 클라우드, 온프레미스 또는 로컬 엣지 데이터센터에 배포할 수 있습니다.

Couchbase Mobile architectural diagram

모바일 애플리케이션 개요

이 데모 애플리케이션의 코드는 내 카우치베이스 모바일 GitHub 리포지토리. 다운로드 Rateit.zip 를 클릭하고 로컬 폴더에 파일을 추출합니다. 또는 이 블로그의 지침에 따라 처음부터 앱을 빌드할 수도 있습니다.

앱의 기능은 세 부분으로 나뉩니다:

    1. 평점 요청 보내기
    2. 다른 사람의 평가 요청 받기
    3. 다른 사용자로부터 반환된 평점 요청 보기
평점 요청 보내기

이 애플리케이션에서 구축할 앱은 사람에게 평점 요청을 보내고 평점 요청을 다시 받습니다.

그리고 보내기 필드에는 요청을 보낼 사람의 전화번호가 표시됩니다. 요청을 보낼 사람의 메시지 필드에 입력하면 상대방이 무엇을 하길 원하는지 알 수 있습니다. 이 경우에는 평점 요청이므로 미리 정의된 메시지인 "평점 1~5"가 표시되어 있어 요청을 다시 보낼 때 평점을 제공해야 함을 나타냅니다.

그리고 주제 필드는 예를 들어 다음과 같이 평가를 원하는 주제를 나타냅니다:

배우 배우: 크리스 헴스워스

Book: 오만과 편견

www.google.com

필드에 대한 엄격한 편집 유효성 검사는 없지만 프로덕션급 모바일 앱을 빌드할 때 수행해야 하는 작업입니다.

클릭할 때 보내기를 누르면 응답을 원하는 상대방에게 요청이 전송됩니다. 향후 게시물에서 다른 장치 및 중앙 서버와 피어 투 피어 동기화에 대해 설명할 예정이므로 여기서는 피어 투 피어 동기화에 초점을 맞추고자 합니다. 로컬 오프라인 모드 기능을 제공합니다. 

받은 평가 요청 

앱의 이 섹션에서는 다른 사용자로부터 받은 평점 요청에 응답할 수 있습니다. 평가에 별 개수를 입력할 수 있는 평가 표시줄이 정의되어 있습니다. 

요청을 보낼 때 이 앱의 범위 내에 머물 수 있도록 다음 값을 하드코딩했습니다. 발신자 그리고 수신자. 사용했습니다 Sandhya 를 발신자로 지정하고 랑가나 를 수신자로 설정합니다. 이 섹션에는 다음에 대한 모든 요청이 표시됩니다. 랑가나,TO 필드는 랑가나.

수신되는 평점 요청

이 섹션에는 등급을 보내고 받은 모든 요청이 나열되어 있습니다.

이제 모든 섹션을 명확하게 이해할 수 있도록 예제를 살펴보겠습니다.

먼저, 전화번호 732-600-7000번으로 오만과 편견에 대한 평가를 요청하는 메시지를 보내주세요.

Sample screen of Couchbase Mobile app

를 클릭하면 등급 요청 수신 여기서는 데모용으로 다른 사람에게 보낸 것을 보여주는 것입니다. 실제 세계에서는 이 메일이 실제 수신자에게 전달될 것입니다.

Receiving a messaging in the sample mobile app

별 4개 등급을 선택하고 요금 버튼을 클릭하면 전송으로 되돌아가기 시작합니다(이 등급 요청은 아래 그림과 같이 저에게 다시 전송됩니다):

이제 수신 등급 요청를 클릭하면 평점이 보낸 사람인 저에게 돌아갔는지 확인할 수 있습니다. 다시 돌아와서 별 4.0의 평점이 표시된 것을 볼 수 있습니다.

그리고 삭제 버튼을 눌러 특정 행을 지금 제거할 수 있습니다.

이제 앱을 만들어 보겠습니다!

시작하기: CBLite 문서 검토

다음 내용을 검토하세요. 문서 를 통해 Couchbase Lite 데이터베이스 애플리케이션의 다양한 구성 요소를 이해할 수 있습니다. 이 앱의 경우 애플리케이션이 처음 호출될 때 새로운 데이터베이스를 생성합니다. 또는 앱에서 미리 빌드된 데이터베이스를 사용할 수도 있습니다.

데이터베이스를 임베드하는 단계는 여기에서 찾을 수 있습니다. 카우치베이스 라이트 문서. 각 섹션을 검토하여 다음 개념을 학습하세요:

    • 데이터베이스 만들기 및 열기
    • 임베디드 데이터베이스에 문서 작성
    • 문서 검색을 위한 쿼리 작성
    • 문서 만료 또는 삭제

Couchbase Mobile documentation

앱 구축 전제 조건

이 앱은 다음 소프트웨어 및 하드웨어 사전 요구 사항을 사용하여 Android 기기용으로 제작되었으므로 주의해야 합니다:

    1. Android Studio로 앱을 빌드하고 Java로 프로그래밍하는 기본 사항을 이해해야 합니다.
    2. 이 데모 앱과 관련 스크린샷은 MacOS 컴퓨터에서 앱을 빌드한 결과물입니다.
    3. 무료로 사용할 수 있습니다, 안드로이드 스튜디오 2020.3 를 사용하여 Android 기기용 모바일 앱을 구축할 수 있습니다. 
    4. 카우치베이스 라이트 버전 3.0.0-beta02가 사용됩니다. 필요한 라이브러리는 코드에 내장되어 있으므로 데스크톱에 소프트웨어를 수동으로 다운로드할 필요가 없습니다.

애플리케이션 구축

데스크톱에 안드로이드 스튜디오가 설치되어 있는지 확인하고 새 프로젝트를 생성한 후 다음을 선택합니다. 빈 활동 를 프로젝트 유형으로 선택합니다. 안드로이드 스튜디오는 사용자가 선택한 내용에 따라 메인 페이지의 템플릿을 빌드합니다. 저는 맞춤형 앱 첫 페이지를 만들고 싶어서 이 템플릿을 선택했습니다.

Starting an Android Studio projectAndroid Studio project settings

에서 사용한 다양한 설정을 확인할 수 있습니다. 새 프로젝트 양식을 추가합니다. 이렇게 하면 컴파일되어 에뮬레이터에서 실행될 때 "hello world"를 표시하는 앱이 생성됩니다. 앱용 에뮬레이터를 만들려면 다음을 클릭합니다.  도구 → AVD 관리자 → 가상 장치 만들기.

이렇게 하면 실제 기기를 구입하여 코드를 컴파일하거나 배포할 필요 없이 에뮬레이트할 수 있는 기기 목록이 제공됩니다. 저는 NEXUS 5X API 25.

Choosing a virtual device for the Android Studio emulator

에뮬레이터를 실행하면 다음 화면에 기본 애플리케이션이 비어 있는 상태로 표시됩니다:

Basic mobile app main window

여기에서 실제 Rateit 앱 컴포넌트를 구축합니다:

찾기 build.gradle(Module.App.rateit) 를 클릭하고 다음과 일치하도록 내용을 수정합니다:

    • 그리고 compileSDK 그리고 minSDK 에뮬레이터의 버전을 선택합니다.
    • 사용 중인 Java 버전입니다.
    • 다음을 추가합니다. 구현 줄을 추가합니다:

레이아웃 

레이아웃 파일은 모바일 애플리케이션 화면을 설명하는 XML 파일입니다. 그리고 activity_mail.xml 파일은 프로젝트 폴더에 존재하며 프로젝트 폴더의 깃허브 코드. 나머지 XML 파일은 오른쪽 클릭으로 추가할 수 있습니다. 레이아웃 → 새로 만들기 → XML → 레이아웃 XML 파일.

Adding new layouts to an Android Studio project

레이아웃 XML 파일을 세 개 더 생성할 수 있습니다:

activity_main.xml 

여기에는 보내기, 메시지, 주제 필드 뿐만 아니라 에 대한 두 가지 목록 보기 보낸 그리고 수신됨 요청을 정의합니다. 또한 다음과 같은 경우 어떤 함수를 호출할지 정의합니다. 등급 요청을 보내려면 클릭하세요., 등급 요청 수신 그리고 수신 등급 요청 버튼을 누릅니다. XML 코드는 직접 작성할 수도 있고 속성 섹션으로 이동합니다.

CustomLayout.xml 

여기에는 목록 보기 그리고 모든 등급 요청 수신 를 호출할 때 어떤 함수를 호출할지 정의합니다. 평가 그리고 삭제 버튼을 누릅니다. 

CustomLayoutRated.xml 

이 레이아웃에는 목록 보기 그리고 모든 수신 등급 요청 를 호출할 때 호출할 함수도 정의합니다. 삭제 버튼을 누릅니다.

Rateit 앱

앱의 메인 페이지에는 세 개의 버튼이 있습니다:

    1. 등급 요청을 보내려면 클릭하세요.
    2. 등급 요청 수신
    3. 수신 등급 요청

그리고 mainactivity.java 파일은 프로젝트 폴더에 존재하며 다음과 같은 코드로 대체해야 합니다. GitHub 리포지토리. 나머지 Java 파일은 다음을 클릭하여 추가할 수 있습니다. Java강조 표시 com.example.rateit 을 클릭하고 신규 → Java 클래스. 각각에 대한 클래스를 만듭니다:

    • User.java
    • UserCustomAdapter.java
    • Rated.java
    • RatedCustomAdapter.java

Adding new Java classes to an Android Studio project

코드 검토하기 

Mainactivity.java

찾기 Mainactivity.java 아래 Java → com.example.rateit 폴더를 열고 클래스 안에 다음 코드를 붙여넣습니다. 주요 활동

그리고 senddata 함수는 다음과 같은 경우에 활성화됩니다. 등급 요청을 보내려면 클릭하세요. 을 클릭합니다. 모든 입력 필드를 수집하고 두 개의 문서를 생성합니다. 보내기 유형 중 하나 수신됨. 수신된 레코드 유형은 레코드가 있는 등급 요청 수신

블로그 시리즈의 2부에서는 피어 투 피어 동기화 기능을 보여드리며, 두 번째 장치에서 이 요청을 수신하게 되므로 수신된 기록의 쓰기가 제거됩니다.

그리고 받은 데이터 함수는 다음과 같은 경우에 활성화됩니다. 등급 요청 수신 을 클릭하면 접수된 모든 평점 요청이 표시됩니다. 로컬 데이터베이스에 대한 쿼리를 실행하여 레코드를 가져옵니다. 평점을 입력하면 평점을 입력할 수 있으며, 평점이 포함된 JSON 레코드를 생성합니다. 요금 버튼을 클릭하면 요청을 문서 유형이 정격. 만약 삭제 버튼을 클릭하면 레코드가 삭제되지만 TTL (만료 시간)을 설정할 수 있습니다.

그리고 수신 등급 함수가 활성화되면 수신 등급 요청 버튼을 클릭하면 사용자가 보낸 평점 중 다른 사람이 평가하고 돌아온 모든 평점을 표시합니다. 사용자가 삭제 버튼을 누르면 TTL(Time to Live) 속성이 만료되도록 설정됩니다.

Rated.Java평점 클래스와 레코드의 다양한 속성을 설정하고 가져옵니다. 

RatedCustomAdapter.java 그리고 RatedHolder.java 를 클릭하면 목록 뷰가 채워집니다. 레이아웃은 CustomLayoutRated.xml

User.java 에는 문서 속성을 채우는 데 필요한 문서 속성에 대한 가져오기 및 설정 함수가 있습니다. 등급 요청 수신 목록 보기.

UserCustomAdapter.java 그리고 UserHolder.java 에는 등급 요청 수신 목록 보기를 포함한 등급 표시줄기록의 내용 및 요금 그리고 삭제 버튼

이러한 모든 코드가 앱의 적절한 폴더와 파일에 배치되면 프로젝트 폴더는 다음과 같은 모양이 됩니다:

File structure of Android Studio project

코드 컴파일하기 

모든 코드가 업데이트되면 빌드 → 프로젝트 다시 빌드. 성공하면 빌드 → 실행.

앱을 처음 실행할 때 에뮬레이터를 선택하라는 메시지가 표시됩니다. NEXUS 5X API 25 를 클릭합니다. 실행이 완료되면 메인 페이지는 다음과 같이 표시됩니다:

Final main screen of Android Studio app running Couchbase Mobile

이제 선택한 에뮬레이터에 코드를 성공적으로 배포했습니다.

다음 단계

블로그 시리즈의 첫 번째 파트입니다, Couchbase로 모바일 애플리케이션 구축를 통해 완벽한 엔드투엔드 모바일 솔루션에 대해 알아보세요. 이 게시물에서는 로컬 임베디드 Couchbase Lite 데이터베이스를 사용하여 오프라인 모바일 앱을 구축하는 방법을 보여드렸습니다.

다음 연재에서는 동기화 게이트웨이 기능으로 빌드하여 피어 투 피어 동기화 기능과 중앙 집중식 카우치베이스 서버 클러스터와의 동기화 기능을 보여드리겠습니다.

이 게시물에 참조된 주요 리소스에는 다음이 포함됩니다:

작성자

게시자 Sandhya Krishnamurthy, 선임 솔루션 엔지니어, Couchbase

산디아 크리슈나무르티는 데이터베이스 개발 배경과 사전 영업 경험이 풍부한 기술 전문가입니다. 그녀는 파트타임 아티스트, 파트타임 가수, 풀타임 엄마이기도 합니다.

댓글 남기기