DATOR


실전 모델링 카테고리 실전모델링


주제영역별로 한두명의 담당자가 모델링을 진행하는 데이터 모델링의 특성상, 설계한 모델을 다른 모델러에게 상세히 설명하고 오류나 개선점에 대한 의견을 듣는 것은 실제 프로젝트에서는 실천하기 매우 힘들며, 그 결과로 보다 나은 데이터 모델을 설계할 기회를 놓치게 되는 안타까운 상황이 발생한다.  이런 상황을 줄일 수 있는 방법은 프로젝트 초기부터 모델러들이 느끼는 의문에 대하여 서로 의견을 나누려고 하는 노력 뿐인데, 그러기 위해서는 자신의 모델에 대해 다시 한번 의심을 해보는 과정이 필요하다. 다음은 여러 프로젝트를 경험하면서 느낀 모델러들이 의심해볼 만한 내용들을 분류한 것이다.


1. 모델링 이론에 대한 오해

'데이터모델링' 또는 '데이터베이스 설계'라는 단어가 포함된 서적 중 모델링 이론을 충실하게 설명한 서적들이 있다. 집합과 관련된 수학적인 기호가 많이 사용되고 제4, 제5정규형도 설명하는 서적들인데 일반 기업의 모델러가 그 내용을 모두 이해하기는 거의 불가능에 가까운 내용들일 것이다. 이런 서적들은 공식으로된 데이터 모델링 이론을 제시하여 꼭 그것을 따라야 하는 것처럼 느끼게 한다. 그러나 실제 그 공식들은 집합과 원소 등에 대해 수학적으로 규명된 명제일 뿐 실전에의 적용은 모델러가 선택적으로 설계하면 되는 것들이다. 예를 들어 집전화번호와 핸드폰번호를 2개의 다른 원소로 정의할지 전화번호 또는 연락처와 같이 통합된 집합으로 정의할지는 모델러가 선택하는 것이다. 선택할 수 있는 사항을 공식에 의하여 이미 결론이 정해진 것처럼 모델링을 진행하지 않도록 공유할 필요성이 있다. 실전 모델링 경험이 많은 저자들이 집필한 서적에서는 원하는 물리 구조에 맞추어 ERD를 작성하려는 경향을 보일 때가 있다. 이런 시도가 ERD의 기본적인 요건을 저해하지 않는다면 괜찮겠지만, 그럴 가능성이 큰 오해라면 바로잡아야 할 것이다.


2. 과도하게 일반화된 모델을 추구

Silverston의 Resource Book Vol3의 일부 모델링 패턴은 저자도 인정했듯이 실전에 적용할 때 과도하게 일반화되어 일반 개발자가 이해하고 어플리케이션을 작성하기에는 너무 어렵다. 이런 패턴은 대부분 특별한 업무 요건을 적용해야 하는 경우에나 필요한 경우가 많으므로 모델러는 철저한 분석을 통해 어려운 패턴을 적용할 것인가를 고민해야 한다. 특히 발생가능성이 적은 추가 업무 요건을 위해 복잡한 패턴을 적용하지는 말아야 할 것이다. 실전에서는 정규화, 메타화, 선분이력 적용 등에서 과도한 모델링을 가끔 보게 된다.


3. 프로젝트 환경을 고려하지 않은 모델링 방법론

현행 데이터 모델의 존재, 고객(현업 및 SM)의 협조 가능 상황, 프로젝트 일정, 투입 자원, 현행 자료, 모델링 툴 등 다양한 요인이 데이터 모델링의 품질에 영향을 줄 것이다. 따라서, 모델링 서적에 있는 몇 가지의 절차를 과신하여 모델링을 진행해서는 대부분 이슈가 발생할 것이다. 모델러는 프로젝트 준비 기간에 위와 같은 다양한 요인들을 파악하여 적합한 모델링 방법론을 도출하여야 하며, 일단 결정된 방법론도 상황이나 대상 업무에 따라 변경할 수 있음도 인식하고 있어야 한다.


4. 모델링 단계는 다 거쳤으나 무엇인가 아쉬움이 느껴지는 모델

모델링의 각 절차를 이론에 적합하게 다 수행했다 하더라도 가끔은 더 나은 구조가 있지 않을까 하는 느낌을 가져본 경험이 있을 것이다. 잘못된 부분은 없어 보이지만 업무의 난이도에 비해서 상대적으로 더 복잡한 데이터 구조를 만든 것 같거나 향후 유지보수가 쉽지 않을 것 같은 느낌을 말한다.  개인적으로는 모델러 들에게 이런 느낌을 가지는 것이 매우 중요하다고 생각한다. 절차를 따라 기계적으로 수행한 모델링 결과는 60점을 맞을 수는 있더라도 좋은 모델을 만들려는 의지를 가진 모델러라면 다시 한번 전체적으로 모델을 돌아보고 검토하는 것이 바람직할 것이다.

이 단계에서 어려운 점은 아쉬움이 느껴지는 모델을 다시 둘러 보아도 무엇을 수정해야 하는지 막막한 느낌이 드는 상황인데, 기본적으로는 위 1,2번에 적어 놓은 포인트를 검토해 볼 필요가 있으며 그래도 아쉬움이 느껴진다면 무엇이 복잡하게 느껴지는가를 전체적으로 바라볼 필요가 있다. 여러 번 이런 상황에서 반나절 정도를 이것저것 고민해서 보다 나은 결과를 도출하곤 했었는데, 그 대부분이 지금까지 잘 보이지 않았던 논리적 개체를 도출하여 엔터티로 구체화하여 해결한 경험이 있다. 


실전 모델링 카테고리에서는 위와 같은 내용들을 다른 모델러들과 공유 함으로써 서로의 생각을 맞추어 갈 수 있기를 기대해 본다.


TAG

Leave Comments