몇 달 전에 저는 다음과 같은 튜토리얼을 작성했습니다. 사용 방법
애플리케이션을 만들기 위해 Couchbase Java SDK를 사용해야 합니다.
의 샘플 데이터를 중심으로 설명했습니다. 하지만 사고 과정에 대해서는 설명하지 않았습니다.
이러한 애플리케이션을 개발하게 된 배경이나 Couchbase Java SDK가 편리한 이유에 대해 알아보세요.

이 글에서는 애플리케이션 설계에 대한 사고 과정을 살펴본 다음
자바 및 카우치베이스로 어떻게 개발할 수 있는지 설명합니다. 물론 제 튜토리얼만큼 철저하지는 않겠지만 다음과 같은 내용을 보시면 도움이 될 것입니다.
함께라면 분명 올바른 방향으로 나아갈 수 있을 것입니다.

디자인 프로세스 만들기

멋진 여행 예약 애플리케이션을 만들고 싶다고 가정해 보겠습니다. 훌륭한 아이디어가 있습니다,
하지만 아이디어를 실행하기 위해 어떤 프로세스를 따라야 할지 잘 모르겠습니다. 아마도 좋은 생각일 것입니다.
를 사용하여 아이디어를 여러 부분으로 나누세요.

여행 예약 애플리케이션에는 다음 세 가지 부분이 포함될 가능성이 높습니다:

  • 백엔드 API 계층
  • 클라이언트 대면 UI 레이어
  • 데이터 계층

이제 각 레이어에 대해 조금 더 이야기해 보겠습니다.

데이터 레이어

데이터베이스(이 경우 Couchbase)는 애플리케이션의 데이터 레이어 역할을 합니다. 선택하는 이유
Couchbase를 NoSQL 데이터베이스로 사용하는 것이 좋을까요, 아니면 일반적으로 데이터베이스로 사용하는 것이 좋을까요? 이 부분은 곧 설명해드리겠습니다,
하지만 간단히 말해, 애플리케이션이 RESTful이고 JSON 데이터를 제공하기 때문에 NoSQL을 사용하고 있습니다. 우리는
SQL 쿼리나 키-값(k-v) 연산을 자유롭게 사용하기 위해 Couchbase를 선택했습니다.

NoSQL의 SQL 및 키-값?

NoSQL 문서 데이터베이스를 사용하면 각 문서에 조회 키 또는 ID가 있습니다. 키를 제공할 때
조회하면 값 또는 이 경우 JSON 데이터를 얻을 수 있습니다. 데이터베이스를 처음 사용하는 경우 이 개념이 너무 어렵지 않을 수 있습니다.
이해하기 어렵지만, 오라클이나 MySQL과 같은 데이터베이스에서 온 사람이라면 순수한
광기.

Oracle 또는 SQL Server와 같은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 가져오려는 경우
데이터베이스에서 SQL 쿼리를 실행할 수 있습니다.

Couchbase 4.0에서는 이제 N1QL이라는 기능을 통해 NoSQL에 대해 SQL 쿼리를 실행할 수 있습니다.
데이터베이스를 사용하면서 키-값 조회를 사용할 수 있는 옵션도 제공합니다. 두 가지 장점의 장점
직접 선택할 수 있습니다.

몇 가지 샘플 문서

여행 예약 애플리케이션이기 때문에 아마도 항공사
정보, 공항 정보를 제공합니다. 물론 다른 정보도 많이 있을 것입니다.
이 글에서는 중요하지 않습니다.

우리가 달성해야 한다는 것을 알고 있는 것을 기반으로, 데이터에 대한 NoSQL 문서는 다음과 같이 보일 수 있습니다.
이:

공항

항공사

이러한 각 JSON 문서에는 실제로는 다른 많은 정보가 포함될 수 있지만, 슬림하게 정리된
버전을 사용해도 괜찮습니다.

이제 백엔드 레이어에 대한 학습을 시작하기에 충분한 데이터 레이어에 대한 정보를 확보했습니다.

백엔드 API 계층

백엔드의 전체 목적은 데이터와 모든 사용자가 사용하는 UI를 연결하는 다리 역할을 하는 것입니다.
애플리케이션을 사용하는 사용자의 화면에 표시됩니다. 이 경우 백엔드는 Java가 됩니다.

Java 계층은 데이터베이스에 대해 요청을 하고 응답의 형식을 지정한 다음 다시 반환합니다.
를 최종 사용자에게 전달하여 표시합니다. Java 계층에 요청을 하는 최종 사용자는 엔드포인트를 통해 요청을 수행합니다.
를 백엔드에 추가합니다. 엔드포인트를 애플리케이션에서 각각 다른 URL로 생각하면 됩니다.
다른 데이터.

클라이언트 대면 UI 레이어

클라이언트 대면 UI 레이어의 목적은 최종 사용자에게 작업하기 좋은 환경을 제공하기 위한 것입니다.
원시 코드를 처리하는 것보다 낫습니다. Expedia와 같은 여행 웹사이트를 방문하는 사람은 개발자가 없을 수 있습니다.
경험이 전혀 필요하지 않습니다. 프런트엔드 계층은 일반적으로 AngularJS, ReactJS 또는 다음과 같은 언어로 구성됩니다.
jQuery.

애플리케이션 개발

저희는 개발 프로세스가 여러 부분으로 나뉘어져 있다는 것을 알고 있습니다. 주로 프런트 엔드와
백엔드. 전체 애플리케이션을 처음부터 다시 구축하는 대신
각 부분을 달성하는 데 필요합니다.

RESTful API 제공

기본적으로 Java는 HTTP 요청을 수락하고 응답할 수 없다는 것을 알 수 있습니다. 다양한 옵션이 있습니다.
를 사용할 수도 있지만, 한 가지 옵션은 빠르게 API를 얻을 수 있기 때문에 Spring Boot를 사용하는 것입니다.
를 실행합니다. Spring Boot를 사용하면 다음과 같은 API 엔드포인트를 생성할 수 있습니다:

사용자가 www.yourapp.com/airline 브라우저 또는 프런트엔드 애플리케이션에서
airlineid 전달된 값은 사용자가 정의한 로직과 응답으로 처리됩니다.
데이터가 반환됩니다. 정의하는 로직에는 데이터 쿼리가 포함될 수 있습니다.

데이터 쿼리

Couchbase 데이터베이스에 각 문서 유형이 몇 개씩 있다고 가정해 보겠습니다. 각 문서 유형이란 다음을 의미합니다.
공항 그리고 항공사. 이제 Java 백엔드에서
프런트엔드에 요청하여 정보를 얻으려면 United 여객기입니다. 두 대가 있습니다.
옵션으로 이 정보를 가져올 수 있습니다:

K-V 조회로 항공사 찾기

아래에서는 각 항공사 문서에 키 이름이 접두사로 붙는다고 가정합니다. 항공사:: 그리고
airlineid 가 프런트엔드에서 전달되었습니다.

이 복합 키를 기반으로 조회를 수행하고 그 결과에서 JsonObject를 생성합니다. 이 시점에서
를 사용하면 결과를 다시 프런트엔드로 반환하는 Java 코드를 만들 수 있습니다.

N1QL로 항공사 확보하기

k-v 조회와 마찬가지로, 문서 키는 복합 키이며 접두사가
항공사::. 또한 프런트엔드에서 키 ID가 전달된다고 가정합니다.

위는 SQL에서 찾을 수 있는 것과 매우 유사한 N1QL 쿼리입니다. 두 옵션 모두 다음 경우에 유효합니다.
항공사에 대한 정보를 얻을 수 있습니다. 그러나 서로 다른 항공사에서 데이터를 쿼리하는 시나리오에서는
문서 유형(조인일 수도 있음)을 사용하는 경우에는 조회보다는 N1QL을 사용하는 것이 더 유리할 수 있습니다. 그 이유는 다음과 같습니다.
존재:

  1. 카우치베이스 서버는 백엔드가 아닌 모든 작업을 처리합니다.
  2. 백엔드의 코드 감소

마무리

Java에서 HTTP 엔드포인트를 제공하는 데 필요한 사항과 다음을 통해 데이터를 쿼리하는 방법에 대해 알아보았습니다.
하지만 이제 우리는 어디로 가야 할까요?

Java API에 각각 다른 쿼리를 수행하는 엔드포인트를 더 추가하기만 하면 됩니다.
를 조회합니다.

결론

웹 애플리케이션을 디자인할 때는 여러 레이어가 함께 작동하게 됩니다. 카우치베이스는 항상
는 JSON 문서 데이터베이스이므로 API를 쉽게 만들 수 있다는 점에서 좋은 선택입니다. 카우치베이스 자바
SDK는 데이터를 쿼리할 수 있는 간단한 옵션이 많기 때문에 유용합니다.

처음부터 끝까지 애플리케이션을 철저하게 작성하는 글은 아니었지만, 다음과 같이 추천합니다.
에 대해 제가 작성한 튜토리얼을 확인해보십시오. 여행 만들기
애플리케이션
.

작성자

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

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

댓글 남기기