모델 변경으로 인한 위함과 위험을 벗어나기 위한 유혹
특정 테이블의 컬럼 크기를 변경하는 작업과 같이 데이터베이스 모델을 변경하는 경우, 데이터 레이어에 해당하는 모듈의 재 빌드 및 이들 모듈을 사용하는 모듈들이 정상적인 동작 여부를 확인하기 위해 관련 모듈들의 기능을 점검할 필요가 있다.
심지어 운영 환경의 경우에는 모델 변경에 의한 영향도 뿐만 아니라, 변경에 의해 예상하지 못한 문제를 발견하여 이를 변경전으로 복원하는 경우에도 마찬가지로 영향도를 고려해야 하는 부담이 있다.
따라서, 데이터 모델은 단계적으로 변경을 적용하면서, 변경 전과 변경 후의 두 모델 모두에서 필요한 데이터가 일치하도록 정기적으로 동기화 작업을 수행하며 모델 변경에 의한 프로그램 영향도를 낮추기 위한 유혹을 받게 된다.
데이터베이스 리팩토링에 대한 오해
데이터 베이스 리팩토링은 변경 이후의 모델과 변경 이전의 모델을 유지하는 중간 단계와 중간 단계 동안 두 모델 사이의 데이터를 일치시키기 위한 작업을 트리거나 배치를 통해서 처리한다.
데이터베이스 리팩토링은 단계적으로 변경 모델을 적용하며, 최종 모델이 적용되기까지 수 개월이 걸리는 특성이 있다. 이때문에, 데이터베이스 리팩토링은 본래 데이터 모델의 변경을 목적으로 함에도 불구하고 데이터 모델의 변경으로부터 시스템의 안정성을 확보하기 위한 수단으로 오해할 수 있다.
하지만, 데이터베이스 리팩토링에서 단계적으로 모델을 변경하는 이유는 타 시스템으로의 변경 영향도를 낮추기 위한 것이기 때문에, 프로그램의 안정성이 목적이라면 이는 단위 테스트와 회귀 테스트로 확보해야 한다.