DATOR


서브젝트 이력관리 사례 #1 데이터모델


 

데이터 모델을 하면서 아차 ~ 이것이 최선이 아니구나 !. 하고 뒤늦게 발견하는 경우가 있지 않은가?

기억을 되살려 실수(?) 하였던 사례들을 모으고 정리하는 것도 재미있어 보인다. 시간이 되는 대로 많이 많이 모아 볼까나.

데이터 모델링 프로젝트를 진행하면서 반드시 겪어야만 하는 과정 중에 데이터의 변경에 대한 이력관리를 어떻게 할 것인가를 고민하게 된다.

이력관리 테이블은 업무성격, 데이터 특성, 활용방법, 프로그래머의 숙련도 등 그때그때 마다 매번 서로 다른 이력형 테이블이 생겨나는 것 같다. 물론 알고 있음에도 불구하고 현장에서 적용할 때는 알고 있음을 바로 실천하기가 쉽지 않다. 

골프에서 드라이버 장타를 날리는 방법을 알고 있다고 해서 모두가 250M를 날릴 수는 없는 것 처 럼.

이번 글은 데이터 모델링을 하면서 이력관리 모델을 적용한 것 중 실수를 한 사례를 고백(?) 하고자 한다.

[ 그림 1 ] ASIS 상품명 관리

그림1 ASIS 상품명관리.jpg


 [그림 1] OO 쇼핑몰 ASIS에서 상품명의 이력관리을 하는 방식의 모델이다.

상품 마스터의 상품명은 변경되지 않는 고유의 상품명과 WEB에 노출될 때의 노출상품명, 상품에 적용되어 있는 프로모션명, 상품을 특정 페이지에 노출할 때 사용할 홍보문구명이 관리된다.  외부 노출이 목적인 3개의 명칭은 수시로 변경되어 지고, 프로모션의 경우 특정 시점에 적용되어야 하는 예약 기능도 포함하고 있다. 

시스템에서는 30 ~ 1시간 단위로 배치를 돌면서 [상품명변경] 테이블에 올라온 건수 중 처리 되지 않은 것 중에서 적용 시작일시에 해당되는 상품 명칭을 상품 마스터로 update 하고 있다. 또한 적용종료일시가 지난 것은 상품마스터의 명칭을 null update 한다.

즉 상품기본에서는 현재의 명칭만 보여주고 있다. 변경 테이블의 데이터는 현재 명칭을 변경시킨 사유와 등록자, 언제 변경시작과 종료가 발생할지를 나타내는 참조 정보일 뿐이다..

위와 같은 상황에서 TOBE 모델은 어떻게 개선 할 수 있을까?

O O O

O O

O

우선 이력관리 구조로 만들면 마스터의 명칭을 변경하는 배치 JOB은 없앨 수 있겠다는 생각이 우선 들어 온다.  마스터 속성의 이력관리는 어떻게 구성해야 할까?

 

먼저 이력관리 방법 3개를 생각해 본다.


[ 그림 2 ] 이력관리 3가지 방법

그림2 이력관리3가지 방법.jpg

ASIS 데이터를 살펴 보고 모델과 데이터 처리방식을 운영자로부터 듣는다. 미처 화면에서 어떻게 처리되는지를 살피지는 않았다.

위의 3가지 이력 방안 중에서 변경할 컬럼이 노출상품명, 프로모션명, 홍보문구명 이기 때문에 3개의 속성이 동시에 변경되어 질 수 있는 구조를 선택 하였다.

[ 그림 3 ] 최종 상품명 이력모델

그림3 최종모델.jpg  

 

그림 3과 같은 테이블을 설계 하였다. 처음 이 모델에서는 상품명을 마스터에서 이력테이블로 분리한다는 것에 대해 이슈가 있었다.

 

성능에는 문제가 없을까 ?

 è 큰 문제 없음.

데이터 관리시 불편하지 않을까 ?

 è 이력모형에 맞게 insert, update가 발생하기 때문에 조금 불편해짐

이력관리 데이터는 올바로 생성 될까 ?

 è 프로그램에서 잘 처리 하면 됨. 혹은 데이터 품질관리로 수시 모니터링

SQL이 복잡하거나 어려지는 것은 아닐까 ?

 è 조인처리 때문에 조금 복잡해 짐

배치 처리를 버리고 이력관리로 가는 것이 정말 정답일까 ?

 è 배치의 부담 없애고, 기존 데이터도 배치 오류건 처리 문제 있었음

 

이 모델에 대해 응용팀과 여러 차례 협의를 하였고 최종 결정 하였다.

응용팀 설계 및 개발자는 실력이 있었기 때문에 이력모델을 충분히 숙지하고 있었던 것이 이슈의 해결 방법 이였다.

사실 사이트 마다 이력구조를 쉽게 적용하거나 포기 하는 경우가 많은데 이는 개발팀이 얼마나 숙련된 경험을 갖고 있는가에 따라 결정 되는 것 같다.

O O O O O

그런데 시스템 오픈을 위한 최종 테스트 때 위 이력 모델의 치명적인 단점을 발견하였다.

무엇일까 ?

단점은 다음 장에 밝혀 보기로 한다.

 

 

* 따뜻한 데이터 세상 만들기 - FROM 핫신 *
Tag :

Leave Comments