『 '데이널'의 컨텐츠에 포함된 정보는? 』
데이터 이행 계획은 빠짐없이 준비할수록 좋은데요. 만약 여러분이 이사를 간다고 생각하면 어떻게 할까요? 이삿짐과 이사에 대한 서류들이 문제없는지 Check List를 분명 만드실 겁니다. 바로 데이터베이스의 이사하는 과정이 데이터 이행입니다.
체크리스트 하나로 프로젝트를 구하다
저는 한때 자체 개발 팀을 이끌었던 경험이 있습니다. 기존 일반 개발 환경에서 EKS(쿠버네티스)라는 새로운 환경으로 개발 소스부터 데이터까지 모두 옮겨야 하는 상황이었죠. 갑작스러운 환경 변화는 나와 팀원들 모두 혼란스러웠죠. 데이터 이행부터 개발 소스, CI/CD까지 신경 써야 할 일이 너무 많았습니다.
특히, 기술의 범위가 넓고 환경 변화가 커서 항상 뭔가 빠뜨리는 것 같았는데요. 예를 들어, EKS가 모두 생성되지 않았다거나, 로드밸런서의 문제가 발생하는 경우도 있었죠. 이런 실수들은 시스템 이관의 성공을 가로막는 큰 걸림돌이었습니다.
그래서 시스템 이관을 시작하기 전에 항상 체크리스트를 만들어 활용하기 시작했습니다. 처음에는 간단한 목록으로 시작했는데요. 이관 테스트를 거듭할수록 점점 더 상세하고 체계적인 체크리스트를 만들게 되었죠.
이행 체크리스트가 필요한 이유
맞습니다. 체크리스트는 예상치 못한 문제가 발생할 경우를 대비하기 위한 것이예요. 잘못하면 운영에 큰 차질을 초래할 수 있습니다. 따라서 체계적인 계획과 준비 없이 데이터 이행을 진행은 리스크 한 일이죠.
체크리스트를 통해 각 단계별로 빠짐없이 작업을 수행하여 실수를 최소화하는 목적이 있습니다. 아무래도 미리 세운 계획을 바탕으로 작업 순서를 정하고 필요한 환경을 미리 준비하면 작업 효율을 높일 수 있습니다.
만약 문제가 발생할 경우에도 체크리스트를 통해 문제 발생 지점을 빠르게 파악하고 해결책을 찾을 수 있는데요. 각 단계별 담당자를 지정하기 때문에 담당자가 빠르게 챙길 수 있죠.
체크리스트를 통해 작업 결과를 기록함으로써 향후 문제 발생 시 원인 분석할 수 있는 백 데이터를 만들 수 있고요. 이런 계획과 준비를 통해 데이터 이행을 완료하여 원할하게 서비스를 운영할 수 있도록 합니다.
이행 체크리스트를 만드는 방법
어떤 것 부터 작성해야 할지 감이 없는 경우는 우선 작업의 범주를 나눠봅니다. 예를 들어, 저의 경우는 사전 작업, 소스 테이블, 인터페이스 테이블, 통합 테이블, 결과 리포트로 구분해 보았습니다.
그다음은 해당 범주에서 체크해야 할 작업을 분해하면 됩니다. 작업들을 상세화 하면서 누락된 부분이나 불필요한 부분은 없는지 검토하면서 업데이트합니다.
1. 꼭 들어가야 할 항목
- 중요도 : 모든 작업이 동일하게 중요한 것은 아닙니다. 각 작업의 중요도에 따라 순서를 정하여 효율적으로 작업을 진행할 수 있게 해야 합니다.
- 예상 소요 시간 : 각 작업에 소요될 것으로 예상되는 시간을 적어 넣어 전체 작업 기간을 예측할 수 있도록 해야 합니다.
- 담당자 : 각 작업에 대한 책임을 명확히 하고 빠른 대응을 하기 위해 위해 담당자를 지정합니다.
- 완료기준 : 어떤 기준을 가지고 완료 여부를 판단할지 정의해야 합니다.
- 완료여부 : 각 작업 항목의 완료 여부를 쉽게 확인할 수 있어야 합니다.
2. 이행 체크리스트 샘플
작업구분 | Task | 중요도 | 예상소요시간 | 완료기준 | 완료여부 | 담당자 |
사전작업 | 타겟 테이블 확인 및 인덱스 제거 | |||||
추출 스크립트 확인 및 검토 | ||||||
이행 프로그램 확인 및 검토 | ||||||
검증 프로그램 확인 및 검토 | ||||||
원천 데이터 | 소스 데이터 추출 | 2시간 | ||||
소스 테이블 건수 확인 | ||||||
소스 데이터 파일 전송 | ||||||
소스 데이터 인코딩 변환 | ||||||
소스 데이터 파일 확인 | ||||||
인터페이스 데이터 | 인터페이스 테이블 이행 | |||||
인터페이스 테이블 검증 | ||||||
인터페이스 테이블 인덱스 생성 | ||||||
통합 | 통합마트 테이블 이행 | |||||
통합마트 테이블 검증 | ||||||
통합마트 테이블 인덱스 생성 | ||||||
결과 리포트 | 검증 리포트 |
이행 체크리스트 작성 유의사항
체크리스트 작성할 때는 애매한 표현은 피하고, 누구나 이해할 수 있도록 구체적으로 작성해야 합니다. 체크리스트에 포함된 작업은 실제로 수행할 수 있는 구체적인 작업이며 완료 기준이 명확해야 합니다.
앞부분에 언급한 내 경험처럼 작업 진행 상황에 따라 체크리스트를 지속적으로 업데이트하여 항상 최신 상태를 유지해야 합니다. 약간의 팁을 드리자면 구글 스프레드시트와 같은 관리 도구 등을 활용하여 체계적으로 관리할 수 있습니다.
아폴로 11호의 달 착륙은 인류 역사상 가장 위대한 업적 중 하나인데요. 바로 닐 암스트롱이 달에 첫발을 내딛는 순간을 역사 시간에 모두 배웠죠. 우주선 발사부터 달 착륙, 지구 귀환까지 모든 과정에서 수많은 변수가 존재했었다고 합니다.
NASA는 철저한 '체크리스트'를 통해 모든 절차를 정확하게 수행할 수 있었다.
데이터 이행 검증 방법, 정합성, 무결성을 어떻게 보장할까?
'데이터베이스' 카테고리의 다른 글
데이터 이행 시간 단축, 단 6%가 시스템 전체를 좌우한다? (2) | 2024.09.30 |
---|---|
데이터베이스와 스키마, 똑같은 말이라고요? NO! (1) | 2024.09.25 |
MySQL 내장 함수 99개 총정리 (0) | 2024.08.28 |
오라클 vs MySQL ANSI Outer Join의 차이점 (0) | 2024.08.27 |
MySQL 권한 종류 및 부여, 확인, 취소 방법 (0) | 2024.08.23 |