구글 드라이브, 아이클라우드는 어떻게 동기화될까? 클라우드 저장소와 충돌 처리

5 분 소요

폰으로 찍은 사진이 어느새 노트북에도 떠 있고, 회사 PC에서 고친 문서가 집 컴퓨터에 이미 반영되어 있습니다. 구글 드라이브, 아이클라우드, 드롭박스 같은 클라우드 저장소의 동기화입니다. 너무 자연스러워서 마법처럼 느껴지지만, 속을 들여다보면 꽤 부지런한 기계 장치입니다. 이번 글에서는 그 장치가 어떻게 돌아가는지, 그리고 가끔 만나는 “충돌 사본” 파일과 “동기화했는데 파일이 사라졌어요"라는 사고가 왜 생기는지를 코드 없이 정리하겠습니다.

동기화의 기본 동작 — 감시, 비교, 전송 #

동기화 앱이 하는 일은 세 단계의 반복입니다.

  1. 감시 — 지정된 폴더를 지켜보다가 파일이 생기거나 바뀌면 알아챕니다. 운영체제가 “이 폴더에 변화가 있었다"고 알려 주는 기능을 쓰므로, 폴더 전체를 쉬지 않고 뒤지는 것은 아닙니다.
  2. 비교 — 내 기기의 상태와 서버의 상태를 맞춰 보고 달라진 파일을 찾습니다. 파일마다 내용에서 계산한 지문(같은 내용이면 같은 값이 나오는 짧은 코드)을 만들어 비교하므로, 이름이 같아도 내용이 다르면 들통납니다.
  3. 전송 — 달라진 쪽을 올리거나 내려받아 양쪽을 같게 만듭니다.

여기서 똑똑한 절약이 하나 들어갑니다. 큰 파일의 한 부분만 고쳤을 때 전체를 다시 올리는 대신, 파일을 조각으로 나눠 바뀐 조각만 올리는 것입니다. 1GB 동영상 파일의 제목 정보만 바꿨는데 1GB를 다시 올리면 낭비이기 때문입니다. 사진이 수백 장 있어도 새 사진 몇 장만 빠르게 올라가는 것, 같은 파일을 다른 폴더에 복사해도 업로드가 순식간인 것(서버가 같은 지문을 이미 갖고 있으므로)이 모두 이 절약의 결과입니다.

충돌 — 두 기기에서 동시에 고치면 #

동기화의 가장 까다로운 순간은 같은 파일이 두 곳에서 따로 바뀌었을 때입니다. 비행기에서 노트북으로 보고서를 고치고, 같은 시간 집의 PC에서 가족이 같은 파일을 고쳤다면, 착륙 후 동기화 시점에 서버는 두 개의 서로 다른 “최신 버전"을 받게 됩니다.

어느 쪽을 남겨야 할까요. 기계는 두 수정의 가치를 판단할 수 없습니다. 한쪽을 덮어쓰면 누군가의 작업이 소리 없이 사라집니다. 그래서 대부분의 서비스는 판단을 포기하고 둘 다 남깁니다. 한쪽을 원본 이름으로, 다른 쪽을 “보고서 (충돌 사본).docx"나 “보고서 (2).docx” 같은 이름으로 보존하는 것입니다. 폴더에서 가끔 만나는 그 의문의 파일은 오류가 아니라, 누군가의 작업을 지우지 않으려는 안전장치입니다. 만나면 지우기 전에 두 파일을 열어 어느 쪽 수정이 살아남아야 하는지 확인하는 것이 올바른 대처입니다.

구글 문서나 노션처럼 여러 명이 동시에 편집해도 충돌이 안 나는 도구는 다른 방식을 씁니다. 파일을 통째로 주고받는 대신 “3번째 문단에 이 문장을 추가” 같은 변경 사항을 잘게 실시간으로 주고받아 합칩니다. 파일 동기화와 실시간 공동 편집은 비슷해 보여도 다른 기술입니다.

동기화는 백업이 아닙니다 #

클라우드 저장소를 쓰면서 가장 흔한 오해가 “클라우드에 있으니 백업도 된 것"입니다. 동기화의 본분은 모든 기기를 같게 만드는 것이고, 그 충실함은 삭제에도 똑같이 적용됩니다. 노트북에서 폴더를 지우면 동기화는 그 삭제를 성실하게 모든 기기와 서버에 퍼뜨립니다. 랜섬웨어가 파일을 암호화하면 암호화된 버전이 성실하게 동기화됩니다.

다행히 대부분의 서비스에 안전망이 두 겹 있습니다.

  • 휴지통 — 지운 파일을 일정 기간(보통 30일 안팎) 보관합니다. “동기화 사고"의 1차 복구 지점입니다.
  • 버전 기록 — 파일의 과거 버전을 얼마간 보관합니다. 덮어쓰기나 잘못된 수정을 되돌리는 길입니다.

다만 둘 다 보관 기간이 지나면 끝이라는 점에서, 정말 잃으면 안 되는 데이터의 보험으로는 부족합니다. 결론은 백업 글에서 정리한 3-2-1 규칙과 만납니다. 동기화는 편의 장치이고, 백업은 동기화 바깥에 별도로 두는 사본입니다.

자리만 차지하지 않게 — 선택 동기화와 스트리밍 #

“내 노트북은 256GB인데 클라우드에 2TB가 있으면 어떻게 되나"라는 질문에는 두 가지 장치가 답합니다.

  • 선택 동기화 — 폴더 단위로 “이 폴더는 이 기기에 내려받지 않음"을 정하는 방식입니다.
  • 스트리밍(온디맨드) 방식 — 파일 목록만 기기에 두고, 실제 내용은 여는 순간 내려받는 방식입니다. 파인더나 탐색기에서 구름 표시가 붙은 파일이 이 상태입니다. 평소에는 자리를 거의 차지하지 않다가, 더블클릭하면 잠깐의 다운로드 후 열립니다.

스트리밍 방식의 함정은 오프라인입니다. 비행기에서 열려던 파일이 구름 표시였다면 내용이 기기에 없는 것입니다. 출장 전 “오프라인 사용” 표시를 해 두는 습관은 이 구조를 알면 자연스러워집니다.

정리 #

폰과 노트북 사이의 마법을 분해하면 이렇습니다. 동기화는 감시, 비교, 전송의 부지런한 반복이고, 큰 파일은 바뀐 조각만 오갑니다. 같은 파일이 두 곳에서 바뀌면 기계는 판단 대신 충돌 사본으로 둘 다 살립니다. 그리고 동기화는 삭제까지 성실히 복제하므로 백업의 대체가 아니며, 휴지통과 버전 기록은 기간 한정 안전망입니다. 구름 표시 파일은 아직 내 기기에 없다는 뜻이니, 비행기 타기 전에 한 번 확인해 두시기를 바랍니다.

X