연휴의 고요함을 B급 공포 영화처럼 짓밟은 건, 10년 묵은 시스템의 비명이었다. 오래된 상처자국처럼 기억 저편에 남아있던 그 레거시 시스템이, 나를 부르고 있었다.
납품은 10년 전의 일이었다. 갑-을-병-정을 거치는 긴 여정에서, 유지보수 매뉴얼과 백업 매뉴얼, 장애 복구 가이드라는 중요한 짐들은 한 사람, 또 한 사람의 손을 거치며 조용히 사라져 있었다. 이제 와서 보니, 내가 직접 챙겨야 할 마지막 짐이 되어 있었다. 공식적으로는 내 일이 아니었지만, 오래된 아이를 내버려 둘 수 없어 손을 내밀었다.
그리고 그곳에는, 공포에 질린 초보 엔지니어가 있었다. 밤샘의 피로가 눈가에 가득한 그는, 장애 복구라는 거대한 숙제 앞에 홀로 서 있었다. 레이드로 2중 백업을 해야 할 그 순간, 실수는 찾아왔다. 절차서에 명시된 대로 원본 디스크와 백업 디스크의 순서를 다시 확인해야 했는데, 모든 신호를 무시한 채 '급함'이라는 이름의 전차를 몰아갔다. 결국, 백업본이 있어야 할 자리에 빈 데이터를 덮어쓰는, 가장 치명적인 '복구'가 이루어졌다.
재난 후 철지난 메시지처럼 그 상황이 6시간도 지나 전달되었다. 그 순간을 지켜본 나는 속으로 중얼거렸다. '아무리 급해도 메뉴얼은 지켜야 한다. 그리고 백업과 재해복구(DR)가 같은 물리적 공간에 있다면, 그것은 이미 백업이 아니다.' 복원 작업 전, 반드시 격리된 샌드박스 환경에서 시뮬레이션을 돌려보라며 수없이 강조했던 말들이, 모두 그의 귀를 스치고 지나간 것이었다. 급함이 초래한 파국이었다.
모든 것이 사라진 것처럼 보이는 그 순간, 오래된 개발자의 미덕이 빛을 발한다.나도 얼마나 drop table이나 실수를 했던가… 상황을 파악하고, 당황하는 주니어를 달래며, '삭제'가 '완전한 소멸'은 아니라는 희망을 붙잡는 것. 하드 디스크의 데이터 영역은 덮어쓰기 전까지는 여전히 그곳에 남아 있다는 것을 기억해 낸 것이다. AI 도구의 도움을 받아 복구 스크립트를 땀에 젖은 손으로 하나씩 만들어갔다. 찢어진 데이터 조각들을 하나씩 끄집어내고, 의미를 부여하고, 되살려내는 작업. 그 고된 과정은 40시간 이라는 시간을 태웠다.
40시간의 끝자락에, 되살아난 데이터를 보며 깨달은 것은 기술적 교훈 이상이었다. 모든 일이란, 결국 '사람'이 완성하고 '사람'이 망가뜨린다는 것을. 주니어의 실수를 탓하기에 앞서, 우리 시니어의 몫은 영화 <인턴>의 벤과 같이, 아무리 파국적인 상황에서도 경험과 암묵지로 무장한 조언자로 서는 것이 아닐까?
그날, 나는 데이터를 복구했을 뿐만 아니라, 한 사람의 개발자에게 실패를 딛고 설 수 있는 땅을, 조용히 마련해 주었기를 바란다. 그것이 10년의 시간이 내게 가르쳐 준, 가장 소중한 복구의 방법이었으니까.