DATOR


차세대 데이터 모델링 툴의 지향점. . . (주)엔코아 정철원 수석 연구원 커버 스토리


coverstory.jpg
 
세상은 끊임없이 변화하고 있고 비즈니스의 요건 또한 다양하게 변화되고 있다. 데이터는 비즈니스의 시작(입력)과 끝(출력)이며, 출력은 다음 비즈니스의 입력이 되곤 한다. GIGO(Garbage In garbage out)는 데이터의 중요성을 대변하는 명쾌한 말이다.

최근 데이터 품질과 통합에 대한 기업들의 관심이 높아지면서 이를 기본적으로 뒷받침 할 수 있는 데이터 모델링이 각광을 받고 있다. 데이터 모델이란 현실 세계의 모든 정보를 단순화, 구조화, 체계화를 통해서 일정한 표기법으로 표현하는 것이다. 데이터 모델링은 이러한 일련의 모든 과정을 일컫는다.

지금까지 데이터 모델링은 RDBMS 전용 설계용 툴이었다. 그러나 최근에는 NoSQL, NewSQL 등이 대두되면서 다양한 구조의 설계가 필요해질 것이다.

필자는 현재 데이터 모델링 툴의 개발을 담당하고 있는 개발자 입장에서 모델링 툴의 기본 기능을 제외하고 보편적으로 잘 다루지 않는 기능에 대한 이야기를 해보고자 한다. 

모델의 시각화
모델링 과정은 커뮤니케이션의 연속이다. 담당자와 협상하고 협의하면서 구체적인 모습을 만들어 나간다. 협의한 사항을 모델에 반영하고 반영된 모델을 토대로 다시 협의하는 과정을 반복하면서 원하는 시스템의 모습을 만들어 간다. 컨설턴트와 현업이 아무리 똑똑하고 능력이 있다 하여도 모델을 이해하고 바라보는 수준이 다르면 무용지물이다. 그렇다면 어떻게 해야 현업의 모델 이해도를 높일 수 있을까?
모델을 구조화하자. 대부분의 모델링 툴이 물리 관점에서만 조망하는 경우가 많다. 엔터티를 수퍼타입과 서브타입으로 집합을 나누고, 속성에 대해 구조화를 통해 속성간의 연계성도 같이 볼 수 있도록 하자.
모델에 업무 규칙을 표현하자. 업무 규칙을 표현하면 모델에 대한 이해도를 높일 수 있을 것이다.
모델을 다양한 관점에서 조망하자. 모델은 주제영역으로 나뉘어져 있고 주제영역별로 관리되고 있다. 주제영역뿐 아니라 다양한 관점을 정의해서 사용자가 원하는 모습으로 볼 수 있도록 하자.
컬럼 인스턴스값을 입력하여 모델을 검증하고 시뮬레이션 해보자. 실제 생성될 수 있는 인스턴스값을 입력하여 모델을 검토할 수 있도록 체계를 만들어 보자. 또는 모델에 인스턴스값을 수집할 수 있도록 하는 체계를 만들어 관리하도록 하자.

모델의 생명 주기 관리(Data model life cycle management)
데이터 모델의 생성에서 변경/삭제의 모든 과정을 관리하고 운영하자. 
최근 대부분의 금융권이나 대기업들은 데이터 아키텍처를 구축하거나 IT거버넌스 체계를 운영하여 관리하고 있다. 그러나 중소/중견 기업은 모델에 대한 관리가 부족한 것이 현실이다. 아래 상황에 맞게 모델을 현행화해서 관리하도록 하자.
모델이 존재하지 않거나 현행화 하지 않아 실제 시스템과의 괴리감이 큰 경우라면 역공학(Reverse engineering)을 통해 모델을 작성해보자. 그 다음은 모델에 대해 표준화 하고 시각화 하자. 모델이 존재하나 부분적인 gap이 존재하고 있다면 gap(모델과 DBMS의 Gap)를 분석해서 Gap를 반영하도록 하자. 모델에 반영하거나 DBMS에 반영하기 위한 DDL문을 얻을 수 있다.
순공학과 역공학을 혼합하여 구성하는 것을 순환공학(Round trip engineering)이라 한다. 모델에서의 변경이 DBMS에 반영되고 DBMS의 변경을 모델에 동기화하는 방식으로 순공학/역공학/Gap비교반영을 포괄하는 개념이다. 그러나 Application 영향도를 파악해서 적용해야 하는 문제점을 가지고 있다.
이렇듯 모델링은 다양한 상황에 맞게 잘 운영되어야 하고 해당 사업을 종료 할 때까지 유지 관리되어야 한다. 그리고 어떻게 하면 더 쉽게 사용하고 자동화 할 수 있을까 고민해야 할 것이다.

다양한 데이터 구조 설계
RDBMS는 데이터 무결성과 SQL이라는 언어의 편의성 때문에 그 동안 데이터를 저장하는데 최적의 방법이었다. 그러다가 Social, Mobile, BigData등이 대두되면서 비정형 데이터을 보다 쉽게 처리할 수 있는 대안으로 NoSQL이 등장하게 되었다. 이외에도 공간(Spatial) DBMS와 SQL에 비정형 데이터를 다를 수 있는 형태인 NewSQL를 지원할 수 영역으로 확장해야 하는 숙제를 안고 있다.
NoSQL의 특징은 네트워크 기반의 분산환경을 기본으로 확장성, 가용성, 높은 성능과 스키마의 정의가 자유롭다는 장점이 있다.
Spatial(공간) DBMS는 시공간 데이터에 대한 궤도 추적이나 예측 등에 사용되며 다양한 형태의 타입과 유형을 지원하도록 특화된 DBMS이다.
NewSQL은 기존의 SQL방식과 NoSQL의 장점을 모두 수용할 수 있는 형태의 DBMS로 NoSQL과는 다른 영역으로 발전할 것으로 보인다.

다중 DBMS지원
단일 논리모델을 가지고 다양한 DBMS를 지원할 수 있는 체계를 마련해야 할 것이다.
일반적인 상황에서는 하나의 논리 모델에 하나의 물리 모델이 작성되는 경우가 대부분이다. 그러나 아주 일부라 할지라도 논리 모델을 이용해서 복수개의 물리 모델을 작성하는 경우가 있어 제공되어야 할 기능으로 보여진다. 실제로도 종종 그런 경우를 봐왔다.
일부 프로젝트의 경우 작성 중인 계정계 모델을 가지고 정보계 모델을 만든 후 수동으로 계정계와 정보계를 동기화 하는 것을 봤다. 얼마나 비 효율적인가 하나의 모델을 가지고 양쪽 모두를 충족시킬 수 있는 모델을 만들다면 작업자의 고충을 줄일 수 있을 것이다.

모델의 상속(마스터 모델과 서브 모델)
모델에 상속개념을 도입하여 공통되는 영역과 개별적인 영역을 분리하여 모델링을 진행하는 것은 어떨까? 기본 모델은 동일하지만 각 시스템마다의 고유하게 관리되어야 하는 부분이 있다면 그 부분은 상속 받은 하위 모델에 작성하는 것이다.

정보 보안
개인정보 유출 사고가 빈번하고 이에 대응하여 개인정보 보호법이 시행에 따라 데이터모델에서도 이를 반영하여 관리하여야 한다. 데이터베이스에 대한 보안은 입출력 경로나 접근제어 및 감사에 대한 보안과 데이터 자체를 암호화 하는 방식으로 분류된다. 그 동안 접근 경로에 대한 차단이었다면 근래에 들어 데이터 암호화가 더 중요하게 되었다. 데이터 암호화 대상을 선정하고 부가적인 정보들을 데이터 모델에서 관리해야 할 필요가 있다.

Tag :

Leave Comments