브라우저·여러 기기에서 북마크는 어떻게 동기화하나요? 암호화 클라우드 동기화·충돌 병합과 VertiTab 가이드
이런 경험 있으신가요? 회사 컴퓨터에서 저장한 링크들을 집에서 찾을 수 없거나, 새 컴퓨터로 바꾸고 나서 수년간 정성껏 모아온 북마크가 한순간에 사라진 경험. Chrome에도 Google 계정 기반의 북마크 동기화 기능이 있지만, 무엇을 언제 동기화할지 세밀하게 제어하기 어렵고 네트워크 환경에 따라 불안정할 때도 있습니다.
VertiTab 3.6.0은 북마크 클라우드 동기화 기능을 선보입니다. 모든 기기에서 실시간 동기화, 엔드투엔드 암호화 보호, 충돌 자동 병합으로 이제 북마크를 절대 잃어버리지 않습니다.
Chrome 기본 동기화가 부족한 이유
Chrome 내장 북마크 동기화에는 몇 가지 고질적인 문제점이 있습니다.
- Google 계정 필수로, 네트워크 환경이나 개인 정보 보호를 중시하는 사용자에게 불편
- 버전 기록 없음: 북마크를 실수로 삭제하면 영구적으로 사라짐
- Chrome 전용: Firefox 등 다른 브라우저 북마크와 연동 불가
VertiTab의 북마크 클라우드 동기화는 이 문제점들을 하나씩 해결하도록 설계된, 더 유연하고 안전한 대안입니다.
VertiTab 북마크 동기화의 강점
1. 엔드투엔드 암호화 — 데이터는 오직 내 것
VertiTab은 AES-GCM 암호화와 pako 압축을 결합해 사용합니다. 북마크 데이터는 기기를 떠나기 전에 이미 암호화됩니다. 서버에는 해독 불가능한 암호문만 저장되며, VertiTab 팀조차 북마크 내용을 볼 수 없습니다.
2. CRDT 알고리즘 — 데이터 손실 제로 보장
기존의 '마지막 쓰기 우선' 동기화에는 치명적인 결함이 있습니다. 두 기기가 동시에 북마크를 수정하면 한쪽 변경이 덮어씌워지는 것입니다. VertiTab은 Merkle-DAG 기반 CRDT(충돌 없는 복제 데이터 유형) 알고리즘을 사용하여, 각 기기의 모든 변경이 작업 로그로 기록되고 모든 기기에 걸쳐 지능적으로 병합됩니다.
실제 예시:
- 기기 A가 '업무' 폴더에 북마크 5개를 추가
- 기기 B가 동시에 '학습' 폴더에서 북마크 3개를 삭제
- 다음 동기화 후: 두 변경이 모두 유지되며, 어느 쪽도 덮어씌워지지 않음
3. 자동 동기화 — 수동 조작 불필요
Chrome에서 북마크를 추가·삭제·편집할 때마다 VertiTab이 변경을 자동으로 감지하고 동기화를 시작합니다. 버튼을 클릭할 필요가 없습니다. 물론 설정 페이지에서 언제든지 수동 동기화를 시작할 수도 있습니다.
4. 동기화 재개 — 연결 끊김에 강함
동기화 중에 네트워크가 끊기거나 브라우저가 예기치 않게 종료되더라도, VertiTab은 다음 시작 시 중단된 동기화 작업을 자동으로 재개하여 데이터 무결성을 항상 보장합니다.
북마크 클라우드 동기화 설정 방법
1단계: VertiTab 설치 및 로그인
Chrome 웹 스토어에서 VertiTab을 설치하고, VertiTab 계정에 로그인하거나 새로 만드세요.
2단계: 동기화 설정 열기
사이드 패널 왼쪽 하단의 설정 아이콘(기어) 클릭 → 모든 설정 → 클라우드 동기화 탭
3단계: 북마크 동기화 활성화
'데이터 동기화 옵션' 섹션에서 북마크 스위치를 켭니다. 처음 활성화할 때 VertiTab이 현재 모든 북마크를 스캔하여 초기 동기화 상태를 설정합니다.
4단계: 동기화 스페이스 만들기 또는 참여하기
북마크 동기화는 동기화 스페이스 개념을 기반으로 관리됩니다.
- 새 스페이스 만들기: 현재 기기의 북마크를 기본 데이터로 업로드하고 새로운 동기화 스페이스 생성
- 기존 스페이스 참여: 같은 계정의 다른 브라우저에서 해당 스페이스에 참여하면 양방향 동기화가 즉시 시작
계정당 최대 20개의 독립 동기화 스페이스를 만들 수 있어, 업무용과 개인용을 구분해 관리하기에 이상적입니다.
5단계: 다른 기기에서도 반복하기
두 번째 컴퓨터에 VertiTab을 설치하고 동일한 계정으로 로그인한 뒤 같은 동기화 스페이스에 참여하면, 동기화가 즉시 적용됩니다.
충돌 처리 방식
두 기기가 동일한 북마크를 동시에 수정할 때 VertiTab은 다음과 같이 처리합니다.
| 충돌 시나리오 | 처리 방식 |
|---|---|
| 두 기기가 서로 다른 북마크를 추가 | 모두 유지, 지능적 병합 |
| 두 기기가 동일한 북마크 이름 변경 | 더 최신 타임스탬프의 변경 우선 |
| 한쪽이 삭제, 다른 쪽이 편집 | 안전 검사 후 기본적으로 삭제 작업 우선 |
| 두 기기가 동일한 북마크를 이동 | Kleppmann 알고리즘으로 최종 위치 결정, 유효한 트리 구조 보장 |
이 시스템은 Kleppmann Move-CRDT 알고리즘을 기반으로 하며, 북마크 폴더와 같은 계층형 데이터의 충돌 처리에 있어 가장 신뢰할 수 있는 방법 중 하나입니다.
다중 안전 보호 계층
Failsafe 이상 감지
VertiTab이 클라우드 병합 결과를 브라우저에 기록하기 전에 변경 폭을 안전 평가합니다. 비정상적인 대량 삭제나 급격한 증가가 감지되면 동기화를 가로채고 확인을 요청합니다.
| 위험 수준 | 트리거(표준 민감도) | 동작 |
|---|---|---|
| 안전 | 삭제 < 20% 또는 < 10개 | 조용히 계속 |
| 경고 | 삭제 20%~50% | 경고 후 계속 |
| 차단 | 삭제 50%~80% | 일시 중지 후 확인 대기 |
| 심각 | 삭제 >= 80% 그리고 >= 50개 | 로컬 데이터 보호를 위한 강제 중단 |
민감도는 설정에서 조정할 수 있습니다(낮음 / 표준 / 엄격).
동기화 전 자동 백업
병합된 원격 데이터를 적용하기 전에 VertiTab은 동기화 전 스냅샷을 자동 생성합니다. 결과가 기대와 다르면 스냅샷 기록에서 즉시 롤백할 수 있습니다.
북마크 스냅샷: 복구 안전망
북마크 클라우드 동기화와 북마크 스냅샷은 함께 동작하도록 설계되었습니다.
자동 스냅샷
- 북마크 변경 시 자동 생성(3초 디바운스 후)
- 24시간마다 정기 스냅샷 생성
- 동기화 쓰기 전 백업 스냅샷 자동 생성
수동 스냅샷 및 복원
스냅샷 페이지에서 다음이 가능합니다.
- 스냅샷 기록 탐색 및 트리 구조 확인
- 현재 상태와 과거 스냅샷 비교(추가 / 삭제 / 수정)
- 원하는 과거 상태로 원클릭 복원(복원 전 자동 백업 생성)
가져오기 / 내보내기
- 내보내기: Netscape HTML(표준 북마크 형식)
- 가져오기: VertiTab JSON, Netscape HTML, Firefox JSON
주요 사용 사례
재택근무와 출근 사이 끊김 없이
회사 컴퓨터와 집 컴퓨터를 같은 동기화 스페이스에 추가하면, 회사에서 저장한 링크와 자료가 귀가 후 바로 집 컴퓨터에서 보입니다.
새 컴퓨터로 몇 분 안에 이전하기
새 기기가 생겼다면 VertiTab을 설치하고 기존 동기화 스페이스에 참여하세요. 몇 분 안에 모든 북마크가 복원됩니다. 수동 내보내기·가져오기는 필요 없습니다.
업무용과 개인용 북마크 깔끔히 분리
'업무' 스페이스와 '개인' 스페이스를 만들고, 다른 기기의 다른 브라우저가 각자의 스페이스에 참여하면 두 세계가 완전히 분리된 채로 유지됩니다.
브라우저 간 북마크 통합
Chrome과 Firefox에서 같은 동기화 스페이스를 사용하면 두 브라우저의 북마크 라이브러리를 일관되게 유지할 수 있어 수동 내보내기/가져오기가 필요 없습니다.
보안 요약
- 전송 암호화: 모든 데이터는 HTTPS로 전송
- 저장 암호화: 서버에는 AES-GCM 암호문만 저장되며, 누구도 읽을 수 없음
- 로컬 저장: 북마크 데이터는
chrome.storage.local에도 로컬로 저장되어 오프라인 접근 가능 - 최소 권한: VertiTab은
bookmarks권한만 요청하며, 방문 기록이나 다른 데이터에는 접근하지 않음
기술 아키텍처: Merkle-CRDT
VertiTab 북마크 동기화는 검증된 연구 설계를 바탕으로 한 Merkle-CRDT 시스템으로 구현됩니다.
Move-CRDT(충돌 없는 트리 연산)
모든 북마크 작업(생성, 이름 변경, 이동, 삭제)은 Move(t, p, m, c)로 표현됩니다.
t: 전역 연산 순서를 보장하는 Lamport 타임스탬프p: 대상 부모 노드 IDm: 북마크 메타데이터(제목, URL, 정렬 인덱스)c: 대상 노드 ID
삭제는 물리 삭제가 아닌 tombstone 의미론(가상 휴지통으로 이동)으로 표현되어 작업 히스토리가 보존됩니다.
충돌 해결은 Kleppmann의 undo-do-redo 접근을 따릅니다. 더 이른 연산이 늦게 도착하면 새 연산을 되돌린 뒤 이른 연산을 적용하고 다시 새 연산을 재적용합니다. 이로써 모든 기기가 동일 상태로 수렴하고, 폴더를 자기 하위로 이동시키는 등 무효 사이클을 방지합니다.
Merkle-DAG(콘텐츠 주소 기반 영속화)
각 연산은 SHA-256 CID를 갖는 DAG 노드로 저장되며, 다음을 가능하게 합니다.
- 멱등 중복 제거: 동일 연산 1회 저장
- 인과 순서 보장: 부모 노드 선적용
- 증분 동기화: DAG 헤드 비교로 분기 여부를 빠르게 판단
DAG 노드가 1000개를 넘으면 VertiTab이 자동 컴팩션을 실행해 현재 전체 트리 상태를 압축 스냅샷 노드로 저장합니다. 신규 기기는 전체 히스토리 재생 없이 빠르게 시작할 수 있습니다.
Reconciliation 엔진
VertiTab은 취약한 실시간 이벤트 캡처 대신 상태 대조를 사용합니다. 각 동기화 전에 브라우저 실시간 트리와 CRDT 기준 상태를 비교해 정확한 델타 연산 집합을 생성합니다. Service Worker가 중단되더라도 재시작 후 안전하게 동기화를 복구할 수 있습니다.
자주 묻는 질문
Q: VertiTab 북마크 동기화와 Chrome 기본 동기화를 동시에 사용할 수 있나요?
A: 네. 두 시스템은 완전히 독립적이며 서로 간섭하지 않습니다.
Q: 동기화를 끄고 변경한 뒤 다시 켜면 문제가 생기나요?
A: 아니요. VertiTab은 동기화 비활성화 중의 모든 변경을 기록하며, 재활성화 시 증분 변경을 인식하여 동기화하기 때문에 중복 북마크가 생기지 않습니다.
Q: 어떤 브라우저를 지원하나요?
A: 현재 VertiTab은 데스크톱 기준으로 Chrome, Edge, Brave, Opera, Vivaldi(Chromium 계열)와 Firefox, Waterfox, LibreWolf, Floorp, Zen(Gecko 계열)을 지원합니다. 모바일 브라우저는 아직 지원하지 않습니다.
Q: 동기화할 수 있는 북마크 수에 제한이 있나요?
A: 동기화 스페이스 내 북마크 수에 상한은 없습니다. 암호화·압축 후의 데이터 크기는 적절한 범위로 유지됩니다.
Q: 계정을 바꿨을 때 북마크는 어떻게 이전하나요?
A: 기존 계정에서 북마크 스냅샷을 만들거나 수동으로 내보냅니다. 그런 다음 새 계정에서 새 동기화 스페이스를 만들고 가져오면 됩니다.
Q: 동기화가 성공했는지 확인하는 방법은?
A: 설정 → 동기화 페이지에서 각 데이터 항목의 마지막 동기화 시간과 상태를 확인할 수 있습니다.
Q: 여러 기기가 동시에 온라인으로 북마크를 편집해도 데이터가 손실되지 않나요?
A: 그렇습니다. VertiTab의 CRDT 알고리즘이 모든 기기의 변경이 최종적으로 일관된 상태로 수렴하도록 보장하며, 어떤 작업도 손실되지 않습니다.
Q: 동기화 스페이스를 삭제한 후 데이터를 복원할 수 있나요?
A: 동기화 스페이스 삭제는 VertiTab 웹사이트의 계정 설정에서만 수행할 수 있으며, 클라우드에 저장된 암호화 데이터가 모두 정리됩니다. 브라우저의 로컬 북마크는 전혀 영향을 받지 않습니다. 이후 다시 동기화를 시작하면 현재 로컬 북마크가 새 기준선으로 업로드되어 새로운 동기화 주기가 시작됩니다.
Q: 실수로 대량 삭제했을 때 복구할 수 있나요?
A: 가능합니다. VertiTab은 동기화 병합 전마다 스냅샷을 생성하므로 스냅샷 페이지에서 올바른 과거 상태를 원클릭 복원할 수 있습니다. Failsafe 이상 감지도 위험한 대량 변경을 적용 전에 차단합니다.
마치며
VertiTab 북마크 클라우드 동기화는 고급 CRDT 알고리즘과 엔드투엔드 암호화를 결합하여, 현재 가장 신뢰할 수 있는 기기 간 북마크 동기화 솔루션을 제공합니다. 컴퓨터 대수나 사용하는 데스크톱 브라우저 종류에 관계없이, 같은 계정의 북마크는 항상 일관된 상태를 유지합니다.
지금 VertiTab 3.6.0으로 업데이트하고, 어디서든 내 북마크를 함께 하세요.
참고 문헌
핵심 설계는 다음 연구를 기반으로 합니다.
-
Kleppmann, M., Mulligan, D. K., Gomes, V. B. F., & Beresford, A. R. (2022). A highly-available move operation for replicated trees. IEEE Transactions on Parallel and Distributed Systems, 33(7). arXiv:2103.04828
-
Sanjuán, H., Pöyhtäri, P., Teixeira, P., & Psaras, Y. (2020). Merkle-CRDTs: Merkle-DAGs meet CRDTs. Protocol Labs. arXiv:2004.00107
-
Da, M., & Kleppmann, M. (2024). Extending JSON CRDTs with move operations. PaPoC 2024. arXiv:2311.14007
-
Almeida, P. S. (2023). Approaches to Conflict-free Replicated Data Types. ACM Computing Surveys. arXiv:2310.18220
관련 글: