최근에 다음과 같은 기사를 읽었습니다. Scotch.io Mongoose와 MongoDB를 사용하는 것에 대해 질문했습니다. 몽구스 대신 오트만을 사용한다면 Couchbase도 같은 기능을 할 수 있겠다는 생각이 들었습니다.

이 글에서는 Scotch.io 글과 동일한 비교를 진행하되, 몽구스 및 몽고DB 대신 오스만 및 카우치베이스를 사용합니다.

오스만이란?

Couchbase용 Ottoman은 객체 모델과 관련된 모든 상용구 로직을 자동으로 생성하는 객체 문서 매퍼(ODM)로, 객체 모델을 구축할 수 있습니다.

Ottoman을 사용하면 Node.js를 사용하여 Couchbase Server의 CRUD 명령에 쉽게 액세스할 수 있습니다. Ottoman을 사용하려면 다음 명령을 사용하여 Node.js 프로젝트에 추가해야 합니다:

이제 프로젝트에 라이브러리를 다운로드했으므로 소스 코드에 라이브러리를 포함시켜야 합니다. JavaScript 파일 중 하나에 다음을 추가하면 됩니다:

프로젝트에 Ottoman 라이브러리가 포함되었으므로 이제 Ottoman에게 버킷 중 하나에 대한 액세스 권한을 부여해야 합니다.

이전에 Couchbase용 Node.js SDK를 사용해 본 적이 있다면 위의 내용이 익숙하게 보일 것입니다. 클러스터에 연결하고 버킷을 연 다음 Ottoman에 할당하기만 하면 됩니다.

이 시점에서 Ottoman을 사용하여 개발 프로세스를 가속화할 수 있습니다.

모델 정의하기

Couchbase에 대한 CRUD 작업을 시작하기 전에 먼저 Ottoman 모델을 정의해야 합니다. 이 모델은 데이터베이스의 문서를 나타냅니다.

Ottoman으로 만드는 모델에는 프로퍼티와 메서드가 있을 수 있습니다. 메소드 부분은 곧 다루겠지만 지금은 프로퍼티가 있는 간단한 모델을 살펴보겠습니다.

사용자를 위한 샘플 모델

애플리케이션의 신규 사용자를 위한 다음 모델을 예로 들어 보겠습니다(이 예에서는 간단합니다).

이제 이렇게 사용할 수 있는 모델이 생겼습니다:

우리는 이름, 이메일를 설정할 필요는 없지만 created_at 값을 설정해야 합니다. 기본적으로 이 값을 설정하지 않으면 현재 타임스탬프로 설정되기 때문입니다.

사용자 지정 방법

모델 내에서 일관된 작업을 수행하는 메서드를 만들고 싶다고 가정해 봅시다. 간단한 UserModel 객체를 이미 생성했다고 가정하고 다음을 예로 들어보겠습니다.

이론상으로는 특정 오스만 모델의 이름과 성이 인쇄됩니다.

사용자 지정 메서드에 대한 샘플 사용법

사용자 지정 방법을 사용하려면 printWhoDaBoss 를 클릭하고 다음과 같은 작업을 수행합니다:

위의 내용은 다음과 같이 출력됩니다. 닉 라보이는 다 보스. 물론 이 특정 기능은 쓸모가 없지만 상상력을 발휘하여 더 나은 컨셉을 만들 수 있습니다.

저장하기 전에 함수 실행

문서가 카우치베이스에 저장되기 전에 작업을 실행하려면 어떻게 해야 할까요? 이 작업은 pre 예약 메서드를 사용할 수 있습니다. 예를 들어 모든 사람의 성을 저장하기 전에 변경하고 싶다고 가정해 보겠습니다:

이제 다음 섹션에서 설명할 문서를 저장하려고 할 때 성 앞에 접두사가 붙습니다. 예를 들어 Raboy 가 될 것입니다. 다 보스 라보이. 이 경우 특별히 유용하지는 않지만 대략적인 개념은 이해하실 수 있을 것입니다.

문서 만들기

문서를 만들려면 기본 제공 기능을 사용해야 합니다. 저장 메서드를 사용합니다. 우리 모델을 사용하면 다음과 같은 작업을 수행할 수 있습니다:

키가 생성되고 문서가 데이터베이스에 저장됩니다.

NoSQL 문서 읽기

Ottoman으로 문서를 읽는 것은 우리가 할 수 있는 읽기 유형이 다양하기 때문에 조금 다릅니다. 몇 가지 사용 시나리오를 분석해 보겠습니다.

모든 문서 찾기

NoSQL에서는 문서 ID를 모를 때 문서를 가져오는 것이 어려운 경우가 많습니다. 뷰를 만들거나 Couchbase의 N1QL 기술을 사용하지 않으면 거의 운이 없을 것입니다. 여기에 대안이 있습니다.

위에서는 Ottoman UserModel을 사용하여 생성된 모든 문서를 찾을 수 있습니다.

특정 문서 찾기

다른 시나리오가 있습니다. 모든 문서를 원하지 않고 문서 ID를 모른다고 가정해 보겠습니다. Ottoman을 사용하여 쿼리를 수행할 수 있습니다. 찾기 명령을 사용합니다.

ID로 문서 찾기

원하는 문서의 ID를 알고 있다고 가정해 보겠습니다. 실행하여 오스만 모델을 가져올 수 있습니다:

이것은 그냥 get 메서드를 호출하면 JSON 데이터 대신 완전한 기능을 갖춘 오스만 모델이 남게 됩니다.

기존 문서 업데이트하기

Ottoman으로 문서를 업데이트하려면 먼저 문서를 로드한 후 조작을 시도해야 하므로 약간 까다로울 수 있습니다. ID로 특정 문서를 찾은 다음 다음과 같이 저장 명령을 수행하면 됩니다:

위의 예에서는 먼저 특정 모델을 가져와서 이름만 변경한 다음 저장을 호출했을 것입니다. 그리고 저장 명령으로 생성하거나 업데이트할 수 있지만, 그 시점까지 이어지는 것은 사용자의 몫입니다.

문서 제거하기

문서를 삭제하는 것은 Ottoman으로 문서를 업데이트하는 것과 비슷한 방식으로 작동합니다. 먼저 조회를 수행하여 문서를 로드한 다음 제거 함수를 사용할 수 있습니다. 이에 대한 간단한 예는 아래에서 확인할 수 있습니다:

결론

Ottoman은 개체를 모델링하고 CRUD 유형 작업에 훌륭하게 작동하는 Couchbase를 위한 훌륭한 ODM 도구입니다. 몽고DB용 몽구스는 다음 문서에서 설명한 대로 Ottoman과 비슷해지려고 노력합니다. Scotch.io 에 대해 설명했습니다. 이 글은 오스만도 마찬가지로 사용하기 쉽다는 것을 보여드리기 위해 작성되었습니다.

작성자

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

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

댓글 남기기