Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

폴리글랏 퍼시스턴스(Polyglot Persistence)란? 다양한 데이터 저장 기술의 이해

원문은 2018년 4월 30일 ObjectRocket.com/blog에 처음 게재되었습니다.

폴리글랏 퍼시스턴스(Polyglot Persistence)란 서로 다른 데이터 저장 기술을 각각의 데이터 저장 요구에 맞게 조합해 사용하는 방식을 의미합니다. 애플리케이션 개발 시 여러 프로그래밍 언어를 함께 활용하는 '폴리글랏 프로그래밍'에서 파생된 개념으로, 쉽게 말해 하나의 애플리케이션이 두 가지 이상의 핵심 데이터베이스 기술을 동시에 사용하는 구조입니다.

작업에는 적합한 도구를 쓰는 것이 중요하듯, 데이터 처리 역시 적합한 데이터베이스를 선택하는 것이 중요합니다. 모든 데이터베이스는 저마다 고유한 강점과 약점, 특성을 지니고 있습니다. 그런데 시중에 수백 가지에 달하는 데이터베이스가 존재하기 때문에 이를 모두 파악하고 따라가기란 쉽지 않습니다.

데이터 저장 요구 사항 관리하기

단일 데이터베이스(모노글랏) 방식은 한 가지 유형의 워크로드만 처리하는 단순한 애플리케이션에는 과거에도, 지금도 충분히 적합합니다. 하지만 애플리케이션은 금세 복잡해지기 마련입니다.

예를 들어 간단한 이커머스 플랫폼만 해도 다음과 같은 도구들이 필요합니다.

  • 장바구니에 상품을 담기 위한 세션 데이터
  • 상품을 검색하기 위한 검색 엔진
  • 구매 이력을 바탕으로 잠재적 구매 상품을 제안하는 추천 엔진
  • 위치 기반 서비스를 지원하는 결제 플랫폼

폴리글랏 퍼시스턴스를 도입하면 서로 다른 저장소 유형의 데이터로 애플리케이션에 활력을 불어넣을 수 있습니다. 예컨대 완료된 금융 거래 데이터는 Oracle®에서 가져오고, 사용자 정보는 MongoDB®에서 추적하며, 캐시 처리는 Redis®에 맡기는 식입니다.

폴리글랏 퍼시스턴스 구현 시 고려할 사항

폴리글랏 퍼시스턴스 구축이 복잡하다는 불만의 상당수는 사실 해당 프로젝트에 부적합한 저장 솔루션을 억지로 끼워 맞추다 생긴 문제입니다. 그 결과 수많은 지원 프로세스가 만들어지고, 아키텍처는 통제하기 어려운 거대한 괴물로 자라나게 됩니다.

꼼꼼한 사전 계획만으로도 잠재적 문제의 90%를 예방할 수 있습니다. 먼저 목표를 분명히 하세요. 필수적인 비즈니스 기능이 필요한가요? 아니면 회사 운영의 상당 부분을 이 모델로 전환해야 하는 상황인가요?

올바른 데이터 저장 기술 선택하기

팀이 이전에 폴리글랏 퍼시스턴스 아키텍처를 구축해 본 경험이 있나요? 이런 유형의 모델 설계 경험이 없다면 적절한 데이터 솔루션을 제대로 활용하기가 쉽지 않습니다. 그렇다면 지금 착수하려는 프로젝트가 과연 올바른 시작점인지 어떻게 판단할 수 있을까요?

데이터 저장 유형 살펴보기

조직들은 애플리케이션에 데이터를 공급하기 위해 여러 종류의 데이터 소스를 함께 사용하는 경우가 많습니다. 대표적인 저장 옵션들을 살펴보겠습니다.

트랜잭션 데이터베이스: 관계형 데이터베이스 관리 시스템(RDBMS)이라고도 불리며, 정보를 행과 열로 이루어진 테이블 형태로 구성해 데이터 무결성을 보장합니다. 쿼리(query)라 불리는 문법 문장을 통해 데이터를 조회합니다. Microsoft® SQL Server®, Oracle® 같은 제품이 널리 쓰이며 많은 대형 조직이 이를 적극 활용합니다. 다만 저장 요구가 커질수록 확장이 어렵고, 데이터가 밀집되고 복잡해질수록 검색 속도가 느려진다는 단점이 있습니다.

비트랜잭션 데이터베이스: 테이블 기반 RDBMS에서 벗어난 형태로, 더 뛰어난 확장성과 빠른 검색 속도를 제공합니다. Elasticsearch 같은 검색·분석 엔진과도 잘 어울립니다. 흔히 NoSQL이라는 용어로 지칭되는 데이터베이스들입니다.

비트랜잭션 저장 유형은 다음과 같습니다.

  • 키-값(Key-value): 데이터가 저장된 위치를 가리키는 키를 사용하는 데이터베이스입니다. 해시 테이블을 쓰는 방식도 있고, Redis처럼 페어링 데이터를 메모리에 보관해 빠르게 접근하는 방식도 있습니다.
  • 문서(Document): 키-값 쌍을 JSON이나 XML 같은 인코딩으로 하나의 문서에 담아 구조화하는 방식입니다. MongoDB와 CouchDB®가 대표적인 오픈소스 제품입니다.
  • 컬럼(Column): RDBMS처럼 행이 아니라 그룹화된 열(column) 단위로 데이터를 저장하는 모델입니다. Apache® Cassandra와 HBase®가 이 방식을 사용합니다.
  • 그래프(Graph): 노드, 엣지(edge), 속성 등 그래프 구조로 데이터를 조직화하고 조회하는 방식입니다. Neo4j®가 대표적이며 꾸준히 인기를 얻고 있습니다.

폴리글랏 퍼시스턴스를 성공적으로 구현하려면 애플리케이션의 요구 사항에 어떤 데이터 옵션이 가장 잘 맞는지 정확히 아는 것이 중요합니다.

스스로에게 던져야 할 질문들

데이터 구조 관련 질문

  • 데이터가 자연스러운 구조를 갖고 있습니까? 아니면 비정형 데이터입니까?
  • 다른 데이터와 어떻게 연결되어 있습니까?
  • 데이터는 어떤 방식으로 분산되어 있습니까?
  • 다루어야 할 데이터의 규모는 어느 정도입니까?

접근 패턴 관련 질문

  • 읽기와 쓰기의 비율은 어떻게 됩니까?
  • 접근이 균일한 편입니까, 무작위입니까?
  • 애플리케이션에서 읽기와 쓰기 중 어느 쪽이 더 중요합니까?

조직 요구 사항 관련 질문

  • 인증이 필요합니까? 필요하다면 어떤 유형입니까?
  • 암호화가 필요합니까?
  • 백업이 필요합니까?
  • 재해 복구 사이트가 필요합니까?
  • 플러그인이 필요합니까?
  • 어느 수준의 모니터링이 요구됩니까?
  • 어떤 드라이버가 필요합니까?
  • 어떤 언어를 사용해야 합니까?
  • 서드파티 도구를 활용해야 합니까?

적임자의 도움 받기

이러한 의사결정에는 폴리글랏 아키텍처 전문가의 도움을 받는 것이 큰 도움이 됩니다. 지나치게 복잡한 아키텍처로 인한 추가 유지보수 부담을 피할 수 있기 때문입니다. 일부 인기 있는 오픈소스 데이터베이스 벤더들이 관리 서비스를 제공하기도 하지만, 과연 자사의 데이터 소스가 고객의 요구에 맞지 않는다고 솔직하게 알려줄까요?

따라서 다양한 데이터 옵션의 강점과 약점을 깊이 이해하는 기업에 먼저 문의하는 것이 좋습니다. Rackspace ObjectRocket은 비즈니스 요구에 맞는 다양한 데이터베이스 옵션을 360도 시야에서 검토할 수 있도록 돕습니다. 빅데이터 솔루션을 한 단계 끌어올릴 최적의 DBA와 엔지니어를 제공합니다.

Rackspace DBA Services에 대해 자세히 알아보세요.

피드백 탭을 통해 의견을 남기거나 질문할 수 있습니다. Sales Chat을 클릭해 지금 바로 상담을 시작할 수도 있습니다.

Rackspace 클라우드 서비스 약관을 확인하세요.