레거시 기간계 시스템의 클라우드 마이그레이션 — 25년 치 데이터를 정리하여 이관
사실과 가설을 구분하는 조사부터 시작하여, 한 교육 기관에서 약 25년간 운용되어 온 기간계 데이터베이스를 단계적 마이그레이션을 통해 클라우드로 이관하고 있습니다.
과제
어느 교육 기관에서는 약 25년 치·225개 테이블·약 450만 행·약 11,000명분의 데이터가 오랫동안 운용되어 온 SQL Server의 여러 데이터베이스와 FileMaker로 나뉘어 축적되어 있었습니다. 외래 키 제약 조건이 정의되어 있지 않아, 데이터 간의 정합성은 애플리케이션 측의 운용을 통해 유지되고 있는 상태였습니다. 이러한 ‘레거시 시스템 특유의 문제’를 안고 있는 데이터를 단순히 이전하기만 해서는 25년 치의 암묵지가 계승되지 않아 현장에 혼란을 초래할 위험이 있다고 Cor.는 판단했습니다.
접근 방식
데이터를 무작정 이전하는 것이 아니라, 먼저 기존 데이터베이스를 조사하는 작업부터 시작했습니다. 조사에서는 ‘확정된 사실’과 ‘확인이 필요한 가설’을 명확히 구분하여 정리하는 것을 중요하게 여겼습니다. 테이블 간의 관계와 데이터의 의미를 자료뿐만 아니라 현장의 실제 업무와도 대조해가며 언어화하여, 가설인 상태 그대로 설계에 반영되지 않도록 했습니다. 이전 대상 환경은 Google Cloud(Cloud SQL / PostgreSQL + Cloud Run)로 정하고, 단순한 복제가 아닌 현재 업무에 맞춘 재설계를 선택했습니다.
구현
조사를 통해 밝혀진 구조를 바탕으로, 다국적 성명을 처리할 수 있는 스키마로 재설계했습니다. 이전은 한 번에 진행하지 않고 단계별로 추진했으며, 각 단계마다 제3자에 의한 더블 체크 체제를 마련했습니다. 외래 키 제약 조건이 없던 부분에 대해서도 데이터 간의 관계성을 파악하고 정합성을 가시화한 뒤 이전 작업에 반영했습니다.
- 이전 원본: SQL Server의 여러 데이터베이스 + FileMaker(약 25년 치·225개 테이블·약 450만 행·약 11,000명분)
- 이전 대상: Google Cloud(Cloud SQL / PostgreSQL + Cloud Run)
- 핵심 포인트: 사실과 가설의 구분 정리, 다국적 성명 대응 스키마 재설계, 제3자 더블 체크
성과
단계별 이전은 2단계(운영 데이터베이스 이전)까지 완료되었습니다. 사실과 가설을 구분하여 정리한 후 설계에 착수한 덕분에, 지금까지 암묵지에 의존하던 정합성이 가시화되었으며 운용 담당자가 안고 있던 ‘이 데이터가 정말 올바른가’라는 불안감을 줄일 수 있었습니다. 25년간 축적된 자산을 존중하면서, 앞으로의 25년도 안심하고 사용할 수 있는 기반으로 이어 나가기 위한 노력은 지금도 계속되고 있습니다.
이 사례에 대해 더 알고 싶으신 분께
여러분 현장의 과제도 함께 고민하게 해 주세요.