이 글에서는 Apache® 2.0 라이선스로 배포되는 오픈소스 분산형 NoSQL 문서 및 키-값(key-value) 데이터베이스인 Couchbase®에 대해 자세히 살펴봅니다.
Couchbase란 무엇인가?
Couchbase는 대규모 인터랙티브 온라인 애플리케이션을 위한 저지연(low-latency) 데이터 관리를 제공합니다. 사용자의 데이터 추가, 삭제, 조회, 표시, 조작 요청을 처리하는 애플리케이션을 지원하려면, 데이터를 손쉽게 확장하고 접근할 수 있는 형태로 저장해야 합니다. 바로 이러한 요구 사항에서 Couchbase Server®가 탄생했습니다.
Couchbase Server는 두 가지 유명 NoSQL 기술인 Membase®와 CouchDB®가 결합된 결과물입니다.
- Membase: NorthScale이 memcached 프로젝트 기반으로 개발한 키-값 저장소로, memcached 특유의 단순함과 속도, 확장성에 더해 데이터베이스의 저장·영속화·쿼리 기능까지 갖추었습니다.
- CouchDB: JSON 기반의 데이터 표현과 내장 복제(replication) 기능을 갖춘 데이터베이스로, Erlang™으로 작성되었습니다. Damien Katz가 2005년에 개발하기 시작해 2008년 아파치(Apache) 프로젝트가 되었습니다.
2011년 Membase, Inc.와 CouchDB 프로젝트를 운영하던 Couchone이 합병을 발표하며 통합 회사명을 Couchbase, Inc.로 정했습니다.
데이터베이스의 세 가지 유형
데이터베이스는 크게 트랜잭션(Transactional), 분석(Analytical), 참여(Engagement) 데이터베이스 세 가지 유형으로 나눌 수 있습니다.
이미지 출처: https://resources.couchbase.com/c/engagement-database-whitepaper?x=49kQ7H
트랜잭션 데이터베이스
트랜잭션 데이터베이스는 행과 열로 구성된 테이블에 고도로 구조화된 데이터를 저장합니다. 주로 기업의 회계, 인사, 영업, 구매 부서에서 활용됩니다. 다만 이러한 데이터베이스는 사용자 상호작용, 지원, 참여(engagement)가 설계 범위 밖에 있기 때문에 수백만 명의 사용자가 동시에 수십억 장의 사진, 동영상, 텍스트를 업로드하고 공유하는 환경에는 부적합합니다.
높은 운영 비용과 대량의 비정형·반정형 데이터 처리 능력 부족으로 인해 관계형 데이터베이스는 만족스러운 고객 참여 경험을 제공하기 어렵습니다. 모바일 기술, 소셜 플랫폼, IoT(사물인터넷) 애플리케이션이 급성장하면서 이러한 한계는 더욱 두드러지고 있습니다. 구조적·아키텍처적 제약 때문에 트랜잭션 데이터베이스는 디지털 전환 시대에 맞지 않으며, 오히려 디지털 혁신의 발목을 잡는 요소가 되기도 합니다.
분석 데이터베이스
Hadoop®, Apache Spark 같은 분석 기술은 기업이 보유한 방대한 고객 상호작용 데이터를 대상으로 후향적(backward-looking) 분석을 수행하는 데 활용됩니다.
분석 기술은 항상 과거 데이터를 대상으로 작동하며 실시간 데이터 처리에는 적합하지 않습니다. 실시간 또는 예측 기반 운영 데이터 처리를 목표로 설계된 것이 아니기 때문에 고객 참여 구축에는 실패할 수밖에 없습니다.
예를 들어, 전자상거래 사이트에서 고객의 검색 기록이나 소셜 미디어 활동 등 상호작용 데이터를 기반으로 실시간 개인화 추천을 제공한다고 가정해 보겠습니다. 분석 데이터베이스는 이런 기능이나 성능을 제공하지 못합니다. 다시 말해, 분석 데이터베이스는 '고객에게 참여 경험을 제공'하지 못하는 것입니다.
참여(Engagement) 데이터베이스
참여 데이터베이스는 어떤 규모에서든, 어떤 채널이나 디바이스에서든 데이터의 잠재력을 최대한 끌어내어 고객과 더 의미 있고 중요한 관계를 형성하는 다양한 상호작용과 경험을 제공합니다. 참여 데이터베이스의 핵심 특징은 다음과 같습니다.
- 변화에 유연한 구조 — 어떤 규모에서도 대응 가능한 확장성(Scalability)
- 속도(Speed)
- 보안(Secure)
- 클라우드 네이티브(Cloud-native)
- 완벽한 모바일 지원(Seamlessly mobile)
- 내장형 지능(Built-in smarts)
Couchbase Server 상세
Couchbase는 세계 최초의 참여 데이터베이스로, 타의 추종을 불허하는 민첩성, 확장성, 속도, 보안, 가용성, 관리 용이성을 제공합니다. 오늘날 기업은 고객의 기대와 경험을 끊임없이 재정의하고, 변화하는 경쟁 우위를 확보하기 위해 이러한 특성을 반드시 필요로 합니다.
Couchbase Server는 오픈소스 기반의 확장 가능한 분산형 NoSQL 문서·키-값 데이터베이스로, 대규모 인터랙티브 온라인 애플리케이션에 저지연 데이터 관리를 제공합니다. 핵심 아키텍처는 성능 저하 없이 쉽게 확장되도록 설계되었으며, 유연한 데이터 모델로 현대적인 애플리케이션 개발을 단순화합니다. 신뢰성을 최우선으로 구축된 코어 데이터베이스 플랫폼은 고가용성, 높은 확장성, 고성능, 보안을 모두 갖추고 있습니다.
Couchbase 데이터베이스는 멀티모델(multi-model) 범용 데이터베이스로서, 관리형 캐시 계층(managed-cache tier), 키-값 저장소, 문서 데이터베이스로 활용할 수 있습니다. 또한 Couchbase Lite는 모바일 디바이스와 IoT 환경에서 네이티브하게 실행되며 관리형 동기화를 지원합니다.
다음 이미지는 Couchbase Server 클러스터의 구성을 보여줍니다.
이미지 출처: https://developer.couchbase.com/documentation/server/4.0/architecture/architecture-intro.html
Couchbase Server의 런타임 동작
Couchbase Server의 런타임 동작은 다음과 같은 핵심 컴포넌트에 의해 결정됩니다.
- 연결 아키텍처(Connectivity architecture)
- 복제 아키텍처(Replication architecture)
- 스토리지 아키텍처(Storage architecture)
- 캐싱 계층 아키텍처(Caching layer architecture)
- 보안 아키텍처(Security architecture)
Couchbase Server 서비스 구성
Couchbase Server는 다음과 같은 핵심 컴포넌트로 구성됩니다.
- Cluster Manager — 클러스터 전반을 관리
- Data service — 데이터 저장 및 관리 담당
- Index service — 인덱스 생성 및 관리 담당
- Query service — 쿼리 처리 담당
클러스터 내에서 워크로드에 따라 데이터, 인덱스, 쿼리 서비스를 독립적으로 배포하여 세 가지 서로 다른 워크로드(핵심 데이터베이스 연산, 인덱싱, 쿼리 처리)를 처리할 수 있습니다. 이 워크로드들은 서버 측 간섭 없이 독립적으로 그리고 동시에 처리됩니다.
따라서 어떤 노드든 특정 시점에 하나, 일부 또는 전체 서비스를 실행할 수 있습니다. 데이터베이스 관리자는 이러한 독립적인 서비스들을 활용해 고유한 토폴로지를 구성하고, 데이터베이스 내 여러 워크로드를 동시에 개별적으로 확장할 수 있습니다.
Couchbase Server 에디션
Couchbase Server는 엔터프라이즈, 커뮤니티, 오픈소스 세 가지 에디션으로 제공되며, 각 에디션마다 고유한 기능과 지원 수준을 제공합니다.
- Enterprise Edition(EE): 프로덕션 환경에 권장되는 에디션으로, Couchbase가 제공하는 최신 프로덕션 준비 릴리스를 포함합니다.
- Community Edition(CE): 비상업적 개발자를 위해 만들어진 에디션으로, 테스트와 이슈 식별을 지원해 향후 프로덕션 릴리스에서 심각한 문제가 발생하지 않도록 돕습니다.
- 오픈소스 프로젝트: Couchbase의 테스트, 개발, 미래 혁신을 위한 개방형 플랫폼입니다. Community 및 Enterprise 에디션 개발의 필수적인 기반이 됩니다.
결론
오늘날 IT 환경에서 고객의 기대는 디지털 전환을 주도하고 있습니다. 고객은 자신이 선호하는 브랜드와 상호작용할 때 탁월한 경험을 원합니다. 이러한 흐름 속에서 기업들은 매일 새로운 인터넷 애플리케이션이나 모바일 앱을 만드는 대신, 이미 존재하는 참여 시대의 거대한 기회를 적극적으로 활용해야 합니다. 이를 위해서는 빠른 응답성, 높은 가용성, 확장성, 지능성, 그리고 손쉬운 관리성을 갖춘 데이터베이스로 기존 기술과 환경을 현대화해야 하며, Couchbase Server와 같은 참여 데이터베이스가 바로 이러한 요구에 완벽하게 부합합니다.
궁금한 점이나 피드백이 있다면 피드백 탭을 통해 의견을 남겨 주세요. 데이터베이스 서비스에 대해 더 자세히 알아보세요.