[연구 자동화 #37] 소중한 실험 데이터를 지키는 최후의 보루: 파이썬 DB 백업 및 복구 자동화
연구실에서 가장 등골이 오싹해지는 순간이 언제일까요? 아마 어제까지 멀쩡히 돌아가던 분석 프로그램이 "Database file is corrupted"라는 에러를 내뱉거나, 실수로 DROP TABLE 명령어를 날려 지난 몇 달간의 실험 기록이 증발했다는 사실을 깨달았을 때일 것입니다. 저 역시 석사 과정 시절, 외장 하드 전원을 잘못 뽑아 수천 장의 분석 이미지가 담긴 DB를 통째로 날리고 꼬박 사흘을 밤새워 복구했던 아픈 기억이 있습니다. 자동화의 핵심은 단순히 일을 빨리 처리하는 것에 그치지 않습니다. 예상치 못한 재난 상황에서도 내 연구 성과를 안전하게 지켜내는 '복원력'을 갖추는 것이 진정한 자동화의 완성입니다. 오늘은 파이썬의 표준 라이브러리만을 활용해, 매일 정해진 시간에 DB를 백업하고 필요할 때 즉시 복구하는 시스템을 구축해 보겠습니다. 1. 왜 연구용 DB는 '자동' 백업이 필수인가? 우리는 흔히 "중요한 파일이니까 수동으로 자주 복사해둬야지"라고 생각합니다. 하지만 연구에 몰입하다 보면 백업은 늘 우선순위에서 밀리기 마련입니다. 특히 데이터가 실시간으로 쌓이는 자동화 시스템에서는 백업 시점을 놓치면 수 시간 분량의 귀한 실험 수치를 잃게 됩니다. SQLite는 파일 하나로 구성되어 있어 백업이 매우 쉽지만, 반대로 그 파일 하나가 손상되면 모든 데이터를 잃는다는 위험도 큽니다. 따라서 사람이 직접 복사하는 것이 아니라, 파이썬 스크립트가 알아서 날짜와 시간을 붙여 복사본을 만들어두는 시스템이 반드시 필요합니다. 2. 파이썬 shutil을 활용한 초간단 백업 스크립트 파이썬에는 파일을 복사하는 데 최적화된 shutil 라이브러리가 있습니다. 이를 활용하면 단 몇 줄의 코드로 완벽한 백업 파일을 생성할 수 있습니다. 단순히 복사만 하는 것이 아니라, 파일명에 현재 날짜와 시간을 포함해 언제 만든 백업인지 한눈에 알 수 있게 하는 것이 핵심입니다. Python import shu...