비투엔 기술기고

리버스 데이터 모델링 _ BIS본부 1팀 윤경익 수석

알 수 없는 사용자 2015. 6. 18. 11:32




리버스 데이터 모델링이란, 간단히 말하면 데이터 모델링의 순서와 역방향으로 데이터 베이스의 테이블, 칼럼 등의 정보를 가지고 현재 시스템의 데이터 모델을 만드는 것을 말합니다.


차세대나 고도화 프로젝트를 진행하게 되면 먼저 현재 시스템의 데이터 모델이 필요합니다. 확실히 예전에 비해서는 데이터 모델을 보유하고 있는 경우가 많기는 하지만 여전히 데이터 모델을 가지고 있지 않거나 가지고 있더라도 지난 차세대에서 만든(몇 년간 현행화되지 않은) 데이터 모델이 전부인 경우도 많습니다. 이런 이유로 오늘도 우리는 리버스 데이터 모델링을 필요로 합니다.


이번 글에서는 데이터 모델링에 익숙하지 않은 초보자들이 리버스 데이터 모델링을 진행하기 전에 알았으면 또는 준비했으면 하는 몇 가지에 대해 이야기 하려고 합니다.


1. 업무에 대한 이해

가끔 주변에서 업무를 몰라도 데이터 모델링을 할 수 있는지를 묻곤 합니다제 생각은 "업무를 몰라도 데이터 모델링을 시작할 수 있다 단데이터 모델링을 끝냈을 때는 업무를 알고 있어야 한다" 입니다데이터 모델이라는 것은 현실 세계의 비즈니스(업무)를 형상화(모델링)한 결과입니다. 업무에 대한 이해가 없다면 자기가 형상화하려는 것이 무엇인지를 모른다는 것이고 당연히 제대로 된 데이터 모델을 만들 수 없습니다.

 

리버스 데이터 모델링도 마찬가지입니다현재의 테이블, 칼럼 업무 규칙에 따라 이러이러하게 구성되어 있다라고 해석하는 작업입니다. 업무에 대한 이해도가 리버스 데이터 모델의 품질을 좌우한다고 보아도 큰 무리가 없을 것입니다. 업무 이해가 없다면 단순히 테이블, 칼럼의 한글 명을 찾고 부모로 보이는 몇 개의 테이블을 찾아 관계선을 긋는 정도만 할 수 있을 것입니다.

 

그렇다면, 업무에 대한 이해도를 높이려면 어떻게 해야 할까요? 여기에는 특별한 방법이 없습니다. 업무를 알기 위한 관심과 노력이 답입니다. 한 가지 말씀 드리고 싶은 것은 하루 종일 데이터 모델만 쳐다 봐서는 업무를 이해할 수 없다는 것입니다.(오랜 시간 쳐다보면 득도하는 경우도 있겠지만, 프로젝트에서는 그렇게 긴 시간이 주어지지 않습니다


데이터 모델 이외에 다양한 문서, 시스템(화면) 그리고 "사람"을 통해 현실 세계를 이해하고 데이터 모델에 반영된 결과를 확인해야 합니다.

 

 

2. 내 머리 속의 데이터 모델

업무를 이해한다고 해도 리버스의 대상이 되는 테이블이 자동으로 정리되는 것은 아닙니다. 결국 우리는 테이블이 어디에 사용되는 것인지를 조사하고 추적하여 현행 데이터 구조를 완성해야 합니다.

 

지금 책상 위에 1,000개의 조각을 가진 직소 퍼즐이 있다고 가정해보겠습니다. 퍼즐을 쉽게 맞추려면 어떻게 해야 할까요? 잘 아시겠지만 테두리에 속하는 조각부터 맞춰 나갈 것입니다. 완성된 퍼즐의 그림이 배경 사진이던 사람이건 동물이건 상관없이 사각의 테두리 자체는 동일합니다. 사각의 테두리를 맞추고 나면 (박스에 그려진) 완성 그림의 모양을 보고 사각의 테두리에서 점점 안쪽으로 맞춰 가면서 퍼즐을 완성합니다.

 

리버스 데이터 모델링도 퍼즐을 맞추는 것과 비슷합니다. 그렇다면 리버스 모델링에서 퍼즐의 테두리 역할을 하는 것은 무엇일까요? 저는 그것을 모델러 각자가 보유하고 있는(또는 생각하고 있는) 일반화된 데이터 모델 또는 데이터 구조라고 생각합니다.

 

대부분의 기업은 관리하는 대상과 수행하는 행위에 대하여 비슷한 모습을 가지고 있기 때문에 데이터 모델도 상위 개념 수준에서는 일반화된 유사한 모습을 만들 수 있습니다. 그리고, 어느 정도 경험이 있는 데이터 모델러의 머리 속에는 (본인이 의식하던 의식하지 않던) 이런 데이터 구조가 자리 잡고 있습니다. 그렇기 때문에 수천 개의 테이블 중에서 내가 지금 봐야 하는 테이블이 무엇인지를 식별하고, 전체 데이터 구조 상 어디에 위치시켜야 하는지를 구별해내는 것입니다. 좀 더 익숙해 진다면 전체 그림에서 어떤 퍼즐 조각(테이블)이 빠져있는지를 알 수 있는 수준이 됩니다.

 

데이터 모델링에 입문하는 시기에는 아직 일반화된 데이터 구조가 머리 속에 자리 잡지 못했기 때문에, 리버스 데이터 모델링이 쉽지 않습니다. 일반화된 데이터 모델과 관련하여 자세한 내용을 알고 싶으신 분들은 널리 알려진 모델링 저서 중 하나인 Data Modeling Essentials Generic Data Model 부분을 참고하시기 바랍니다.

 

한 가지 오해하지 말아야 할 것은 일반화된 데이터 모델은 완성된 데이터 모델 결과물이 아니라는 것입니다. 어느 상황에서나 그대로 사용할 수 있는 데이터 모델이란 존재하지 않습니다. 오히려 일반화된 데이터 모델은 생각하는 방법에 가깝습니다. 그리고, 생각하는 방법이기 때문에 업종, 기업, 시스템, 시대의 흐름, 다양한 요구 사항에 맞추어 적용하고 계속 발전해 나갈 수 있는 것입니다.

 

 

3. 상황에 맞는 분석 방법의 선택 (선택과 집중)

경제 상황이 안 좋아지면서 많은 IT 프로젝트가 재정적인 압박에 시달리고 있습니다. 이렇게 되면 당연히 예전보다 더 적은 인력으로 프로젝트를 수행할 것을 강요 받게 됩니다. 다시 말해 리버스 데이터 모델링에 투입될 수 있는 인력은 줄고, 한 명이 분석해야 할 양이 더 많아지는 것을 의미합니다

 

우리는 초인 같은 체력도, 천재적인 지능도 가지고 있지 않기 때문에 아무리 노력한다 해도 우리가 분석할 수 있는 테이블의 수에는 한계가 있을 수 밖에 없습니다. 주어진 테이블 천 개를 모두 볼 수 있다면 좋겠지만 200개를 볼 수 있는 시간 밖에 없다면 중요한 200개를 고르거나, 200개 이상을 보기 위해 더 적절한 접근 방법을 택해야 합니다.

 

예를 들면상품 같은 영역은 데이터 구조와 더불어 관리 화면을 보는 것이 분석에 도움이 됩니다. 상품 테이블 들은 다른 영역에 비해 상대적으로 더 일반화되어 있는 경우가 많아 테이블 구조 만으로는 정확한 내용을 알기가 어렵습니다. 이런 경우 상품 관리 화면을 통해 관리하는 데이터의 값이나 업무 규칙 등을 파악하는 것이 데이터 모델 분석에 많은 도움이 됩니다

 

반대로, 청구나 정산 같은 작업의 경우 유사한 구조의 다량의 테이블을 가지는 경우가 많고, 계산 대상, 과정, 결과 테이블을 구분하기 어려운 경우가 많습니다. 이런 경우에는 차라리 배치 프로그램의 소스를 분석하는 것이 더 명확하게 테이블의 용도를 파악하는 방법이 될 수 있습니다. 물론, 리버스를 진행하는 목적에 따라 다량의 계산 과정 테이블에 대해서 어느 정도 수준으로 분석할지를 결정하는 것도 필요합니다. 굳이 To-Be시스템에서 계산 방식이 변경되어 분석할 필요가 없는 경우라면 계산 과정에 필요한 중간 테이블은 과감하게 분석 대상에서 제외할 필요도 있습니다.

 

 

4. 적절한 도구

리버스 데이터 모델링은 대부분 데이터 모델이 없는 상황에서 시작하며, 전체적으로는 아래와 같은 과정을 거치게 됩니다.

 ① 데이터베이스의 테이블, 칼럼 기준으로 ERD 생성

 ② 업무의 이해 및 테이블, 칼럼의 내용을 분석하고 릴레이션쉽 정의

 ③ 분석한 내용을 ERD에 반영

 

이 중에서 은 단순하지만 반복적으로 수행해야 하는 양이 많고, 정확도를 필요로 하는 작업입니다. 예를 들면 1,000개의 테이블에 칼럼이 20개씩만 있어도 2만 개의 칼럼에 대해 정의를 입력해야 하는 작업이 필요합니다. 칼럼의 한글 명의 일관성을 위해 수 백, 수 천 개의 칼럼을 수정하기 시작한다면 단순 입력/수정 작업으로 지쳐버릴 것입니다. (주니어 시절에 저의 무지함으로 실제로 이렇게 작업을 하기도 했습니다)

 

이런 작업들은 ERD 도구의 벤더에서 도구를 제공하기도 하고, 공개된 API를 통해 접근이 가능하기도 합니다. 모델링을 시작하기 전에 반드시 해당 작업을 도와줄 도구를 준비하시기 바랍니다.

 

그리고, 도구에 하나 더 덧붙이자면, 큰 모니터를 준비하시기 바랍니다. 목수가 연장 탓을 하는 것 같기는 하지만, 생산성에 확실히 도움이 됩니다. 작은 화면에서 요리 조리 옮겨가면 테이블을 찾고 배치하다 보면 생산성도 떨어지고 요즘 같이 더운 날에는 다 때려 치고 싶어질 때도 있습니다. 손바닥 만한 책상에서 천 조각 짜리 퍼즐을 맞출 수는 없는 노릇입니다.

 

 

5. 리뷰 & 리뷰

요즘 웬만한 시스템은 적어도 수 천 개, 때로는 수 만개의 테이블을 가지는 경우가 대부분입니다당연히 리버스 모델링도 혼자서는 할 수 없고 여럿이 팀을 이루어 할 수 밖에 없습니다. 영역 별로 각자 자기가 맡은 부분을 분석하다 보면 다른 팀원이 분석한 내용을 알아야 할 수도 있고, 때로는 서로 분석한 내용을 맞추어야 하는 경우도 있습니다


예를 들면, 계약과 상품을 모르고 요금계산과 청구를 할 수는 없습니다. 그렇다고 빌링 담당자가 고객/상품 영역의 내용까지 모두 분석하는 것은 효율도 떨어지고 서로 이해하는 것이 달라 전체적인 모습이 이상하게 해석될 수도 있습니다주기적으로 모델러 간에 분석한 내용을 공유하고, 컨센서스를 맞춰가는 것에 시간을 투자하는 것이 필요합니다.

 

또한, 분석한 내용은 반드시 고객사의 담당자와 리뷰를 해야 합니다. 리뷰는 리버스 데이터 모델이 완료되고 나서는 너무 늦습니다. 리버스를 시작하고 나면 1~2주 이내에 분석한 주요 개념에 대해 확인이 필요합니다. 초반에는 특히 내가(또는 우리가) 이해한 주요 개념이 맞는지에 대한 확인이 필요합니다. 예를 들면 분석한 고객의 관리 레벨과 범위가 맞는지, 상품과 서비스의 정의가 맞는지 등을 확인 해야 합니다. 이런 부분에 대해 잘못 이해한 채로 리버스를 계속 진행하다가 잘못된 것을 너무 늦게 알고, 다시 앞으로 돌아오는 경우를 종종 보게 됩니다

 

초반에 하는 리뷰가 또 중요한 한가지 이유는 초반에는 업무에 대해 어느 정도 이해도가 떨어져도 고객이 관용(?)을 베풀지만 중반을 넘어가면 왜 여태 이런 것도 모르냐는 핀잔을 받게 됩니다. 초반에만 당당하게 물어보고 확인할 수 있는 것들이 있으니 이 시기를 놓치지 않도록 각별히 신경 쓰시기 바랍니다.

 

많은 IT 종사자들이 사람을 대하고, 서로가 분석한 또는 작업한 내용을 공유하는 것을 부담스러워 합니다. 그러나여러분이 모델러로 살아가는 동안은 리뷰를 피해갈 수 없습니다. 리뷰를 다른 사람의 생각과 업무 지식을 배울 수 있는 좋은 기회로 생각하시고 즐기시기 바랍니다. 



이상으로 리버스 데이터 모델링에 필요한 5가지 요소를 살펴보았습니다.


어떤 것은 당장이라도 준비할 수 있고 (당장 쇼핑몰에 들어가 큰 모니터를 산다거나), 어떤 것은 준비에 몇 년의 기간이 필요한 것도 있습니다모델러가 되시려는 분들과 주니어 분들은 부디 기회가 올 때 놓치지 않고 잘 할 수 있도록 평소에 많은 준비를 하시기 바랍니다.


그리고 글을 읽으신 분들은 아시겠지만, 리버스 데이터 모델을 잘 할 수 있는 준비는 데이터 모델링을 잘 할 수 있는 준비와 크게 다르지 않습니다. 부디 이 글이 데이터 모델링을 공부하시는데 조금이나마 도움이 되기를 바랍니다.