본문 바로가기
기술과 미디어/IT

크롬 북마크(책갈피)가 무한히 증식하는 경우

by 김고기 님 2023. 9. 23.

0. 개요 및 요약

 

동기화가 이루어지는 두 기기 간 동기화 경로가 두 개 이상인(즉 병렬로 연결되었을) 경우, 업데이트·오류 등으로 한 기기에서 발생한 변경 사항을 한 기준점(A)은 동기화에 성공하고 다른 지점(B)은 동기화에 실패한다면 이후 동기화가 정상적으로 재개되었을 때 B가 변경 사항을 뒤늦게 적용하게 된다. 그리고 A는 다시 이를 새로운 변경으로 인식해 결과적으로 A↔B 작업이 무한히 반복되는 상황이 발생하는 것. 따라서 기기 간 동기화 경로를 하나로(직렬) 설정한다면 이와 같은 문제를 해결하고 예방할 수 있다.

 

책갈피 무한 증식이 발생하는 구조
<그림 1> 책갈피 무한 증식이 발생하는 구조.

 

 

<목차>


  1. 증상
  2. 원인
  3. 해결
  4. 결론

 

1. 증상

 

평소처럼 크롬(Chrome) 브라우저를 사용하던 중 이상한 현상을 발견했다. 자주 사용하던 사이트는 주로 주소를 입력해서 들어가기에 북마크바를 숨겨놓고 있었는데, 어쩌다 보게 된 북마크바가 특정 사이트로 도배가 되어 있었다.

 

특정 책갈피가 복제되고 있는 상황
<그림 2> 특정 책갈피가 복제되고 있는 상황.

 

대수롭지 않게 생각하고 삭제했다. 그러다 문득 다시 북마크를 보니 아까보다 더 많은 네이버들이 위치하고 있었다. 그제서야 동기화를 떠올리고, 아이폰과 맥북 등 다른 장비의 크롬을 확인하니 여기에도 동일한 북마크가 수십 개씩 복제되어 있었다.

 

처음엔 당황해서 일일이 지웠었다. 동기화 과정에서 생긴 오류의 일종이라 생각했고, 지운 뒤 다시 설정하면 괜찮을 줄 알았다. 그런데 동기화 자체가 실시간이 아니기에 그 순간 알아차릴 수 없었을 뿐이지, 사실은 무한히 증식하고 있었다. 하던 작업을 마치고 북마크를 확인해 보니, 이제는 사실상 수작업으로 지우는 게 어려울 정도로 북마크가 늘어나 있었다.

 

정신을 차리고 구글과 레딧에서 유사한 사례를 찾아봤다. 피해자(?) 중엔 책갈피가 만 단위를 돌파한 사람도 있었다. 일단 동기화 관련 문제는 확실한데, 관련 포럼이나 해외 사례를 찾아봐도 마땅히 원인이나 해결책이 제시된 경우는 보이지 않았다. 구글 동기화를 꺼버리라는 이야기도 있었는데, 개인적으로 이렇게 기능 자체를 봉인하는 건 해결책이 아니라고 생각하거니와 이 글에서 다룰 아이클라우드(iCloud)와 크롬 간 동기화의 문제라면 구글 동기화를 끄더라도 증식이 계속되는 경우가 있다.

 

무한히 증식하고 있는 크롬 북마크의 모습
<그림 3> 무한히 증식하고 있는 크롬 북마크의 모습.

 

검색을 계속하다 아이클라우드 제어판을 아예 지워버리자 증식이 멈췄다는 글에서 힌트를 얻어 몇 번의 실험을 해봤고, 아래와 같은 결론을 얻을 수 있었다.

 

2. 원인

 

스마트 기기 시대에서 가장 혁신적인 변화를 꼽으라면 나는 '멀티 디바이스'를 들겠다. 단순히 여러 기기를 사용한다는 개념을 넘어 하고 있던 작업을 일관성 있게, 연속적으로, 또 보완적으로 다른 기기에서 할 수 있다는 개념으로서 '멀티 디바이스' 말이다. 이 작업에서 매우 중요한 요소가 바로 '동기화'다. 겉으로 보기에는 쉽고 직관적이지만, 기기가 늘어날수록 설정과 관리, 그리고 오류에 골머리를 썩이게 된다.

 

나는 총 5개의 기기에서 북마크를 동기화하고 있었다. 윈도우 데스크톱, 윈도우 랩톱, 맥북, 아이폰, 아이패드다. 이중 주력은 데스크톱과 아이폰, 그리고 맥북이다. 나머지는 보조 장비에 해당한다.

 

문제는 오피스 용도로 제한적으로 쓰던 윈도우 랩톱에서부터 시작되었다. 근래 거의 쓸 일이 없었던 터라 관리 차원에서 충전과 프로그램 업데이트를 했는데, 이때 업데이트되었던 프로그램 중 아이클라우드가 있었던 것으로 보인다. 처음엔 아이클라우드 문제라곤 생각도 못 했었는데, 구글 동기화와 아이클라우드 동기화를 모두 차단하자 증식이 멈추는 게 확인되었다.

 

모든 문제는 크롬 확장 프로그램 <iCloud 책갈피>에서 시작되었다.

 

윈도우 데스크톱(D)과 윈도우 랩톱(L)의 크롬 책갈피는 구글 계정으로 동기화되고 있었다. 즉 한쪽에서 생긴 변경 사항을 구글 서버(G)를 통해 동기화하는 형태다. 그리고 크롬 책갈피를 iOS, Mac 사파리 책갈피와 동기화하기 위해 크롬에서 <iCloud 책갈피>(i)라는 확장 프로그램을 사용한다. 그러니까 D와 L 사이의 동기화가 이미 G를 통해 잘 이루어지고 있는데, 사실은 i도 자기 나름대로 D와 L의 동기화를 진행하고 있었던 것이다.

 

문제의 원인인 iCloud 책갈피 확장 프로그램
<그림 4> 문제의 원인인 <iCloud 책갈피> 확장 프로그램. 엄밀하게 말해 iCloud만 문제라고 할 수는 없지만, 어쨌든 크롬과 구글 동기화 입장에서는 이 프로그램으로 인해 책갈피 무한 증식이 이루어진 셈이다.

 

서로 최신 상태를 잘 유지하고 있는 상황이라면 이 같은 병렬 연결도 별로 문제가 되지 않는다. 나 역시 5개 기기를 1년 이상 동기화하면서 썼는데, 이런 문제는 처음이었다. 하지만 ① 업데이트나 오류로 인해 G와 i가 동일성을 유지할 수 없는 상황에서, ② 동기화 내용에 대한 변동이 생기면 무한 증식이 시작된다. 책갈피와 관련해 특별한 작업을 하지 않아도 아이콘 등을 갱신하기 위해 새로고침 되는 경우가 있는데, 내 경우에는 아마 ①의 상황에서 네이버가 새로고침 되었던 것으로 추정하고 있다. 네이버 관련 책갈피들이 하나도 빠짐없이 모두 증식했기 때문이다.

 

정리하자면 G와 i라는 서버가 가지고 있는 정보가 서로 다르다. G와 i는 서로 통신하지 않는다. 당연히 클라이언트(D와 L, 나아가 다른 세 개의 기기 모두)는 이를 다른 정보로 인식해서 갱신한다. (즉, 책갈피를 하나 더 만든다.) 그리고 이것이 다시 한쪽의 동기화 서버로 보내진다. 따라서 두 서버 간 정보 불일치를 해결해주지 않는 한, 단순히 동기화를 켜고 끄는 행위로는 무한 증식을 막을 수 없다. 동기화를 끄면 잠시 해결되더라도, 켜는 순간 다시 증식이 시작된다.

 

여기까지 왔으면 해결은 간단하다. D와 L 사이의 동기화 경로를 하나로 만들고, G와 i 사이의 정보 불일치를 해결하면 된다. 논리적으로 굉장히 간단해 보이는 일인데, 직접 해보면 그게 잘 안 된다. 그 사이의 결정적 함정, 바로 크롬의 '확장 프로그램 동기화' 기능 때문이다.

 

책갈피 무한 증식을 막을 수 있는 구조
<그림 5> 책갈피 무한 증식을 막을 수 있는 구조.

 

결론적으로 ① 크롬의 구글 동기화와 ② 크롬의 <iCloud 책갈피>를 동시에 이용한다면 이 문제는 언젠가 한 번은 생길 수밖에 없다. 따라서 '확장 프로그램 동기화'를 포기해야만 한다.

 

3. 해결

 

(1) 나는 이제 동기화를 사용하지 않을 것이다

 

모든 기기에서 동기화를 꺼버리면 당연히 더 이상의 증식은 발생하지 않는다.

 

하지만 훗날 동기화를 켜는 순간 바로 증식이 시작된다. 본의 아니게, 혹은 기본 옵션으로 동기화가 되는 경우도 있으니 동기화에 관심 없는 사람들도 반드시 아래 방법으로 문제를 해결하기를 추천한다.

 

(2) 동기화도 쓰면서 문제를 해결하고 싶다

 

① 문제의 원인이 된 기기, 그러니까 두 개의 동기화 경로를 만들게 되었던 기기를 모두 준비한다. 내 경우는 D와 L이 되겠다. 즉, 같은 문제를 겪은, 같은 프로그램이 설치된, 같은 운영체제의 기기가 모두 여기에 해당한다. (이 글에서 다룬 나의 경우는 2개지만 개념적으로는 3개 이상이 될 수 있다.) 다른 운영체제의 기기는 문제의 증상은 공유하지만, 해결에는 기여할 수 없다.

 

② 해당 기기들에 연결된 모든 동기화를 정지한다. 크롬은 설정 메뉴에서 '계정 연결 해제'를, iCloud도 설정에서 책갈피의 체크를 해제한다.

 

크롬 동기화 해제하기
<그림 6> 크롬 동기화 해제하기. 이 작업은 해당 구글 아이디로 동기화되고 있는 모든 기기에서 이루어져야 한다.

 

iCloud에서 책갈피 동기화를 해제를 위해서는 크롬 <iCloud 책갈피> 확장 프로그램을 비활성화 또는 삭제해야 한다. 확장 프로그램 메뉴에서 <iCloud 책갈피>를 지운다. (비활성화만으로도 문제를 해결할 수 있긴 하지만, 중간에 어떤 문제가 생길지 예상할 수 없으니 그냥 지워버리는 걸 추천한다.)

 

<그림 7> 크롬에서 <iCloud 책갈피> 비활성화 또는 삭제하기. 이 작업은 해당 확장 프로그램으로 동기화되고 있는 모든 기기에서 이루어져야 한다.

 

iCloud 제어판에서 책갈피 동기화 해제하기
<그림 8> <iCloud 제어판>에서 책갈피 동기화 해제하기. 이 작업은 해당 프로그램으로 동기화되고 있는 모든 기기에서 이루어져야 한다.

 

③ 모든 기기에서 동기화가 해제된 것을 확인했으면, 동기화의 기준으로 삼을 하나의 기기(나의 경우 D)에서만 구글 동기화를 다시 시작한다.

 

중요. 크롬의 나와 Google의 관계 > 동기화 관리 설정에서 '동기화 맞춤설정'을 선택하고 '확장 프로그램'을 비활성화한다.

 

크롬에서 확장 프로그램 동기화 해제하기
<그림 9> 크롬에서 확장 프로그램 동기화 해제하기. 이 작업이 이루어지지 않은 상태에서 다른 동기화가 진행되었다면 모든 작업을 처음부터 다시 해야 한다.

 

⑤ 5분 정도 기다리며 데이터가 갱신되는 것을 확인한다. 그간 갱신되지 못한 내용이 반영되며 증식을 시작할 건데, 무한히 증식하지는 않을 것이다.

 

⑥ 더 이상 변동이 없는 것을 확인하고, 다른 기기(L)에서도 구글 동기화를 활성화한 후 ④를 반복한다.

 

⑦ 그간 우리를 괴롭히던 중복된 책갈피 찌꺼기를 정리한 후, 모든 기기(D, L)에서 다시 구글 동기화를 중단한다.

 

⑧ 기준 기기(나의 경우 D)에서 iCloud 책갈피 동기화를 다시 시작한다. <iCloud 책갈피> 확장 프로그램을 활성화하고 갱신을 기다린다. 마찬가지로 증식이 시작된다. 더 이상 증식이 없는 것을 확인하고 나서, 중복된 책갈피를 정리한다.

 

⑨ 이 상태에서 크롬의 구글 동기화를 재개한다. 다소간의 변화가 있을 수 있으나, 더 이상 무한히 증식하지는 않는다. 정리 후 다른 기기(L)에서도 구글 동기화를 재개하면 동기화를 유지하면서도 무한 증식은 일어나지 않는 것을 볼 수 있다.

 

4. 결론

 

문제 해결의 핵심은 <iCloud 책갈피> 확장 프로그램이 단 하나의 크롬에만 존재하게 만드는 데 있다. 크롬은 자체적인 책갈피 동기화를 지원하니 동기화 경로를 굳이 중복해서 둘 필요가 없다. 발상을 달리하면 동기화 경로를 구글이 아닌 iCloud로 단일화하는 방법도 가능하다. 본인의 사용 환경에 맞춰 설정하면 된다.

 

이와 같은 문제는 iCloud 책갈피 동기화의 구성상 논리적으로 언젠가는 겪게 될 가능성이 높다. 따라서 아직 해당 문제를 겪지 았았더라 경로 단일화 작업을 미리 해두는 것을 추천한다. 일단 상황이 발생한 후에는 처리하기가 상당히 어렵고 까다롭다.

 

아쉽게도 애플과 구글 모두 이 문제에 대해선 딱히 답을 내놓고 있지 못한데, 이해가 안 되는 건 아니다. 이런 현상을 원천적으로 막는 방법은 두 동기화 경로가 통신하며 동일성을 유지하는 것인데 서로 다른 회사에 이것을 요구할 수는 없기 때문이다. 물론 확장 프로그램 동기화를 포기해야 하는 것도 만만한 손해는 아니다. (내 경우 필요한 상황에서만 동기화를 켜고, 동기화가 완료되면 끄는 방식으로 사용하고는 있다.) 따라서 애플이 <iCloud 책갈피> 확장 프로그램이 하나의 PC에서만 동작할 수 있도록 만드는 옵션을 추가하거나, 구글이 특정 프로그램을 제외한 확장 프로그램 동기화를 가능하게 만들어주는 것이 그나마 가능한 경우가 될 듯하다.

 

IoT를 시대를 맞으며 클라우드를 비롯한 동기화의 비중은 더욱 커지고 있다. 이 사례는 동기화 오류가 어떤 문제를 만들 수 있는지 보여준다. 점점 더 많은 서비스들이 다양한 동기화를 제공하고 있는 만큼 모쪼록 서비스 제공자들이 이 같은 이중 동기화 문제를 원천적으로 극복할 방안을 제시할 수 있길 바란다. 동시에 사용자는 동기화가 다중으로 이루어지지 않도록 유의해야 할 것이다. (끝)

 

 

※ 이 글은 2016년 10월 이글루스 블로그에 게시한 글에 갱신된 사실을 반영하고, 새로운 편집을 더해 재게시한 것입니다.

 

 

/lettered

댓글