[컴퓨터월드] 20년 전만 하더라도 ‘객체지향DBMS’의 발전은 눈부셨다. CAD/CAM, GIS등 그동안 데이터화 할 수 없었던 많은 비정형데이터들을 데이터베이스화 할 수 있도록 한 일등 공신은 ‘객체지향DBMS’였다. ‘객체지향DBMS’ 시장은 표준화 작업과 PC, 네트워크의 발전 등 각종 호조에 힘입어 매년 100%이상 성장하는 뜨거운 시장이었다. 당대의 전문가들은 이러한 성장이 꾸준히 이어질 것으로 예측했다. 하지만 20년이 지난 지금 객체지향DBMS를 찾아보는 것은 무척 어려운 일이 됐다. 현재 객체지향DB는 전문분야를 제외한 주류 상용 자료처리에는 큰 영향을 주지 못하고 있다. 객체지향DB는 어쩌다 이렇게 추락한 것일까.

객체지향DBMS의 등장

93년 객체지향DBMS(OODBMS)의 표준이 확립되면서 95도까지 객체지향DB는 괄목할 만큼 성장하고 있었다. 당시 IDC 시장자료에 따르면 93년 객체지향DB 시장은 7,580만달러로 92년 3,608만달러에 비해 2배 이상 성장했다. 이처럼 높은 성장세로 인해 많은 전문가가 객체지향DB 시장이 꾸준히 성장할 것으로 예측했다.

객체지향DBMS가 등장하게 된 이유는 크게 세 가지다. 첫재로는 프로그래밍의 패러다임이 ‘절차적 프로그래밍’ 방식에서 ‘객체지향 프로그래밍’ 방식으로 바뀌어가고 있었고, 둘째로는 기존 관계형DBMS(RDBMS) SQL과 프로그래밍 언어 사이에 데이터 구조 등의 차이로 ‘임피던스 불일치(impedance mismatch)’라 불리는 충돌 문제가 생기곤 했기 때문이었다.

마지막으로 컴퓨터 성능과 네트워크 기술이 발전하며, CAD/CAM, GIS, 통신/네트워크 관리, 재무 모델링, 도면관리, 멀티미디어 응용 등 비정형 데이터를 관리할 수 있는 시스템에 대한 요구가 커지게 된 것이다.

이뿐만 아니라 하드웨어 업체의 객체지향DBMS 기술 보증, 93년 객체지향DBMS 표준안 발표, 혼성형 객체-관계DBMS 등장, 객체지향DBMS에 SQL인터페이스 추가 등 여러 원인으로 객체지향DBMS 시장은 빠르게 세를 불렸다.

객체지향이란 무엇인가

그렇다면 객체지향DB는 무엇을 말하는 것일까? 객체지향DB는 일반적으로 사용되는 테이블 기반의 관계형DB와 다르게 정보를 ‘객체’형태로 표현하는 데이터베이스 모델이다. 객체지향DB가 무엇인지 이해하기 위해서는 ‘객체지향’(Objecte-Oriented)이라는 말의 의미부터 살펴봐야 한다.

객체지향이라는 거대한 패러다임은 객체지향 프로그래밍에서 시작됐다. 객체지향 프로그래밍은 프로그램을 어떻게 설계해야하는지에 대한 일종의 방법론으로, 프로그램을 단순히 데이터와 처리 방법으로 구분하던 ‘절차적 프로그래밍 방식’과 ‘구조적 프로그래밍 방식’의 문제점을 극복하기 위한 대안으로 등장했다.

절차적 프로그래밍의 경우, 알고리즘이 조금만 복잡해져도 순서도로 나타내는 것이 불가능할 정도로 어려웠다. 이렇게 작성된 코드는 다른 사람이 이해하기도 어려울뿐더러 작성한 본인조차도 유지보수에 어려움을 겪게 된다.

처음에는 이러한 문제를 해결하기 위해 ‘구조적 프로그래밍’ 방식이 도입되었다. 이는 프로그램을 함수 단위로 나누고 함수들끼리 호출하는 방식이었고 큰 문제를 해결하기 위해 작은 문제들로 나누어 해결하기 때문에 ‘하향식(Top-down)’ 방식 프로그래밍이라고도 일컫는다.

이러한 방식은 원래의 문제가 바뀔 경우기존의 코드를 재사용하기 어려웠고, 매번 다시 코딩해야 해, 소프트웨어 개발에 드는 비용과 시간이 점차 늘어갔다.

결국 객체지향 프로그래밍은 큰 문제를 작게 쪼개는 것이 아니라, 먼저 작은 문제들을 해결할 수 있는 객체들을 만든 후, 그 객체를 조합해서 큰 문제를 해결하는 ‘상향식(Bottom-up)’ 방식의 프로그래밍 기법이다.

‘객체지향’의 개념에서는 현실 세계의 모든 개념적 개체(entity)는 하나의 객체로 모델링 될 수 있다. 각각의 객체는 하나 이상의 속성과 이 속성값 상에서 작동하는 하나 이상의 메소드를 갖는다. 이 속성값 또한 하나의 객체이다. 즉 ‘객체 지향’에서의 ‘객체’의 정의는 데이터와 함수(메소드)를 합쳐둔 것이라 할 수 있다.


객체지향DBMS와 관계형DBMS

 

▲ <표 1> 객체지향DBMS와 관계형DBMS의 비교


객체지향DBMS와 관계형DBMS는 정확히 어떻게 다른 것인가. 가장 큰 차이는 DB의 저장에 있다. 관계형DB의 경우 미리 정의된 데이터 형식에 맞춰 데이터만을 저장할 수 있는 데 비해 객체지향DBMS의 경우 ‘데이터와 연관된 프로그램’인 ‘메소드’를 함께 저장해 사용할 수 있다는 점이 가장 큰 차이점이다.

또한 객체지향DBMS와 관계형DBMS는 데이터 모델링에 있어서도 차이점이 있다. 관계형DBMS는 데이터의 저장방식이 테이블 구조에 한정되지만, 객체지향DBMS의 경우 데이터 개체간의 관계가 포인팅 방식으로 돼 있어, 실세계의 모델링에 관계형DBMS보다 유리하다.

또한 관계형DBMS 사용시 발생하는 ‘임피던스 불일치’도 단일 언어를 사용해 액세스와 프로그래밍을 동시에 제공하는 객체지향DBMS에서는 발생하지 않는다.

관계형DBMS는 1980년대 초반에 상품화가 이루어지기 시작했고, 메인프레임 컴퓨터가 주종을 이루고 있었다. 따라서 하드웨어 종속되기 마련인 관게형DBMS는 서버 위주의 소프트웨어 구조를 갖게 됐으며, 클라이언트는 단순한 터미널 기능만을 갖게 됐다. 반면 객체지향DBMS는 1990년대 초반에 상품화가 이뤄지기 시작했는데, 워크스테이션이 주종을 이루는 환경이었고, 클라이언트 서버 컴퓨팅 환경이 대두된 시기였다. 따라서 객체지향DBMS 소프트웨어 구조는 클라이언트 서버 모델로 만들어지게 돼, CAD/CAM과 같은 그룹작업에서 필요로하는 ‘기동성’과 통신과 같은 분야에서 요구하는 ‘분산화’가 가능했다.

관계형 데이터베이스가 유사한 형태의 대량 데이터를 효율적으로 처리해야하는 MIS 분야에 적합하다면, 객체지향DBMS는 복잡한 데이터를 관리해야하는 공학분야 등에 적합할 것이라고 당대 사람들은 전망했다.


객체지향DB의 치명적 실수

즉, 객체지향DB는 처음부터 관계형DB를 대체하기 위한 목적으로 개발된 것이 아니었다. 근본적으로 객체지향DB는 관계형DB의 경쟁자가 아니었다. 하지만 당대 객체지향DB 업체들이 마케팅을 진행해 나가면서 관계형DBMS의 한계를 주로언급하는 실수를 저질렀다. 따라서 객체지향DB를 처음 접하는 이들은 객체지향DB가 관계형DB를 뛰어넘는 차세대 기술이라 착각하는 경우가 많았다.

정작 객체지향DB의 엔진을 개발하던 사람들은 관계형DB를 경쟁자라고 생각하지 않았음에도 마케팅을 담당자들은 계속 객체지향DB가 관계형DB보다 우월한 기술이라고 홍보하고 다니며 혼란을 가중시켰다. 결국 객체지향DB가 기존 관계형DB의 관리자, 개발자를 설득하려다 보니, 이에 따른 여러 문제점이 제기되었다.

1) 기존 2차원 형태의 테이블(table) 설계가 익숙한데, 굳이 자료 구조를 변경해야 하는가?
2) 관계형 데이터베이스가 이론적인 면에서 더욱 단순하고, 유연성이 높다.
3) SQL 쿼리를 쓸 수 없어서 불편하다.
4) 검색 성능이 느리고, 대규모 트랜잭션 처리 성능이 떨어진다.
5) 대형 기관에 검증된 사례가 없다.

이러한 문제가 제기되자 객체지향DB 업체들은 SQL과 거의 흡사한 OQL(Object Query Language)을 추가하고, 관계형DB의 장점을 수용해서 B+ 인덱스를 이용한 색인을 제공했으며, 검색 기능을 강화하고, 트랜잭션 처리 능력을 보강하는 등 많은 노력을 기울였다. 그리고 이러한 노력은 아이러니하게도 객체지향DB 시장의 붕괴를 가속화했다.


객체지향DB 무너지다.

객체지향DB가 빠르게 발전해 나가자 DB업계의 공룡기업 오라클(Oracle)이 본격적으로 앞에 나서기 시작했다. 오라클은 객체관계DB(Object Relational Database) 콘셉트를 제시하며, 새로 출시하게 될 Oracle8이 객체관계DB라고 널리 선전했다. 상황이 이렇게 전개되자 관계형 데이터베이스에 익숙한 사용자, 개발자, 전산실 관리자들은 객체지향DB에 대한 관심을 접어 버리기에 이른다.

오라클의 이러한 전략으로 사용자들의 관심은 빠르게 식어버렸다. 시장을 넓히려고 애써봐야 정작 대형 매출을 일으킬 수 있는 대형 정부 기관, 금융, 대기업 등에서도 줄줄이 퇴짜를 맞았다. 점차 객체지향DB 업체들의 자금은 고갈되고, 열정도 사라져 갔으며, 결국 잊혀져 버리고 말았다. 객체지향DB 기업들이 자립할 수 있는 여건을 갖추기도 전에 시장이 사그라들어 버린 것이다.

당대의 전문가들은 혼성형 ‘객체관계DBMS’가 기존 관계형DBMS 업계의 방향에 큰 영향을 끼치면서 객체지향DBMS 시장도 확대해 나갈 것으로 예측했다. ‘객체지향 데이터베이스 세계가 열린다’고 호언장담을 했지만 결국 객체지향DB의 세계는 오지도 못하고 시들어버렸다. 현재 객체지향DB는 특수한 전문분야가 아니면 잘 쓰이지 않는 실정이다. ‘객체관계DBMS’가 객체지향DBMS의 몰락을 앞당긴 셈이다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지