yoursyun

데이터베이스가 진화하고 있다 본문

database/mssql

데이터베이스가 진화하고 있다

yoursyun 2008. 11. 18. 10:31

과거에는 대부분 사람들이 데이터베이스에 관 심을 가지지 않은 것이 사실이었다. 하지만, 시대가 변하면서 많은 사람들이 데이터베이스에 관심을 가지게 되었고 다양한 곳에서는 데이터 베이스에 많은 시간을 투자하고 있는 것이 현실이다.

 

많은 기업에서 프로젝트를 수행하게 되면 여러 종류의 하드웨어와 소프트웨어가 도입된다. 그 중에서도 DBMS의 도입은 많은 프로젝트에서 필수 요소다. 시중에는 많은 DBMS 제품이 존재한다. 이처럼 많은 데이터베이스 중 과 연 무엇을 기준으로 DBMS를 선정해야 할까?

데이터베이스는 한 번 선정되면 추후 다른 제품으로 변경하기 어렵다. 그렇기 때문에 데이터베이스를 구축하기 위해 DBMS를 도입하는 경우에는 반드시 선정 기준이 존재해야 하며 이 기준에 따라 DBMS를 선택해야 한다. 또한, 중요한 것은 이러한 선정 기준이 매우 자세히 구분되어 있어야 한다는 것이다. 그렇다면 어떤 항목을 선정 기준으로 DBMS를 선택해야 할까?

가장 중심이 될 만한 기준은 가용성과 성능, 상호 호환성, 지원 및 구축비용 등이다. 하지만 여기서는 이러한 일반적인 DBMS 선정 기준을 언급하고자 하는 것이 아니다. 이와 같이 DBMS를 선정함에 있어 데이터베이스의 동향을 언급하고 싶은 것이다. 이러한 데이터베이스의 동향을 정확히 파악해야 비로소 올바른 DBMS를 선정하여 효과적으로 시스템을 구축할 수 있기 때문이다.

 

데이터베이스의 생명은 안정성

 

데이터베이스의 안정성은 데이터베이스의 동향은 아닐 것이다. 데이터베이스의 안정성이 지금에 와서 두각 된 것이 아니며 데이터베이스의 탄생과 함께 데이터베이스의 안정성은 가장 중요한 요소였다. 물론 지금도 데이터베이스 의 안정성은 매우 중요한 요소 중 하나임에 틀림없다. 물론, 앞으로도 데이터베이스 안정성은 가장 중요한 요소로 자리 잡고 있을 것이다.

데이터베이스의 안정성은 DBMS를 만드는 벤더의 역사와 무관하다고 말할 수는 없을 것이다. DBMS를 만들어온 역사가 데이터베이스의 안정성을 더 보장하는 것이 과거에는 맞았기 때문이다. 하지만, 지금에 와서는 기술이 급속도로 발전하고 있기 때문에 대부분의 DBMS는 사용자가 요구하는 수준의 안정성을 제공하게 된 것 같다. 이와 같은 안정성에는 가용성이라는 부분이 새로운 동향으로 계속 발전해 가고 있다.

시스템의 모든 항목에 대해서 제품을 선정해본 사람이라면 가용성에 대해 못 들어본 사람은 없을 것이다. 하지만 많은 프로젝트나 고객사와의 회의에서 느꼈던 것은 DBMS에 대한 가용성의 개념을 모르는 것 같았다.

한 고객사의 회의에서 있었던 일이다. 고객사에서 시스템이 모두 이중화되어 가용성에는 이상이 없는가에 대해 질문을 했다. 필자는 데이터에 대해서는 이중화가 되어 있지 않다고 말했다. 하지만, 참석자 중 한 명은 디스크가 미러(Mirror)로 되어 있으므로 이중화가 완벽하게 된 것이라고 했다. 과연 이러한 디스크미러(Mirror)만 구성되면 데이터베이스는 이중화가 완벽하게 구현된 것인가? 가용성은 이중화와 매우 밀접한 관계를 가진다. 이중화라는 것은 무엇인가? 모든 항목에 대해 두 개로 구성하는 것이 이중화다. 이와 같이 구성하는 이유는 한 개에 문제가 발생했을 경우 다른 하나로 서비스를 수행도록 하는데 있다. 이중화가 가용성의 근간이 되는 것은 당연한 얘기다. 이처럼 가용성은 이중화에 의해 구현 되며 데이터베이스도 이와 같이 안정성 중 가용성에 대한 많은 발전을 거듭하고 있다.

결국, 데이터베이스는 안정성을 뛰어넘어 이제는 가용성을 위한 여러 가지 방안을 만들어 내고 있다. 그 중심에 있는 것은 데이터의 가용성이다. 예전에는 모든 부분을 이중화해서 가용성에 문제가 없도록 구축할 수 있었지만 문제는 데이터의 이중화를 통 한 가용성을 구현하는 것이었다. 동일한 데이터를 이중화로 구현하는 것은 결코 쉬운 일이 아니다. 그렇다면 과연 무엇이 힘든 것일까? 끊임없이 변하는 데이터를 이중화 되어있는 데이터베이스에 실시간으로 적용해야 하기 때문에 어렵다. 이 부분은 결코 쉬운 일은 아닐 것이다. 계속 변하는 데이터를 감지하여 이중화되어 있는 데이터베이스에 해당 데이터를 정확히 적용해야 하기 때문에 발생하는 문제점은 크게 두 가지가 존재한다.

 

● 데이터 정합성의 위험
● 성능 저하 발생

 

DBMS 업체들은 이와 같은 부분을 연구하여 데이터 복제 솔루션 등을 통해 구현해 내고 있다. DBMS마다 구현 방법은 조금씩 다르더라도 추구하는 목표를 위해 동일한 기능을 제공하게 되었고 어느 DBMS가 더 탁월한 데이터 복제 솔루션을 가지고 있다고 이야기하기 힘들 정도로 안정화되어 가고 있는 것이 현실이다. 단지 DBMS 마다 다른 형태로 제공하기 때문에 이와 같은 데이터베이스 동향에 맞춰 어떻게 시스템을 구현하고 사용할 것인지가 중요한 문제가 되었다.

 

DBMS의 성패는 기술 지원

 

DBMS에 대한 기술 지원은 아주 간단한 문제일 수도 있지만 현실은 그다지 녹록치 않다.인력이 부족한 탓이다.

데이터베이스의 사용 범위와 데이터의 크기와 수는 기하급수적으로 증가하고 있으며 데이터베이스의 중요성 또한 높아지고있는 것이 현실이다. 반면에 이에 따른 각각의 회사에서 데이터베이스 전문가를 확보하는 것이 쉽지만은 않다. 그렇기 때문에 데이터베이스 벤더에 의존하는 경향이 높아지고 있다.

문제는 이와 같은 수요에 대부분의 데이터베이스 벤더들이 그에 걸 맞는 데이터베이스 전문가들을 지원해 주지 못한다는 데있다. 이런 경향은 특히 외산 벤더에서 더 짙게 나타난다. 해외의 전문가를 구하기도 어렵거니와 이 전문가에게 다시 해외에서 만들어진 기술문서와 다양한 노하우를 숙지시키는 게 그다지 쉽지않은 탓이다.

심지어 한 데이터베이스 벤더는 기술 지원이 발목을 잡은 탓에사업을 확장하지 못하는 경우도 있다. 그만큼 DBMS는 해당 DBMS를 정확히 이해하고 전문적인 기술을 가지고 있는 전문가를 확보하는 것이 중요하다. 그러기 위해서는 DBMS 제품 개발에만 열중하기 보다는 해당 제품을 최적으로 구현해 줄 수 있는 데이터베이스 전문가를 양성하는 것이 중요하다. 물론, 이와 같은 현상이 많은 곳에서 진행되고 있다.

그 수는 많지 않지만 국내 데이터베이스 벤더들의 경우 인력지원에 있어서 여러 가지 장점을 가지고 있다. 데이터베이스는 살아 움직이는 인간과도 같다.

계속 변하는 데이터와 증가하는 데이터를 최적으로 다룰 수 있는 데이터베이스전문가를 양성하기 위해 그리고 이와 같은 전문가를 통해 각각의 회사에 최적의 서비스를 제공하기 위해 노력하고 있다.

 

대용량 데이터 해결이 관건

 

시대가 변해 초 대용량의 데이터베이스가 탄생되고 있는 것이 현실이다. 지금은 1TB 정도의 데이터베이스를 보고 대용량 데이터베이스라고 부르는 사람은 거의 없다. 필자가 10년 전 데이터 베이스를 처음 접했을 때 1TB의 데이터베이스는 어느 누구나 대용량 데이터베이스라고 불렀었다. 하지만 어느덧 시간이 지나고 시대가 변함에 따라 1TB 정도의 데이터베이스를 대용량 데이터베이스라고 부르는 사람은 없어지고 지금은 50TB, 100TB쯤 되는 데이터베이스도 흔히 보게 됐다.

이와 같이 대용량 데이터베이스가 탄생한다는 것은 무엇을 의미하게 되는가? 50TB가 되는 대용량 데이터베이스가 탄생된다면 가장 큰 문제로 야기될 수 있는 것이 성능이다. 원하는 데이터 를 추출하기 위해 몇 시간이 소요된다면 업무를 구현할 수 있겠는가? 이와 같은 시스템이라면 업무를 효과적으로 구현하기 힘들 것이다.

따라서 대부분의 데이터베이스들은 대용량 데이터베이스를 위한 아키텍처를 제공하게 된다. 이와 같은 대용량 데이터베이스를 위한 아키텍처는 앞으로도 계속 개선되고 새로 소개될 것은 분명 하다. 데이터베이스들이 제공하는 병렬 프로세싱 아키텍처나 파티션 아키텍처들이 대용량 데이터베이스를 위한 아키텍처에 해당될 것이다. 현재 시스템을 구축하면서 이와 같은 아키텍처를 사용하지 않고 원하는 성능을 보장받기에는 너무나도 힘들어진 것이 사실이다.

대용량 데이터베이스를 위한 아키텍처는 지금에 와서는 모든DBMS에서 기본이 되었다. 그래서인지 DBMS들은 서로 앞 다투어 대용량 데이터베이스를 위한 새로운 아키텍처를 출시하고 있다.

 

점점 무거워지는 DBMS

 

DBMS를 설치하다 보면 많은 기능들이 기본적으로 설치되는것을 보았을 것이다. 예전에는 데이터베이스 엔진만 설치하면 되었지만 지금은 DBMS 안에 자바도 설치되는 경우가 존재하며 무거운 모니터링 툴도 설치되는 것을 흔하게 볼 수 있다.

아마도 이것은 DBMS를 만드는 벤더의 전략일 수도 있고 또는 기술 구현상 어쩔 수 없는 부분일 수도 있을 것이다. 하지만,중요한 것은 정확히 인지하지 않고 DBMS를 설치하여 사용하는 경우 우리가 원하지 않는 다른 요소들에 의해 데이터베이스 자체 가 무거워질 수 있다는 사실이다.

거워

한 사이트에 지원을 나갔을 때의 일이다. 해당 사이트에 설치되어 있는 데이터베이스를 보는 순간 놀라지 않을 수 없었다. 해당 업무에서 사용하지 않는 기능이 10개 가까이 인스톨 되어 있었기 때문이다. 천만다행으로 이 기능들이 별다른 문제를 발생시키고 있지는 않았지만 이는 언제 터질지 모르는 시한폭탄을 DBMS에 설치해두고 사용하는 것과 다를 바 없는 일이었다.

그럼 이 사이트는 왜 필요 없는 기능들을 이렇게 많이 설치해 놓은 것일까? 아마 데이터베이스가 변해가는 방향을 인지하지 못하고 단순하게 DBMS를 설치해 놓고 필요한 기본 기능만 사용하고 있었기 때문 일 것이다.

점점 무지고 있는 모든 DBMS에 대해 우리는 필요한 기능만을 설치하여 최적으로 사용하는 것이 데이터베이스가 나가는 방향에서 우리가 선택할 수 있는 최선의 방법일 것이다.

 

기능이 확대되어 가는 DBMS

 

과거에는 DBMS에서 제공하는 기능들이 그다지 많지 않았다. 이는 다시 말해 예전에는 관리하기가 훨씬 수월했다는 의미도 된다. 제공되는 기능이 제한적이었기 때문에 수행할 수 있는 작업도 매우 제한적이었다. 하지만, 지금은 모든 DBMS가 수없이 많은 기능을 제공하게 되었다. 특히, 국산 DBMS의 경우에는 요구 사항에 대해 매우 신속히 대처하기 때문에 관리에 필요한 많은 기능들이 추가되었다.

DBMS의 기능 확대는 양날의 검과 같아서 장점과 함께 여러 가지 문제점도 내포하고 있다.

DBMS의 기능이 많을 때의 장점은 데이터베이스 관리자가 할 수 있는 작업이 많아 졌다는 것이고 이를 통해 더욱 세밀하게 데이터베이스를 관리할 수 있게 되었다는 것이다. 또한, 많은 기능들이 온라인에서 가능하게 되므로 서비스 정지 시간을 최소화할 수 있게 되었다. 반면에 너무 많은 기능이 추가된 탓에 끊임없이 늘어나는 기능들에 대해 지속적인 숙지가 필요하다는 것이다. 기능이 추가되더라도 DBMS를 사용하는 관리자가 인지하지 못한다면 사용할 수 없을 것이다.

데이터베이스는 계속 변하고 있다. 이와 같은 변화는 시대의 요구 사항이기도 하다.

고객의 변화에 더욱 신속한 것은 국내 데이터베이스 업계이며 외산 DBMS는 이와 같은 국내 요구에 대해서 신속하지 못한편 이다. 이와 같은 데이터베이스의 변화가 우리에게 시사해 주는 것은 무엇일까? 데이터는 해당 기업의 중요한 요소임을 이제는 대부분이 인지하고 있다. 이와 같은 데이터는 DBMS에 의해 관리되며 데이터베이스가 변하고 있다면 데이터베이스를 관리하는 사람도 변해야 한다는 것이다. 데이터베이스가 변하는 것은 중요한 것이 아니다. 변하는 데이터베이스를 우리가 정확히 인지할 수 있을 정도의 전문가를 양성해야 한다는 것이다.

이것만이 변하는 데이터베이스에 대해 우리가 최선으로 대처 할 수 있는 방법일 것이다.

 

 

필자소개

 

권 순 용 kwontra@hanmail.net

DBA로시작하여 SQL 튜닝, 데이터베이스 아키텍처 및 모델링 업 무를 주로 수행했다. 최근 DB 컨설팅 사업을 시작했다. 데이터베이 스 교육에도 많은 관심을 가지고 있으며 저서로는『Perfect! 오라클 실전 튜닝』,『 초보자를 위한 오라클 10g』및『INSIDE SQL』이 있 다. 또한, 데이터 액세스 최적화에 대한 특허를 출원했다.

반응형