최상운의 사선(死線)에서 (7회)
데이터 모델 요소: 주제영역
[필자 소개]
최상운은 2000년 중반부터 데이터 관련 직무를 수행하고 있다. 은행·보험·증권·신용카드사 프로젝트에서 데이터 아키텍트, 데이터 모델러, PMO(Project Management Officer)를 수행했고, ISP 컨설팅에 참여했다. 한국데이터산업진흥원(KDATA)에서 주최하는 ‘DA 설계 공모대전’에서 2018년에 대상을, 2016년에는 금상을 각각 수상했다. 복잡하고 어려운 모델이 아닌 ‘업무가 정확히 담겨 있고 모두가 이해할 수 있는 모델’을 만들기 위해 현장에서 땀 흘리고 있다.
현장에서 전하는 데이터 모델링 이야기
필자는 수년간 시스템 통합(SI) 프로젝트에서 데이터 아키텍터, 데이터 모델러, PMO, 컨설턴트로서 역할을 했다. 그때마다 ‘왜 저렇게 데이터 모델링을 하지? 어떻게 하면 사람들이 데이터 모델 이론을 쉽게 익히고 베스트는 아니지만 모델에 업무를 표현하고 관련자에게 공유할 수 있도록 도와줄 수 있을까?’를 놓고 고민했다.
정답은 아니지만 데이터 모델링 과정을 이해하고 각 과정에서 해야 할 것과 점검할 것을 자료 형태로 정리하면 도움이 될 것 같아 조금씩 정리하고 있었다. 어렵고 복잡한 데이터 모델 이론은 배제하고 개발자 입장에서 접근 가능한 데이터 모델 이론을 소개하고, 실제 베스트와 워스트 데이터 모델 사례를 소개함으로써 '제대로 된 상당한 수준의 모델'보다는 '업무가 정확히 담겨 있고 모두가 이해할 수 있는 모델'을 작성할 수 있도록 하고 싶다는 생각에 감히 도전하게 되었다.
필자는 SI 프로젝트 현장에서 데이터 모델러로서 생사가 갈리는 전쟁터, 그 사선(死線)을 넘나들고 있다. 어떻게 하면 이 사선을 넘어 목표 지점에 도달할 수 있을까? 이 차원에서 다소 무겁지만 현장에서 겪는 문제점들을 먼저 알아보고, 나름대로 대책도 제시해 보고자 한다. 대책이 정답은 아니더라도, 모든 것을 해결할 수는 없더라도, 새롭고 획기적인 방법은 아니더라도 모델 다운 데이터 모델을 만들기 위한 방법을 생각했고 그것을 나누고자 이 글을 시작한다.
주제영역은 데이터간 상호 관계가 높은 엔터티들을 모아 놓은 논리적 구분 단위다.
1000개의 엔터티가 있는 모델을 A3 용지 한 장에 다 표현할 수 있을까? 혹 가능하더라도 너무 작아서 잘 보이지 않거나, 엔터티 간 관계 표현이 복잡해서 가독성이 떨어질 것이다. 대신에 A3 용지 여러 장에 20~40개 정도로 엔터티를 그룹핑해 보면, 적당한 크기의 관계도를 읽기에 편할 만큼 표현할 수 있을 것이다.
이렇듯 전체 엔터티를 관리하기 쉽게 그룹핑해 놓은 것이 주제영역이다. 그럼 어떻게 엔터티를 그룹핑하면 좋을까? 엔터티명을 가나다 순으로 배치한 다음, 20개씩 그룹핑하면 될까? 물론 아니다. 데이터 성격이 유사한 엔터티끼리 그룹핑하는 것이 효과적이다. 다시 말하면
데이터 간 상호관계가 밀접하고 다른 주제영역과는 독립적인 엔터티를 그룹핑하는 것이 주제영역이다.
주제영역을 정의하는 가장 큰 목적은 데이터의 계층적 구조를 파악해 관리할 수 있기 때문이다. 수많은 데이터를 사전 정의된 기준에 따라 분류해 놓음으로써 데이터에 대한 접근성을 높이고, 신규 데이터 발생 시 분류와 관리를 용이하게 할 수 있다.
주제영역 정의
- 데이터 간 상호관계가 밀접하고 다른 주제영역과는 독립적인 엔터티를 그룹핑하는 것이 주제영역(Subject Area)이다.
- 주제영역은 데이터간 상호 관계가 높은 엔터티들을 모아 ....