아직도 관계형 DB만 쓰고 계신가요?

최근 IT업계의 최대 화두 중 하나는 ‘애플리케이션(앱) 현대화’다. 이를 위해서는 모놀리식(Monolithic) 아키텍처를 버리고 MSA(Microservice Architecture)로 도입하는 것이 일반적이다. 하나의 통에 모든 구성요소를 담는 것(모놀리식)이 아니라, 레고블록처럼 작은 서비스를 여러 개 만들어 놓고 이를 조립하는 방식으로 애플리케이션을 개발하자는 접근법이다. MSA는 잘만 구성되면 시스템의 안정성, 확장성, 유연성, 생산성 등의 면에서 모놀로식 아키텍처보다 장점을 가진다.

이런 MSA의 특징 중 하나는 다양한 종류의 DB를 사용할 수 있다는 점이다. 모놀리식 아키텍처에서는 오라클과 같은 대규모 DB를 구축하고 각 노드(서버)가 이 DB를 공유하는 게 일반적이었다. 이런 공유스토리지 방식은 노드 하나에 문제가 생겨도 시스템 전체가 셧다운 되지 않는다는 점에서 인기를 끌었다. 그러나 비용이 많이 들고, 스토리지에 장애가 일어나면 전체 시스템이 멈춘다는 단점도 있다.

모놀리식 아키텍처에서는 주로 관계형 DB를 사용했다. 각 앱이 하는 일은 각기 달랐지만 DB는 꼭 관계형 DB였다. 관계형 DB는 트랜잭션(거래) 처리에 최적화 된 소프트웨어인데, 트랜잭션 처리가 아닌 경우에도 관계형 DB를 사용하는 경우가 많았다.

반면 MSA는 각 마이크로서비스가 별도의 DB를 가질 수 있다. 이 경우 하나의 노드나 DB에 장애가 발생하면 그 서비스만 문제가 생길 뿐이다. 그러다보니 MSA에는 다양한 DB 소프트웨어를 사용할 수 있게 됐다. 각 서비스의 목적에 따라 그 서비스를 가장 잘 구현할 수 있는 DB를 선택할 수 있게 된 것이다.

이를 ‘멀티-모델(Multi-Model) 데이터베이스’, 또는 ‘목적 맞춤형(Purpose Built) 데이터베이스’라고 부른다. 트랜잭션 처리에는 여전히 관계형 DB를 사용하겠지만, 다른 서비스에는 그 서비스 특성에 가장 잘 어울리는 DB를 선택할 수 있다. 이 때문에 최근에는 다양한 종류의 비(非)관계형 DB가 새롭게 각광을 받고 있다. 멀티-모델 데이터베이스에 주로 활용되는 DB의 종류를 살펴보자.

키-밸류(Key-Value) DB

간단한 키와 값을 사용해 데이터를 저장하는 DB다. 키를 검색해서 데이터를 가져오기 때문에 성능이 뛰어나다. 조인(JOIN) 등의 복잡한 연산은 불가능하지만, 데이터량이 많고 빠르게 가져와야 할 때 유용하다.

REDIS(REmote DIctionary Server), 아마존 다이나모 DB 등이 키-밸류 DB로 유명하다. 아마존은 특히 최근 몇년간 오라클 DB를 자체 서비스로 대체하는 프로젝트를 진행했는데, 다이나모DB가 상당부분 오라클 DB를 대신한 것으로 전해지고 있다.

다큐먼트 DB

다큐먼트 DB는 스키마 없이 JSON처럼 문서 형태로 데이터를 저장하는 것이 특징이다. 데이터를 쉽게 가져올 수 있어서 개발자들이 선호한다. 가장 대표적인 다큐먼트 DB는 몽고DB이다. AWS는 몽고DB와 호환되는 아마존 다큐먼트DB라는 서비스를 제공한다. 마이크로소프트 애저 코스모스DB, 카우치베이스, 카우치DB 등도 인기가 있다.

그래프 DB

데이터 간의 관계를 저장하는 데 최적화 된 DB다. 소셜네트워크서비스(SNS)처럼 관계가 중요한 서비스에 유용하다. 관계형 DB에 데이터를 저장하고 데이터간 관계를 분석하려면 복잡한 계산을 해야 하지만, 그래프DB를 활용하면 훨씬 수월하게 같은 일을 할 수 있다.

Neo4j, 아랑고DB, 오리엔트DB 등이 유명하다. 국내 스타트업 중에도 비트나인이라는 회사가 그래프DB 자체 개발해 사업을 펼치고 있고, 카카오도 그래프DB를 개발해 오픈소스로 공개한 바 있다.

시계열 DB

시계열 DB는 시간 순서대로 데이터를 추가해 저장하는 DB를 말한다. 공장의 센서에서 나오는 데이터를 1초마다 기록해야 한다면 관계형DB에 이를 계속 담기 부담스럽다. 시계열DB는 정해진 시간별로 데이터를 계속 추가하면서 데이터의 변화를 추적할 수 있다.

인플럭스DB가 가장 유명한 시계열 DB이며, 국내에서도 마크베이스라는 시계열 DB가 높은 성능을 자랑하고 있다.

AWS코리아 김일호 리드 솔루션즈 아키텍트는 “기존에는 관계형 데이터베이스로 대부분의 서비스를 개발했지만, 최근에는 요구사항이 복잡해지고 비즈니스 변화도 빠르게 때문에 하나의 형태가 아니라 목적에 맞는 데이터베이스 사용이 필요하다”고 말했다.

글. 바이라인네트워크
<심재석 기자>shimsky@byline.network


[웨비나] 디지털 변혁을 위한 데이터베이스 혁신 방안

바이라인네트워크는 멀티모델 데이터베이스 구현을 위한 무료 웨비나 ‘디지털 변혁을 위한 데이터베이스 혁신 전략’을 개최합니다.

일시 : 2020년 9월 24일 14시~17시 30분

아젠다
  • 데이터 여행을 위한 Azure CosmosDB / 마이크로소프트
  • 그래프 데이터베이스와 네트워크 분석으로 AI 완성하기 / 비트나인
  • 스마트 팩토리를 위한 시계열 DB / 마크베이스
  • 멀티모델 DB구축의 필요성과 방법론 / 엔코아
  • AWS가 15가지 이상의 DB엔진을 지원하는 이유는? / AWS
[button link=”https://bit.ly/2FIygyr” type=”big” newwindow=”yes”] 등록하러 가기[/button]

관련 글

첫 댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다