팀장님은 이렇게 이야기 했다. "n일전 데이터를 삭제하고 다시 로딩하는 것이 좋을 겁니다." "왜냐하면 업무상으로 올바르지 못한 데이터가 n일정도 소스에 있는 경우가 비일비재 하니까요" 나는 반신반의 했다. 어쨌든 DW의 경험이 적은 나로써는 이렇다한 반론을 제기하지 못했다. 또한 팀장이 그렇게 하라고 권고(지시는 아니었다)했으니까 나는 그렇게 했다. 한 2주가 지났을까? 팀장의 말은 사실로 드러나기 시작했다. 팀장의 권고를 따르지 않는 나의 일부 ETL패키지는 자주 수정되었다. 데이터의 오류로 또는 개발의 실수로 ETL패키지를 재실행하는 일이 비일비재 해졌기 때문이다. 나의 ETL패키지들은 내 손을 계속 타고 있었다. 또 소스에 오픈 바로 직전의 프로젝트에서는 테스트 데이터가 마구 쏟아져 들어오고 있었다. 오픈은 2일 뒤다. 나는 전일 데이터를 삭제하고 다시 로딩하는데, 다른 사람이 만든 ETL패키지는 5일 데이터를 삭제하고 다시 로딩하고 있어서 신경을 쓸 필요가 없었다. 팀장의 말은 100% 맞았다. 흔히 소프트웨어 공학에서는 소프트웨어 생명주기 동안에 유지보수 비용이 70%를 차지 한다고 한다. 나는 벌서부터 유지보수에 많은 힘을 쏟고 있었다. 이런 경험은 책에서 얻을 수 없는 값진 것이다. 중요한 경험을 나누어 준 팀장에게 감사한다.