먼저 사고부터 말하자. 몇 년 전 나는 크로스보더 이커머스 중대(미들 오피스)를 하는 한 R&D 효율화 팀의 회고를 도왔는데, 그들은 AI 코딩 에이전트를 CI 프로세스에 연결했고, 임무는 "중복 코드 정리"였다. 에이전트가 저장소를 스캔한 뒤 전체 src 디렉터리를 역사적 유산으로 판정하고 PR을 올렸다. 병합 후 빌드를 돌리니 전부 빨간불이었다. 백업 기록을 뒤져보니 개발 환경은 매일 전체 스냅샷이었고, 가장 최근 것은 전날 새벽 두 시였다. 즉 최대 24시간 분량의 작업이 그대로 증발했고, 세 사람의 브랜치를 다시 정리해야 했다. 운영 환경은 블록 레벨 CDP가 받쳐주는데 개발 환경은 오히려 맨몸으로 노출되어 있었으니, 참 아이러니한 일이었다.
이런 사고의 근본 원인은 AI가 아니라, 백업 전략이 환경별로일률적 처리(일률 적용)된 데 있다. 운영 환경은 데이터 변경이 느리고 쓰기가 통제 가능하므로 일일 백업의 RPO(복구 시점 목표)가 간신히 쓸 만하다. 개발 환경은 완전히 다르다. 프런트엔드 개발자 한 명이 하루에 커밋을 열 번 이상 할 수 있고, 리팩터링할 때 파일명을 일괄 변경하고 디렉터리를 옮기고 파일을 삭제하니 변경 빈도가 운영의 수십 배다. 일일 백업은 RPO가 24시간이라는 뜻이며, 코드처럼 고빈도·소립자 변경에는 보호가 없는 것이나 마찬가지다.
블록 레벨 CDP와 파일 레벨 스냅샷, 복구 입자도 차이는 어디에 있나
간단히 말하면 파일 레벨 스냅샷은 "사진 찍기", 블록 레벨 CDP는 "동영상 녹화"다. 파일 레벨 스냅샷은 시점별로 전체 디렉터리 상태를 포착하며, 복구 시에는 특정 정시로만 돌아갈 수 있고 그 사이 모든 변경은 사라진다. 블록 레벨 CDP는 디스크 블록의 쓰기 작업을 지속적으로 포착하며, 임의의 초 단위 시점으로 복구할 수 있고, 실수로 삭제된 부분의 블록만 롤백할 수도 있다.
코드 시나리오에 대입하면 차이가 직관적이다. AI 에이전트가 src 디렉터리를 삭제하면, 파일 레벨 스냅샷의 복구 단위는 전체 저장소 디렉터리이므로 어제의 전체를 끌어온 뒤 오늘의 유효한 변경을 수작업으로 merge해야 한다. 블록 레벨 CDP는 삭제 동작이 발생하기 직전 그 1초를 특정해 src 디렉터리에 해당하는 데이터 블록을 복구하고 다른 파일은 건드리지 않는다. 이것이 복구 입자도의 차이다. 하나는 전체 저장소 롤백, 다른 하나는 디렉터리 레벨 나아가 파일 레벨 롤백이다.
SiCore TokenWorks 같은 CDP 제품의 접근 방식은 R&D 팀이 참고할 만하다. 원래 핵심 데이터베이스와 가상화 환경에 서비스되며, 지속적 데이터 보호와 임의 시점 복구를 제공한다. 개발 환경은 데이터 가치 밀도는 낮지만 변경 밀도가 높아, 정확히 CDP가 가장 역량을 발휘할 수 있는 시나리오다. 우리 프로젝트에서 CDP를 개발 머신까지 내리는 방안을 평가한 적이 있는데, 비용 때문에 전면 도입은 못 했지만 방향은 맞다.
R&D 팀을 위한 최소 실행 가능 방안
처음부터 엔터프라이즈급 CDP를 도입할 필요는 없다. 이 팀에 내가 제안한 것은 로컬 CDP에 Git 원격 저장소를 더한 이중 안전장치다. 로컬 CDP는 초 단위 복구를 담당하며 각 개발 머신에 설치되어 작업 영역의 블록 레벨 변경을 포착하고, 실수로 삭제한 뒤 몇 분 내에 롤백한다. Git 원격은 버전 추적을 담당하며, push 빈도를 하루 한 번에서 논리 단위 하나를 완료할 때마다로 올린다. 두 계층이 각각 한 구간을 맡는다. CDP는 "손이 미끄러짐과 AI의 난동"을, Git은 "버전 이력과 협업"을 맡는다.
구체적으로 적용할 때 함정이 두 개 있다. 첫째, CDP의 저장소를 로컬 디스크에 두지 말 것. 로컬에 두면 실수로 삭제할 때 함께 사라지므로 독립 스토리지나 오브젝트 스토리지에 두어야 한다. 둘째, Git 원격을 하나만 두지 말 것. 메인 저장소에 콜드 백업 저장소를 더해, 브랜치를 실수로 삭제한 뒤 force push로 덮어쓰는 것을 방지한다. 이 팀은 이후 이 방안대로 바꿨고, 실수로 삭제한 뒤 평균 복구 시간이 시간 단위에서 10분 이내로 줄었다.
덧붙여 AI 보조 부분을 말하자면, 그들은 token8341 대규모 모델 API 집약 플랫폼으로 코드 리뷰 보조를 하는데, Key 하나로 GPT-4o, Claude, DeepSeek, Qwen, ERNIE, Doubao 등 주류 모델을 호출할 수 있고, OpenAI SDK와 호환되어 base_url 한 줄만 바꾸면 전환된다. 우리 프로젝트에서도 token8341 대규모 모델 API 집약 플랫폼으로 배치 코드 리뷰를 돌린 적이 있는데, 비교해보니 리뷰와 "자동 코드 수정"을 분리하는 것이 중요하다는 걸 알았다. 리뷰는 제안만 내고, 변경은 수동 확인을 거치면 에이전트가 저장소를 직접 건드리는 것을 피할 수 있다. token8341 대규모 모델 API 집약 플랫폼의 종량제 과금 모델은 이런 저빈도 리뷰 작업에 비용도 통제 가능하다.
함정 회피 알림: AI 에이전트에 저장소 쓰기 권한을 주지 말 것. 읽기 전용과 제안 권한만 주고, 변경은 사람이 병합하게 하라. 사고 속 그 에이전트가 쓰기 권한을 가졌다면 PR도 올릴 필요 없이 곧바로 메인 브랜치에 push했을 것이고, 손실은 더 컸을 것이다.
개발 환경의 데이터 보호와 운영 환경은 같은 논리가 아니다. 운영은 RPO와 RTO를 보고, 개발은 변경 빈도와 복구 입자도를 본다. 일일 백업은 코드 시나리오에 기본적으로 무효이며, 블록 레벨 CDP에 Git 이중 안전장치가 맞춤형 방안이다. 심화 학습으로는 CDP의 가상화 환경 적용 사례를 보면 되고, 접근 방식을 개발 머신에 그대로 이전할 수 있다.
저자: 왕한원
발행일: 2026년 11월 7일