제17화. 데이터 마이그레이션: 과거의 쓰레기를 새집에 들여놓지 마라
아들아, 이제 집(시스템)은 다 지어졌단다. 이제 남은 건 예전 집에서 쓰던 짐들을 옮기는 일이지. 이걸 '데이터 마이그레이션'이라고 부른단다. 많은 PM이 화면과 기능에만 신경 쓰느라 이 이사 과정을 우습게 보곤 해. 하지만 명심해라. 아무리 멋진 새집이라도 썩은 음식과 쓰레기를 그대로 들여놓으면 금세 악취가 진동하고 살 수 없는 집이 되어버린단다.
예전 시스템에서 10년 넘게 쌓인 데이터 안에는 온갖 오류와 예외 상황이 숨어있단다. 전화번호 형식에 이름이 들어가 있거나, 필수 값이 비어있는 경우도 허다하지. 이런 '저질 데이터'를 새 시스템의 정교한 규칙 속에 억지로 집어넣으면, 오픈 첫날부터 시스템은 비명을 지르며 멈춰버릴 거야.
과거의 오류를 새 시스템의 성능으로 극복할 수 있다는 착각을 버려야 한단다.
아빠의 노하우: 아빠는 데이터 이관 전에 반드시 '데이터 정제(Cleaning)' 기간을 가졌단다. 고객에게 오류 데이터를 목록으로 뽑아주고 "이걸 고쳐주지 않으면 이사할 수 없다"라고 단호하게 말했어. 깨끗한 원본 데이터만이 안정적인 오픈을 보장한단다.
옛날 데이터의 어느 항목이 새 데이터의 어디로 가야 하는지 적어놓은 '데이터 매핑 정의서'는 마이그레이션의 설계도란다. 이 문서가 부실하면 엉뚱한 곳에 짐을 푸는 꼴이 되지. 이름 칸에 주소가 들어가고, 금액 칸에 날짜가 들어가는 비극이 여기서 시작된단다. 이런 것들은 냉장고가 들어가야 하는 자리에 침대를 넣어 놓은 격이 되지.
설계도 없는 이사는 이사가 아니라 짐을 버리는 행위와 다를 바 없단다.
아빠의 노하우: 아빠는 매핑 정의서를 개발자에게만 맡기지 않았어. 반드시 현업 담당자가 직접 확인하게 했지. "이 데이터가 저기로 가는 게 맞습니까?"라고 확답을 받는 과정이 나중에 데이터 정합성 논란이 생겼을 때 너를 지켜줄 방패가 된단다.
이관 작업은 단 한 번의 기회밖에 없단다. 그래서 오픈 전날 밤에 처음으로 전체 데이터를 옮겨보는 건 자살행위와 같아. 실제 데이터의 10%, 50%, 그리고 100%를 단계적으로 옮겨보며 소요 시간과 오류 발생 여부를 체크하는 리허설을 최소한 세 번 이상 반복해야 한단다.
연습에서 발생하지 않은 기적은 실전에서도 결코 일어나지 않는단다.
아빠의 노하우: 아빠는 리허설 때마다 '이관 소요 시간'을 초 단위로 체크했단다. "데이터가 너무 많아 오픈 시간까지 이관이 안 끝날 것 같다"는 사실을 미리 알게 되면, 이관 로직을 개선하거나 오픈 일정을 조정할 전략을 짤 시간을 벌 수 있단다. 예를 들어 오픈 당일 주어진 시간은 단 4시간인데, 리허설 때 이관에만 6시간이 걸린다는 걸 알게 되면 등골이 오싹해진단다. 그때야말로 로직을 튜닝하거나 데이터 범위를 줄일 결단을 내려야 해.
모든 데이터를 다 가져가고 싶은 건 고객의 욕심이란다. 하지만 쓰지도 않는 15년 전 로그 데이터까지 새 시스템에 넣을 필요는 없어. 데이터가 무거울수록 새 시스템의 속도는 느려지고 관리 비용은 늘어난단다.
새 술은 새 부대에 담되, 찌꺼기까지 함께 담지는 마라.
아빠의 노하우: 아빠는 고객에게 '데이터 이관 기준'을 명확히 제안했단다. "최근 3년 데이터는 상세히, 그 이전 데이터는 통계값만, 10년 넘은 데이터는 별도 보관(Archiving)" 식의 기준을 세워 시스템을 가볍게 유지하려 노력했지 특히 법적 보관 기한이 지난 개인정보는 반드시 파기해야 한다. 나중에 파기하는 게 더 큰 문제가 될 수 있어.
한 마디
"데이터 이관은 단순한 복사(Copy)가 아니라 새로운 생명을 불어넣는 작업이란다. 과거의 잘못을 끊어내고 깨끗한 데이터로 시작할 때, 비로소 네 시스템은 진정한 새집이 될 수 있단다."
[정제 우선]: 이관 프로그램 개발보다 원본 데이터의 오류 수정이 먼저다.
[정합성 검증]: 보낸 데이터 건수와 받은 데이터 건수가 1의 자리까지 일치하는지 확인하라.
[백업 필수]: 이관 직전 원본 데이터를 반드시 백업하여 돌아갈 길(Rollback)을 만들어라.
[샘플 테스트]: 전체 이관 전, 핵심 케이스별 샘플 데이터를 먼저 이관해 로직을 검증하라.
[현업 확인]: 이관된 데이터를 현업이 직접 조회해 보고 "이상 없음" 서명을 받아라.