이춘식 컬럼

이춘식pe

'데이터모델 리팩토링(Datamodel Refactoring)으로 DB 구조적문제를 해결하십시오.

작성자 : 이춘식pe 작성일 : 2016.11.10 04:17:31 댓글수 : 0 조회수 : 4,235

건축물의 설계도를 전기전문가나 미장전문가에게 맡길 수 있을까요?


전기전문가가 설계하여 지은 건축물을 돈주고 살 고객이 있을까요? 
이분들은 전기의 전문가인데 왜 건축 전체 설계도를 만들었느냐? 말도 안된다고 할겁니다. 
무슨 신뢰로 그 건축 설계도를 구입하겠냐고 할겁니다.

그런데, IT에서는 그것을 당연히 여기고 받아들이는 관행이 있다면 어떻시겠습니까?
눈에 보이지 않는다고 하여, 가장 중요한 데이터베이스 설계도인 데이터모델(설데도)을 많은 경험이
없는 사람이 그냥 하는 경우가 많이 있습니다. 분명히 다른 영역에 전문성이 충분하여 견고한 설계를 
할 수 없는데도 별 고려없이 그렇게 하는 경우가 많이 있습니다.

데이터모델링은 시스템의 가장 핵심이며, 한번 만들어지면 지속적으로 유지되고 개발도 이것을
중심으로 수행되는 가장 중요한 산출물입니다. 경험과 Insight가 가장 필요한 영역입니다. 
적어도 시스템을 개발할 때 전문성이 있는 데이터설계자가 있어야 하는 것은 지금까지의 경험에 
비추어 볼때 너무나 중요한 사실입니다.

그런데, 많은 프로젝트에서 그것을 간과합니다.
그리고 개발자에게 너무 많은 짐을 지게 합니다
잘못되면 그것을 개발자에게 책임을 가지게 하는데요,, '잘못'되었습니다.

IT의 핵심설계도인 데이터모델은 전문성을 가진 전문가를 통해 수행되도록 해야 합니다.
비용때문에 모두 이것을 전문가를 통해 할 수 없다면 적어도 데이터모델을 가이드하고 검증하여 
고치는 일을 하여 설계도를 완성해 가는 역할(통합모델링)을 하는 사람은 전문가가 되어야 합니다.

그래야 제대로 된 설계도가 나오게 되고 안정적이고 경쟁력있는 시스템이 만들어지게 됩니다.


얼마전에 A사의 데이터모델링 개선 컨설팅을 수행했습니다.
데이터모델링 및 데이터베이스 성능개선 타스크가 모두 끝난이후에 결과를 발표하는 자리에
고객이 한 이야기가 저를 안타깝게 하였습니다.

'아니, 이번에 데이터모델링 및 성능개선 결과가 좋은건 알겠다... 그런데 그전에 
 프로젝트 시점에 그리고 운영(유지보수)시점에 또한 그 안에도 몇번의 개선, 프로젝트 등의 타스크
 가 수행되었는데, 그때는 왜 지금과 같은 개선이 안된겁니까?'
라고 하는 이야기를 하더군요....

 

길지 않은 기간동안에 데이터모델 구조와 흐름이 통합적으로 정의가 되고 전반적인 데이터베이스 
성능이 5배 이상이 개선이 된 결과를 보고 해당 기관의 고객이 한 이야기 입니다. 
상당히 난감한 질문이었습니다.

 

이전프로젝트 또는 유지보수를 잘못하다가 지금 이 타스크로 개선이 되었다라고 하면 이전의 프로젝트
와 사람들이 잘못해서 그랬다는 것이 되어 책임소재를 따질 것 같고, 프로젝트를 잘 수행했고 잘 관리
했다라고 하기에는 문제점이 너무 많았고 또한 개선이 되어서 그와같은 이야기를 할 수 없는 상태가 
되었습니다.

 

'저는 데이터모델 및 성능분야의 전문성이 있는 전문가가 활용되어야 합니다.'라고 이야기를 했습니다.
'데이터모델과 데이터베이스 전문가가 수행하지 않았기 때문에 문제가 나타난겁니다'
'IT시스템은 복잡하여 그 안에 많은 영역이 있고 많은 부분은 일반 개발자에 의존하여 데이터모델링을
수행하고 개발하여 운영하는 형태가 결과적으로 많은 돈을 소진하고 있습니다.' 라고 답변을 했습니다.

 

적절하지 못한 데이터베이스 구조(잘못된 데이터모델 구조), 성능이 저하된 데이터베이스 구조는 
업무처리가 적절하지 못해 추가적인 인력소진으로 인한 비용손실이 발생이되고 심지어 프로젝트를 다시
하는 사례도 빈번하게 발생이 되곤 합니다.

적절한 전문가활용이 비용손실을 막고 최적의 솔루션을 만들어내는 방법이 됩니다. 
특히 Core Technology를 가진 전문가를 잘 선정하여 적용하는 것이 프로젝트 성패에 중요한것임은 말할 
나이가 없습니다.

너무 급하게 다른 영역 전문성을 가진사람을 그냥 쉽게 데이터모델링을 해버리면 그에 대한 결과는
품질이슈는 고스란히 떠안아야 합니다.

 

저는 수 많은 프로젝트에 대해 시스템개발하는 데나 시스템운영하는 프로젝트나 운영하는 곳에서 진단
하고 개선하는 활동을 수행했습니다. 전문가의 손길이 있는곳과 그렇지 않은 곳의 차이는 실질적으로 
차이가 많이 납니다.

IT분야가 전문성의 분야로 인식되고 있는데요, 그리고 전문가로 인정받기를 원하고 있는데요,그런데 정작
그것을 수행하는 사람들 안에서 전문성에 기반하여 일을 수행하는 것을 무시하는 관행은 없는지 생각해 
볼 일입니다.

 

건축물의 설계도와 같은 IT시스템의 핵심 설계도인 데이터모델은 반드시 전문성에 기반하여 
수행되도록 해야 합니다.

만약, 이미 만들어진 설계도에 건축물이 올라가 문제가 많다면 그것을 재구조화 해야 하는데요, IT에
서도 그것을 하는 방법이 Datamodel Refactoring이라는 개념입니다. 잘못된 구조는 Datamodel Refactoring
을 해야 합니다.

 

Datamodel Refactoring 방법을 씨에스리컨설팅의 방법론(CSP) 6단계에 기반하여 설명하면....
  ① 테이블, Primary Key, Foreign Key, Index구조) 조정 재설계
  ② 정규화기술 적용(1차,2차, 3차, 보이스코드, 4차, 5차) 및 재설계
  ③ 반정규화기술 (테이블병합, 추가, 분할, 컬럼추가, 관계 추가등) 적용 및 재설계
  ④ 통합업무 흐름에 따른 통합데이터모델링 (통합 설계도 작성) 수행
  ⑤ 수축과 확산 Iteration(업무와 데이터모델과 흐름 검토 및 개선점 토의와 적용)
  ⑥ 테스트와 적용
을 수행해야 합니다. 

이렇게 하여 재구조화한 데이터모델을 만들고 가장 짧은 시간동안 적용할 수 있는 부분을 단기적으로 
적용하고 장기적인 개선점은 시간을 두고 개선을 하고, 구조적으로 당장 개선할 수 없는 부분은 그 다음
시스템을 개발 때 반영할 수 있도록 해야 합니다. 
지금은 이전에 많은 시스템이 데이터베이스 설계도를 가지고 있는 경우에 해당하는데요, 많은 문제를 
포함하고 있습니다. 이것을 개선하여 시스템을 재구조화하는 노력이 절대적으로 필요한 시기입니다.


씨에스리컨설팅

이춘식(csklee@cslee.co.kr)

첨부파일

  • 댓글을 입력 하시려면 로그인 해주세요.