'데이터베이스'에 해당하는 글 2건


클라우드 컴퓨팅의 시대가 본격적으로 대두되면서, 데이터베이스 부분에 있어서도 수십 년을 호령하던 관계형 데이터베이스 보다는, 비관계형 데이터베이스가 클라우드의 안쪽과 바깥쪽에서 많이 쓰이기 시작하고 있습니다.  특히, on-demand 확장성이 많이 필요한 분야에서는 관계형 데이터베이스를 기피한다고 합니다. 

그렇다면, 현재까지 무수한 기술적 도전에도 불구하고 건재함을 자랑해온 관계형 데이터베이스의 시대가 저물고 있는 것일까요?  이 글은 Tony Bain이 RWW에 기고한 글을 바탕으로한 데이터베이스의 현재와 미래에 대한 글입니다.  원문은 아래의 링크를 참고하세요.

Is the Relational Database Doomed? by Tony Bain


관계형 데이터베이스의 역사는 30년이 넘습니다.  이렇게 오랜 기간 동안 몇 차례 관계형 데이터베이스를 구닥다리로 취급하고 새로운 데이터베이스의 시대를 열려고 했던 시도가 있었습니다.  그렇지만, 결국에는 관계형 데이터베이스의 아성을 뚫는데 실패한 기술은 없었습니다.



관계형 데이터베이스는 본질적으로 테이블(엔티티)의 집합입니다.  테이블들은 행(튜플)과 열(컬럼)으로 이루어지는데, 테이블에 제한이나 관계 등을 정의해서 이들을 엮어 관리할 수 있습니다.  관계형 데이터베이스를 다루는 질의어로는 SQL 이라는 것이 있어서, 다양한 방식으로 데이터의 결과를 얻을 수 있습니다.  데이터베이스 전반을 구축하는데 특별한 제약은 없지만, 고급 수준에 올라가게 되면 데이터의 일관성과 중복을 없애기 위해 정규화(Normalization)나 최적화 같은 작업을 하기도 합니다.

관계형 데이터베이스를 지원하는 소프트웨어가 바로 관계형 데이터베이스 관리시스템 (Relational Database Management Systems, RDBMS)입니다.  오라클, IBM의 DB2, 사이베이스, MySQL 등의 익숙한 소프트웨어 이름들이 모두 RDBMS 소프트웨어의 이름입니다. 

그렇다면, 그 이후 몇 차례 신기술들이 소개 되었음에도 관계형 데이터베이스가 건재했던 이유는 무엇일까요?  일단 단순하고, 견고하며, 속도도 빠르고, 확장성도 있었으며 경우에 따라 데이터를 작게 유지할 수도 있습니다.  거기에 수십 년간 증명이 되었다는 것도 무시할 수 없습니다.

그렇지만, 관계형 데이터베이스는 내부적으로는 매우 복잡한 연산을 합니다.  예를 들어, 비교적 간단한 SELECT 문장도 수 백번의 질의수행 경로를 가질 수도 있습니다.  물론, 최적화를 잘하면 이런 부분이 줄어들 수 있습니다.  관계형 데이터베이스에서 질의 최적화가 중요한 이유가 여기에 있습니다. 


관계형 데이터베이스의 문제

RDBMS가 데이터베이스 사용자들에게 여러 면에서 좋은 성능을 보여주었지만, 이러한 성공에는 사실 다른 기술들이 관계형 데이터베이스보다 뛰어나지 못했던 것이 아니라 주류로 자리잡고 있는 안방마님을 밀어내기에는 기술의 격차가 비교적 적었다는 것으로 설명하는 것이 타당할 것 같습니다.  이미 안방을 차지하고 있다면, 이를 밀어내는데 상당한 고통이 따르는 법이므로 기술이 왠만큼 좋아서는 밀어낼 수가 없습니다.  그것이 수십 년간 RDBMS가 독야청청한 원동력이 되었습니다.

그렇다면 최근의 상황이 정말 관계형 데이터베이스를 위태롭게 하고 있나요?  클라우드 컴퓨팅이 점점 자리를 잡아가면서 확장성과 속도, 성능 등과 같은 기술적 요소의 중요성이 점점 중요해지고 있습니다.  웹 서비스가 주류를 자리잡게 되면서 빠른 반응속도와 쉽게 확장할 수 있는 확장성은 필수 요소가 되어가고 있으며, 특히 디자인을 변경하거나 환경자체가 변화하는 요구사항까지 날이 갈수록 늘어가고 있습니다.  이런 변화의 가능성과 확장성에 대한 요구사항에 대해서 관게형 데이터베이스는 좋은 답을 주고 있지 못합니다.

관계형 데이터베이스도 확장하는데 큰 어려움이 있는 것은 아닙니다만, 이는 단일 서버 노드에서 일어날 때의 일이고, 만약 분산된 환경에서 다양한 서버 노드에서 일어나는 일이라면 그다지 좋은 확장성을 보여주지 못합니다.  특히, 하나의 노드의 용량이 다 찼을 때 자연스럽게 다른 서버 노드로 데이터를 분산하고 이를 이용할 수 있어야 하는데 이런 상황을 대처하기가 쉽지 않습니다. 그 이유는 외부 질의어는 단순해도 내부 실행경로가 복잡할 수 밖에 없는 관계형 데이터베이스 기술자체가 본질적으로 바뀔 수 없기 때문입니다. 

이런 이유로 클라우드 서비스를 계획하고 있는 곳에서는 관계형 데이터베이스의 이러한 문제가 치명적인 약점이 될 수 밖에 없습니다. 


새로운 데이터베이스 기술의 약진

그렇다면 이러한 클라우드 컴퓨팅 환경에서 약진하고 있는 DBMS는 무엇일까요?  최근 가장 주목을 끌고 있는 DBMS는 키/값 저장(key/value store)이라고 불리는 시스템입니다.  이름이 이상하지요?  사실 아직 이런 시스템에 대해 이름이 제대로 붙지 않았기 때문입니다.  다른 곳에서는 또 다른 이름으로 불리기도 합니다.  문서지향형(document-oriented), 속성지향형(attribute-oriented), 분산데이베이스(distributed database), 공유정렬형 배열(sharded sorted arrays), 분산해쉬테이블(distributed hash table) 등의 이름이 거론되고 있지만, 결국에는 키/값 데이터베이스의 특징을 가지고 있다고 정리할 수 있습니다.

기존의 관계형 데이터베이스와 키/값 데이터베이스와는 본질적인 차이가 있습니다.  자세한 비교는 아래의 표들을 참고하시기 바랍니다.



표 읽기가 너무 복잡하다고 생각하시는 분들을 위해 간단하게 정리를 해 보겠습니다.

키/값 데이터베이스는 기본적으로 아이템 지향적이고 하나의 아이템 내부에 꼬리를 물고 관련된 데이터를 저장할 수 있습니다.  테이블이라는 개념 대신에 도메인(domain)이라는 개념이 이용되는데, 하나의 도메인에는 매우 이질적인 데이터들이 저장될 수 있습니다.  예를 들어, 고객의 정보와 주문 정보를 하나의 도메인에 저장합니다.  이 경우 중복되는 정보들이 많이 있을 수 있는데, 최근에는 디스크의 용량이 문제가 되지 않기 때문에 중복에 대한 단점보다는 쉽게 확장을 하면서 데이터를 조인할 필요가 없다는 장점이 더욱 크게 부각이 되기에 큰 문제가 되지 않습니다.  다시 말하자면, 데이터 간의 관계(relationship)를 만들 필요성을 최소한으로 줄입니다.  

다만 서로의 정보를 쉽게 가져오기 위해서 적절한 키만 알고 있으면 됩니다.  정보의 중복성은 거의 고려하지 않습니다.  관계와 데이터 모델을 정의하지 않기 때문에, 이를 관리하는 DBMS는 매우 쉽게 확장과 변경을 할 수 있습니다.  그렇지만, 이러한 관계를 다루는 역할이 고스란히 프로그램, 애플리케이션이나 서비스 코딩을 하는 쪽으로 넘어오게 됩니다.  언제나 장점이 있으면 단점이 있기 마련이니까요 ...


키/값 데이터베이스의 장점

이러한 키/값 데이터베이스의 장점은 너무나 명확합니다.  무엇보다 단순하고 확장이 용이하기 때문에 클라우드 컴퓨팅에 이용하기가 좋습니다.  단순하면서 수 많은 요구가 발생하는 서비스에 특히 강할 수 밖에 없는 구조이기 때문입니다.  또 하나의 장점은 관계형 데이터베이스를 사용할 때처럼 데이터 모델을 애플리케이션 개발과 별도로 디자인할 필요가 없다는 점 입니다.  사실 서비스를 개발할 때 가장 많은 시간이 투자되고 어려움을 가중시키는 과정의 하나가 데이터 모델과 애플리케이션 프로그래밍을 결합시키는 부분 임을 감안하면 장점이라고 이야기할 수 있겠습니다.  키/값 데이터베이스의 경우 바로 구조체의 형태로 객체 클래스와 매핑이 가능하다는 점이 큰 장점입니다.  이로 인해 개발기간이 많이 단축될 수 있습니다.


키/값 데이터베이스의 단점

그렇다고, 장점만 있는 것이라면 모두 이쪽으로 바뀌겠지요?  일단 관계형 데이터베이스와 같은 데이터의 무결성(integrity)를 보장해주지 않습니다.  관계형 데이터베이스는 DBMS 차원에서 데이터의 무결성을 검증하고 잘못된 데이터가 저장되지 않도록 하는 안전장치가 있습니다만, 키/값 데이터베이스에는 이런 절차가 없습니다.  애플리케이션 프로그래밍을 할 때 알아서 담보를 해야 합니다.

또한, 독립적으로 잘 디자인된 데이터 모델이 있을 경우 이에 대한 과실을 누릴 수가 없습니다.  관계형 데이터베이스의 경우 데이터가 애플리케이션과 독립적으로 관리될 수 있지만, 키/값 데이터베이스를 이용한다면 중복작업이 상당수 필요합니다.

그리고, 아직까지 명확한 표준안이나 API가 정해지지 않은 상황이기 때문에 호환성 문제가 발생할 여지도 있습니다.  물론, 이런 문제는 시간이 가면서 차차 해결될 것으로 생각됩니다만 ...


키/값 데이터베이스는 현재 클라우드 컴퓨팅 형태의 웹 서비스와 직접 설치가능한 오프라인 소프트웨어 들이 있습니다.  클라우드 컴퓨팅 서비스에는 아마존의 SimpleDB, 구글 AppEngine Data Store, 마이크로소프트의 SQL Data Service가 가장 두각을 나타내고 있으며, 오프라인 소프트웨어로는 CouchDB, Mongo, Drizzle 같은 것들이 있습니다.  이들에 대해서는 다음 기회에 다시 한번 간단히 리뷰를 해 보겠습니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

WRITTEN BY
하이컨셉
미래는 하이컨셉, 하이터치의 세계라고 합니다. 너무 메마르고 딱딱한 이야기보다는 글로벌 시대에 어울리는 세계 각국의 이야기, 그리고 의학과 과학을 포함한 미래에 대한 이야기의 세계로 여러분을 초대합니다.

받은 트랙백이 없고 ,


과거 포스팅에서 아마존의 웹 서비스인 AWS가 가지고 있는 큰 비젼에 대해서 언급한 바가 있었고, 아마존이 단순히 전자상거래를 이끌어가는 기업으로서의 비젼이 아니라 웹 2.0의 기술 플랫폼을 제공하는 하이테크 기업으로서의 위상을 가지고 싶어한다는 글을 남긴 적이 있습니다.


2008/11/16 - [Health 2.0 vs. Web 2.0] - 아마존이 웹 2.0 기업이라고 생각하시나요?


실제로 이러한 아마존의 하이테크 전략의 정점에 있는 것이 바로 WebOS 전략 입니다.  기본적으로 아마존이 노리고 있는 초기 시장은 자신의 전자상거래 플랫폼을 이용하고 있는 수많은 작은 기업들 입니다.  일단 작은 기업들(최근의 웹 2.0 현상으로 인해, 이러한 기업들에는 사실상 많은 수의 개인들이 포함됩니다)에게 웹을 기반으로 하는 기술 플랫폼 환경을 제공하고 여기에 익숙해 지도록 하면서 자연스럽게 일반 PC의 웹 환경 플랫폼까지 장악하려고 하는 것이지요 ...

이와 같은 아마존의 엄청난 야심은 2006년 말 CEO인 제프 베조스(Jeff Bezos)비즈니스위크(BusinessWeek)의 커버 스토리로 실린 글에도 나타납니다.  이 글도 굉장히 재미있는 글인데, 나중에 시간이 되면 요약을 해서 올려보도록 하겠습니다.   당장 이 글을 읽고 싶으신 분들은 아래 URL 따라가시기 바랍니다.


http://www.businessweek.com/magazine/content/06_46/b4009001.htm


아마존의 WebOS 전략은 기본적으로 그들이 제공하는 AWS(Amazon Web Service)의 스택(stack)에서 출발합니다.  아마존의 전략이 훌륭한 것은 덩치가 큰 운영체제적인 요소를 한꺼번에 개발해서 릴리즈를 하는 것이 아니라, 철저히 수요가 있는 서비스 스택부터 하나씩 모듈화해서 내놓는 점에 있습니다.  과도한 리소스를 사용하지도 않으면서 필요한 조각들을 순차적으로 차세대 웹 플랫폼으로 내놓고 이들이 지속적으로 사용될 수 있는 환경을 조성하는 것입니다.  2006년 말에 내놓았던 기본적인 WebOS 플랫폼 다이어그램은 다음과 같습니다.




이미 상단과 중단에 있는 서비스 플랫폼 요소들은 상당부분 공개가 되고, 이용이 되고 있습니다.  하단의 인프라 솔루션들이 핵심과제가 되겠습니다.  이러한 아마존의 웹서비스 플랫폼은 새로운 웹 기반의 운영체제의 가능성을 보여주고 있습니다. 


과연 웹 기반의 운영체제 플랫폼은 뭐가 다를까?

전통적인 로컬 PC 기반의 운영체제가 PC를 구성하고 있는 CPU, 메모리, 저장공간(하드디스크, CD-ROM 등), 그리고 다양한 입출력기기(마우스, 키보드, 디스플레이)들에 대한 총체적인 관리를 한다고 볼 때, 언제나 사용자들은 하드웨어 업그레이드의 유혹에 빠지게 됩니다.  그리고, 이렇게 한정된 메모리나 리소스를 관리하는 것이 운영체제의 역할이지요 ...

그렇다면 웹 기반 운영체제라면 어떨까요?  수 없이 연결된 수 많은 서버의 클라우드에 우리의 컴퓨터 또는 휴대폰, PMP 등이 접속을 한다고 가정하면 거의 무한대의 저장공간과 여기에 저장된 수 많은 정보를 제대로 뽑아내기 위한 다양한 검색엔진 및 개인화된 색인기능, 그리고 빠른 속도의 컴퓨팅을 위해 물려있는 모든 컴퓨팅 리소스를 최대한 활용해서 기능을 극대화하는 기능이 필요할 것입니다.  위의 인프라 플랫폼이 이런 철학에서 설계되었다는 감이 잡히시나요?

사실 엄청나게 큰 규모의 웹 기반 소프트웨어를 만든다는 것은 엄청난 대역사입니다.  그렇기 때문에, 아마존이 선택한 방법은 바로 그동안 자신들이 온-라인 상거래를 통해 쌓아올린 인프라를 개방하는 것이었습니다.  간단한 검색과 저장, 그리고 데이터 관리와 관련한 핵심적인 서비스 API의 형태로 자신들이 구축한 복잡한 비즈니스 로직은 거대한 서버 클라우드 속에 캡슐화가 되었습니다.  그리고, 이 서비스를 이용하는데 최소한의 비용만 받음으로써 수 많은 비즈니스 파트너들이 이를 이용하도록 유도하였습니다. 커다란 회사들은 이 서비스를 이용하지 않았지만, 소위 비즈니스의 롱테일에 속하는 수 많은 작은 기업들이 여기에 동참합니다.


차세대 가상분산저장공간을 제공하는 다이나모(Dynamo)

WebOS 플랫폼의 첫 단추를 끼운 아마존은 1년이 지난 2007년 말 차세대 가상분산저장공간(Virtual Distributed Storage) 시스템인 다이나모를 공개합니다.  일단 AWS를 통해 자신들이 가장 잘하는 전자상거래 분야를 장악한 아마존이 드디어 웹 기반의 인프라 시스템 기술에 도전하기 시작한 것입니다.

현재까지 데이터의 저장과 이에 대한 관리와 관련한 가장 성공적인 기술은 관계형 데이터베이스(Relational Database) 기술입니다.  이 기술의 왕좌자리를 지키고 있는 오라클의 성공가도만 보아도 얼마나 중요한 기술인지는 뻔합니다.  관계형 데이터베이스는 특히나 현재의 웹 환경을 구축하는데에도 엄청난 기여를 한 기술입니다.  그렇지만, 원래 설계자체가 클라우딩 컴퓨팅 환경에 맞도록 되어있지 않기 때문에 언젠가 보다 혁신적이면서도 현재의 환경에 잘맞는 기술을 기다리고 있었던 것도 사실입니다.  특히나 관계형 데이터베이스는 중복을 제거하거나 병렬적인 처리에 상당한 취약점을 보입니다.  이 문제를 해결하기 위해 수 많은 웹 사이트나 데이터베이스가 데이터를 복제하거나 중복처리하는 일을 할 수 밖에 없었고, 이렇게 복제된 데이터들 사이의 동기화 문제는 언제나 큰 숙제가 될 수 밖에 없었습니다.  

다이나모는 이러한 문제를 해결한 분산저장 시스템입니다.  정보가 수 많은 컴퓨터에 분산저장이 됩니다.  잘못된 저장이나 문제가 생겼을 때 대처를 하기 위해서는 이를 복수로 저장하고 복구를 자동으로 하는 FT(Fault Tolerance) 기능을 내장하고 있습니다.  클라우드 속에 있는 수 많은 컴퓨터들은 알 필요가 없이 하나의 저장공간처럼 대응을 하면 되는 것입니다.


최대의 경쟁상대는 바로 구글 ! 그러나 상생도 가능하다.

아마존의 WebOS 전략의 최대 라이벌은 누구일까요?  바로 구글입니다.  이 부분에 있어서 만큼은 이미 마이크로소프트가 경쟁에서 낙오하고 있습니다.  구글이 최근 공격적으로 웹 운영체제에 대한 전략을 펼쳐 나가고 있습니다.  구글은 Google Base API, GData API를 공개하는 것을 시작으로 OpenSocial과 Google Health에 이르는 광범위한 웹 서비스 API 기술들을 공개하기 시작했습니다. 

아마존과 구글의 대결양상처럼 보이는 현재 ...  그러나, WebOS는 기본적으로 특성상 상생이 가능합니다.  과거 하나의 컴퓨터에 하나의 운영체제를 깔지 않으면 안되는 체제가 더이상 아니니까 말입니다.  아마도 사용자들이 훨씬 행복한 세상이 될 것 같습니다.  웹 브라우저를 이용해서 필요로 하는 WebOS 컴포넌트를 어떤 것은 아마존을 어떤 것은 구글을 이용할 수 있으니까 말입니다. 

아마존과 구글의 경쟁이 즐거워 보이는 이유입니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

WRITTEN BY
하이컨셉
미래는 하이컨셉, 하이터치의 세계라고 합니다. 너무 메마르고 딱딱한 이야기보다는 글로벌 시대에 어울리는 세계 각국의 이야기, 그리고 의학과 과학을 포함한 미래에 대한 이야기의 세계로 여러분을 초대합니다.

받은 트랙백이 없고 ,