웹 애플리케이션을 개발할 때 제가 선호하는 기술 중 하나는 Node.js입니다. 저는 자바스크립트 개발을 많이 하기 때문에 개발 퍼즐을 맞추기 위한 또 다른 조각입니다. 얼마 전에 저는 동일한 스택에서 Couchbase Mobile 및 Couchbase Node.js SDK 사용. 그 글에서 이 작업을 수행하는 여러 가지 방법이 있다고 언급했었습니다. 이번에는 작업을 완료하는 또 다른 방법에 대해 자세히 설명해 보려고 합니다. PouchDB.

PouchDB는 Couchbase 동기화 게이트웨이 및 Couchbase Server와 함께 작동하는 JavaScript 데이터베이스입니다. 자바스크립트이기 때문에 서버 측 및 브라우저 기반 애플리케이션에서 사용할 수 있습니다.

요구 사항

이 애플리케이션은 자바스크립트 애플리케이션이므로 소프트웨어 종속성이 많지 않습니다. 존재하는 몇 가지 종속성은 다음과 같습니다:

이것은 Node.js 애플리케이션이지만, 프로젝트를 준비할 때 대부분의 무거운 작업을 수행하는 것은 Node 패키지 관리자(NPM)입니다. 이 도구는 PouchDB와 나머지 종속성을 가져옵니다. Couchbase 동기화 게이트웨이를 사용하겠습니다. 인메모리 데이터베이스 는 예제 애플리케이션일 뿐입니다. 프로덕션 환경에서는 영구 저장소를 위해 동기화 게이트웨이를 카우치베이스 서버에 연결하고 싶을 것입니다.

데이터 동기화를 위한 Couchbase 동기화 게이트웨이 구성

동기화 게이트웨이는 모든 원격 데이터가 카우치베이스 서버에 도달하기 전과 후에 처리합니다. 플랫폼, 기기 등의 데이터를 오케스트레이션하는 미들맨 서비스입니다. Couchbase Server와 함께 작동하는 Node.js 애플리케이션을 구축할 때 반드시 필요한 것은 아닙니다. 이 예제에서는 시연하지 않지만 모바일 동기화도 지원하고자 하기 때문에 이 서비스를 사용하고 있습니다.

카우치베이스 동기화 게이트웨이를 다운로드하여 설치한 후에는 런타임에 로드할 구성을 설정해야 합니다. 다음과 같은 파일을 만듭니다. 동기화 게이트웨이-config.json 를 클릭하고 다음을 포함합니다:

위의 매우 기본적인 구성 파일에서 다음과 같은 데이터베이스를 설정합니다. 예제 인메모리 동기화 게이트웨이 스토리지 옵션을 사용합니다. 이 구성에는 특정 읽기 또는 쓰기 권한이 없으므로 모든 데이터가 동일한 채널에 존재하게 됩니다.

동기화 게이트웨이와 곧 생성될 Node.js 예제를 동일한 컴퓨터에서 실행하고 있지만 포트는 다르므로 CORS(교차 오리진 리소스 공유)를 허용해야 합니다. 그렇지 않으면 JavaScript 관련 오류가 발생합니다. 위의 구성에서는 Node.js 애플리케이션인 http://localhost:3000 에서의 통신을 허용하고 있습니다.

이 시점에서 동기화 게이트웨이를 실행할 수 있습니다. 프로덕션 환경에서는 인메모리 바다코끼리 솔루션은 특정 Couchbase Server 클러스터의 호스트 이름으로 대체할 수 있습니다.

Node.js 웹 애플리케이션 개발하기

이해하기 쉽도록 새로운 Node.js 애플리케이션을 만들어서 진행하겠습니다. 이 작업은 노드 패키지 관리자를 사용하여 수행할 수 있습니다.

명령 프롬프트 또는 터미널에서 다음을 실행합니다:

위의 명령은 package.json 파일에 모든 프로젝트 종속성을 유지합니다. 이 파일은 package.json 파일을 제자리에 배치한 후 몇 가지 종속성을 가져와 보겠습니다:

위 명령어는 요청의 본문 데이터를 처리하는 데 필요한 패키지인 Express 프레임워크와 애플리케이션 데이터 관리를 위한 PouchDB를 설치합니다.

코드 작성을 시작하기 전에 다음과 같은 파일을 만들어야 합니다. app.js 에는 모든 애플리케이션 로직이 포함됩니다.

RESTful API 부트스트랩

와 함께 app.js 파일을 생성한 후 파일을 열고 다음 자바스크립트 코드를 포함시킵니다:

그렇다면 위 코드에서는 어떤 일이 일어나고 있을까요? 먼저 이전에 설치되었던 종속성을 가져와서 초기화하고 있습니다.

서버 측 애플리케이션이기 때문에 PouchDB를 사용할 때 두 가지 옵션이 있습니다. 애플리케이션 서버에 동기화되는 로컬 데이터베이스를 만들어 동기화 게이트웨이와 동기화하거나 동기화 게이트웨이 인스턴스에 직접 연결할 수 있습니다.

위는 로컬에서 실행 중인 동기화 게이트웨이 서버에 직접 연결할 것임을 나타냅니다. 로드 밸런싱에 다른 접근 방식을 취하려는 경우 동기화 옵션을 선택할 수 있습니다.

앞으로 CRUD를 사용하는 RESTful API를 구축할 예정이지만, 지금은 Express 프레임워크에서 사용하려는 각 엔드포인트를 정의하는 것이 좋습니다.

마지막으로 애플리케이션을 어떻게 제공할지 정의합니다:

http://localhost:3000 에서 애플리케이션을 서비스하고 서버가 부팅되면 PouchDB 관련 정보를 출력합니다. 이를 통해 연결과 존재하는 데이터에 대한 아이디어를 얻을 수 있습니다.

PouchDB 데이터 조작 로직 포함

애플리케이션이 부트스트랩되면 각 엔드포인트 메서드에 애플리케이션 로직을 적용하기 시작할 수 있습니다. 목록 엔드포인트부터 시작하면 다음과 같습니다:

엔드포인트에 도달하면 모든 문서를 쿼리하고 결과에 문서 속성을 포함합니다. 유용하지 않을 수 있는 정보를 건너뛰기 위해 응답을 반환하기 전에 매핑할 수 있으며, 그렇지 않으면 오류를 반환할 수 있습니다.

모든 문서를 나열하는 대신 단일 문서를 가져오고 싶을 수도 있습니다.

위의 시나리오에서는 요청에 문서 ID가 포함되어 있을 것으로 예상합니다. ID가 존재하면 문서를 가져와 요청자에게 반환하고, 그렇지 않으면 오류를 반환합니다.

새 문서를 만드는 것은 어떨까요?

Couchbase 내에서 문서를 만들려면 다음과 같은 작업을 수행합니다:

위의 코드에서 우리는 이름 가 존재하는지 확인합니다. 이 경우 전체 게시물 본문을 사용하여 문서를 작성하고 응답을 반환합니다. 포스트 본문 전체를 사용할 필요는 없지만 이 예에서는 사용합니다. 이렇게 하면 문서가 생성될 뿐 문서를 업데이트하지 않는다는 점에 유의하세요. 문서를 업데이트하려면 put 메서드가 아닌 post 메서드를 사용합니다.

애플리케이션의 마지막 부분은 데이터 삭제를 위한 엔드포인트입니다.

요청에 ID가 전달될 것으로 예상합니다. 이 ID가 존재하면 먼저 문서가 있는지 조회를 수행하여 문서가 있는지 확인합니다. 문서가 존재하면 문서를 삭제할 수 있습니다. 이 모든 과정은 자바스크립트 프로미스를 서로 연결함으로써 이루어집니다.

완성된 프로젝트 소스 코드 사용해보기

이 애플리케이션이 어떻게 생겼는지 더 명확하게 알고 싶다면 아래에서 전체 코드를 확인할 수 있습니다.

애플리케이션을 실행하려면 다음을 실행합니다. 노드 app.js 터미널 또는 명령 프롬프트에서 http://localhost:3000 엔드포인트를 입력한 다음 cURL 또는 원하는 애플리케이션에서 http://localhost:3000 엔드포인트를 입력합니다.

결론

방금 서버 측 Node.js 웹 애플리케이션에 PouchDB를 포함시키는 방법, 즉 PouchDB가 Couchbase NoSQL 데이터베이스와 통신하는 방법을 살펴보았습니다. 이것은 동기화 게이트웨이가 중간에 있기 때문에 모바일과 서버를 동일한 스택에 포함시키는 방법에 대한 다양한 예시 중 하나였습니다. 에서 이전 게시물 PouchDB 대신 동기화 게이트웨이 RESTful API를 사용하는 방법에 대한 글을 썼습니다. 이 예제에서는 Couchbase를 사용한 모바일 및 서버 사용도 시연했습니다.

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

작성자

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

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

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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