NoSQL을 처음 사용하시나요? N1QL을 만나보세요!

몇 년 전만 해도 NoSQL은 외계 괴물처럼 들렸을지 모르지만, 기술의 발전과 최신 웹 및 모바일 애플리케이션이 데이터를 저장하고 액세스하는 방식을 고려할 때 오늘날 개발의 중요한 부분이 되었으며, 지금도 마찬가지입니다.

Couchbase는 최신 쿼리 기술을 추가하여 그 어느 때보다 쉽게 관계형 데이터베이스에서 NoSQL로 전환(또는 추가)할 수 있게 해줍니다.

SQL에 대해 이미 알고 있는 내용

아마도 MySQL, SQL Server, Oracle 또는 기타 여러 인기 있는 SQL 데이터베이스와 같은 관계형 데이터베이스 관리 시스템(RDBMS)을 사용하고 있을 것입니다. 이러한 모든 데이터베이스는 몇 가지 공통점을 공유합니다:

  • 행과 열 안에 데이터가 포함된 테이블 사용
  • 특정 데이터 유형으로 제한됨(대부분의 경우)

이 표의 데이터는 서로 연관되어 있을 수 있습니다.

테이블 간의 데이터 관계

RDBMS를 충분히 오래 사용했다면 많은 테이블이 서로 연관되어 있다는 것을 알 것입니다. 예를 들어 다음과 같은 두 개의 테이블이 있다고 가정해 보겠습니다:

사용자 테이블

이름 유형
id int
사용자 이름 varchar
비밀번호 varchar

프로필 표

이름 유형
id int
이름 varchar
user_id int

프로필 테이블의 user_id와 사용자 테이블의 id에 대해 이 두 테이블 간에 관계가 설정됩니다. 모든 사용자에게는 프로필이 있기 때문입니다. 물론 이 관계는 외래 키와 기본 키를 기반으로 합니다.

테이블 데이터 조인

두 테이블의 데이터를 조인하는 것은 RDBMS에서 일반적인 작업입니다. 위에 나열한 샘플을 계속 진행하면 다음과 같이 익숙하게 보일 것입니다:

꽤나 기본적인 내용이라 어디까지 설명해야 할지 궁금하실 겁니다. 곧 알게 되실 겁니다.

NoSQL에 대해 알고 있다고 생각하는 것

일반적으로 Couchbase 및 NoSQL 데이터베이스를 사용하면 데이터가 JSON으로 저장됩니다. 테이블과 행의 전체 개념이 창 밖으로 던져져 처음에는 조금 낯설게 느껴질 수 있습니다. 예를 들어 다음 두 개의 JSON 문서가 있다면 어떻게 될까요?

user_1

profile_1

이러한 문서의 데이터는 구조화되지 않은 상태로 유지되므로 테이블의 스키마에 얽매이지 않습니다. 콘텐츠를 추가하거나 제거하려는 경우 다른 문서를 건드리거나 허용된 구조를 변경하지 않고도 그렇게 할 수 있습니다.

이러한 문서를 쿼리하는 방법은 NoSQL 플랫폼마다 다르지만 한 가지는 일관되게 유지됩니다. 이 두 문서를 조인하려면 데이터베이스 서버 측에 두 번 호출하여 데이터를 하나의 문서로 재구성해야 합니다. 예를 들어 이 psuedocode를 살펴보겠습니다:

이런 방식으로 문서에 참여해야 하는 것은 그다지 재미있지 않으며, 두 개 이상의 문서에 참여해야 하는 경우 상당히 지저분해질 수 있습니다.

카우치베이스가 SQL과 NoSQL을 연결하는 방법

Couchbase 4.0을 사용하면 더 이상 RDBMS에서 일반적으로 볼 수 있는 간단한 쿼리를 수행하기 위해 복잡한 서버 측 로직을 설계할 필요가 없습니다.

Couchbase 4.0은 SQL의 확장이라고 할 수 있는 N1QL을 도입했습니다. 이것이 의미하는 바는 이미 알고 있고 좋아하는 SQL 언어를 NoSQL 데이터와 함께 사용할 수 있다는 것입니다. N1QL을 사용하면 앞서 언급한 문서에 대해 다음과 같은 쿼리를 만들 수 있습니다:

그렇게 나쁘지 않죠? 물론 MySQL 등에 익숙한 것과 몇 가지 차이점이 있지만 이해하거나 배우기 복잡할 정도는 아닙니다.

그렇다면 Couchbase의 N1QL은 NoSQL의 세계에 어떤 다른 이점을 제공할까요? 여러 가지가 있지만 예를 들면 다음과 같습니다:

  • 데이터를 가져오고 조작하는 모든 무거운 작업은 애플리케이션 서버가 아닌 Couchbase에서 이루어집니다.
  • 즐겨 사용하는 모든 SQL 명령과 추가 기능을 사용할 수 있습니다.
  • 빠릅니다.

그렇다면 이미 사용 중인 프로그래밍 언어에 포함될 수 있을까요?

SQL은 거의 모든 프로그래밍 언어에서 작동하지만 N1QL은 그럴까요?

대부분의 인기 프로그래밍 언어에 대한 Couchbase SDK가 있습니다. Java, Node.js 또는 .NET으로 개발하든, SQL을 사용하는 것처럼 애플리케이션에서 N1QL을 쉽게 사용할 수 있습니다.

결론

다음을 사용하는 데이터베이스에서 전환하기 SQL에서 NoSQL로 로의 전환이 두려운 것처럼 보일 수 있지만, Couchbase 4.0과 N1QL을 사용하면 두 플랫폼 간의 전환은 이미 알고 있는 것과 크게 다르지 않습니다. 전환에 어떤 변화가 수반되는지 자세히 알아보려면 다음과 같이 매우 상세하고 인터랙티브한 동영상을 확인하세요. N1QL 튜토리얼.

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

작성자

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

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

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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