카우치베이스 모바일

JavaFX 데스크톱 애플리케이션에서 Couchbase 사용

저는 멋진 Java SDK를 사용해 Couchbase와 웹 애플리케이션을 꽤 오랫동안 다뤄왔지만, Couchbase를 사용해 데이터를 저장하는 데스크톱 애플리케이션도 만들 수 있다는 사실을 알고 계셨나요? JavaFX와 같은 Java 데스크톱 프레임워크는 Couchbase Java SDK를 사용할 수 있지만, 클라이언트 대면 애플리케이션에서 서버용 SDK를 사용하는 것은 좋은 생각이 아닐 수도 있습니다. 대신 Couchbase의 모바일 솔루션을 사용하여 클라이언트를 대상으로 하는 데스크톱 애플리케이션을 구축할 수 있습니다. 이 솔루션은 Android와 동일한 API를 사용하지만 데스크톱을 염두에 두고 설계되었습니다.

이 데이터를 컴퓨터 간에 동기화하기 위해 JavaFX, Couchbase Lite, 심지어 Couchbase Sync Gateway를 사용하여 간단한 데스크톱 애플리케이션을 구축하는 방법을 살펴 보겠습니다.

요구 사항

이 프로젝트를 성공적으로 수행하려면 몇 가지 요구 사항을 충족해야 합니다.

  • JDK 1.7+
  • Maven
  • 카우치베이스 동기화 게이트웨이

이 프로젝트에서는 Maven을 사용하여 종속성을 수집하고 JAR 파일을 빌드합니다. 동기화 게이트웨이가 반드시 필요한 것은 아니지만 애플리케이션에 동기화 지원을 추가하려는 경우에는 필요합니다.

Maven으로 새로운 JavaFX 프로젝트 만들기

기본적인 Maven 프로젝트를 만들어야 합니다. 이 작업은 원하는 IDE에서 수행하거나 수동으로 수행할 수 있습니다. 기본적으로 필요한 것은 다음과 같은 파일 및 디렉토리 구조입니다:

개발을 시작하면 각 파일에 포함된 내용에 대해 자세히 알아보겠습니다. 지금은 Maven을 설정해야 합니다. pom.xml 파일에 필요한 종속성을 가져올 수 있도록 합니다.

프로젝트의 pom.xml 파일을 열고 다음을 포함하세요:

위의 Maven 파일에서 불필요한 세부 사항을 너무 많이 다루지 않고, 특히 몇 가지 사항에 주목하고자 합니다.

위의 종속성에서 Couchbase Lite를 프로젝트에 포함하고 있음을 알 수 있습니다. Couchbase Lite는 서버 어딘가에 있지 않은 로컬 데이터베이스라는 점을 기억하세요. 데이터는 로컬에 저장되며 컴포넌트는 애플리케이션 내에 번들로 제공됩니다.

다음 플러그인도 주목할 필요가 있습니다:

위의 플러그인은 JavaFX 프로젝트를 생성하기 위한 것입니다. 물론 이 프로젝트 생성은 IntelliJ와 같은 IDE를 사용하면 필수는 아니지만 훨씬 더 쉽습니다.

카우치베이스 싱글톤 클래스 생성하기

JavaFX 프로젝트의 UI와 컨트롤러를 만드는 데 투자하기 전에 데이터를 어떻게 처리할지 고민해 보겠습니다.

간소화를 위해 프로젝트 전체에서 데이터를 관리하기 위한 싱글톤 클래스를 만드는 것이 좋습니다. 또한 애플리케이션의 모든 곳에서 쿼리를 작성할 필요가 없도록 데이터 리스너를 설정할 때 매우 효과적입니다. 이제 프로젝트의 src/main/java/com/couchbase/CouchbaseSingleton.java 파일을 열고 다음 코드를 포함하세요. 나중에 자세히 설명하겠습니다.

위의 내용은 이해하기 어려운 내용이지만 혼란을 피하기 위해 꼭 필요한 내용입니다.

내부 카우치베이스싱글턴 클래스에는 4개의 개인 변수가 있습니다. 데이터베이스 관리자를 사용하면 데이터베이스를 열 수 있을 뿐만 아니라 생성할 수도 있습니다. 복제 객체는 어느 방향으로든 동기화를 담당합니다.

에서 생성자 메서드를 사용하여 다음과 같은 데이터베이스를 생성하고 엽니다. fx-project 를 클릭하고 데이터 쿼리 시 사용할 뷰를 구성합니다. 이 뷰는 토도스 는 로컬 데이터베이스에 저장된 모든 문서에 대해 문서 ID와 문서의 키-값 쌍을 생성합니다. 로컬 데이터베이스에 저장된 모든 문서의 생성자 메서드는 정적 메서드를 통해 인스턴스화하기 때문에 비공개입니다. getInstance.

이 가이드의 후반부까지 동기화에 대해 살펴보지는 않겠지만, 기초를 다지는 것은 좋은 생각입니다. 기본적으로 특정 동기화 게이트웨이 URL에 대한 지속적인 복제를 정의하고 싶을 뿐입니다. 또한 애플리케이션이 종료될 때 복제를 중지할 수 있기를 원합니다. 이제 데이터를 저장하고 로드하는 방법을 살펴봅시다.

우리의 저장 메서드는 Todo 객체를 생성하고 데이터베이스에 저장합니다. 그 결과는 Todo 호출 메서드에 반환되는 문서 ID가 포함된 객체입니다. 이 Todo 클래스는 간단합니다. 아이디, 제목, 설명과 같은 기본 정보를 받아들이고 그에 맞는 적절한 겟터와 세터 메서드가 있습니다. 참고로 다음과 같은 모양이며 프로젝트의 src/main/java/com/couchbase/Todo.java 파일을 만듭니다.

이제 마지막 데이터 관련 함수인 쿼리 함수입니다.

우리가 만든 뷰를 기억하시나요? 이번에는 이를 쿼리해 보겠습니다. 결과 집합은 다음과 같은 배열로 로드됩니다. Todo 객체입니다. 이렇게 하면 데이터 계층 를 마무리하고 실제 애플리케이션 개발에 집중할 수 있게 되었습니다.

데스크톱 애플리케이션 디자인

필수는 아니지만 JavaFX 애플리케이션, 씬 빌더를 사용하면 그래픽 UI와 해당 컨트롤러 클래스를 매우 간단하게 만들 수 있습니다. 이 기능을 사용하지 않으려면 프로젝트의 src/main/resources/TodoFX.fxml 를 열고 다음 XML 마크업을 포함합니다:

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

작성자

게시자 Nic Raboy, 개발자 옹호자, Couchbase

닉 라보이는 최신 웹 및 모바일 개발 기술을 옹호하는 사람입니다. 그는 Java, JavaScript, Golang 및 Angular, NativeScript, Apache Cordova와 같은 다양한 프레임워크에 대한 경험이 있습니다. Nic은 웹 및 모바일 개발을 보다 쉽게 이해할 수 있도록 자신의 개발 경험에 대해 글을 쓰고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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