shud.log
바이브코딩 기록

새 맥북으로 이사했더니 크롬이 즉사했습니다 — 파일 129개 중 범인을 이진 탐색으로 잡은 날

2026-07-16맥북마이그레이션크롬이진탐색트러블슈팅지갑복구

돋보기로 범인 폴더를 찾는 탐정

새 맥북이 왔습니다. 8GB 램에서 크롬 탭 몇 개 열면 버벅이던 시절을 끝내려고 큰맘 먹고 산 기계입니다.

Migration Assistant로 이전 맥북을 통째로 옮겼습니다. 몇 시간 기다리니 바탕화면도 그대로, 프로젝트도 그대로. 순조로웠습니다.

크롬을 열기 전까지는요.

증상 1: 크롬이 다섯 개인데 크롬이 없다

크롬이 안 열려서 응용 프로그램 폴더를 봤더니 이런 상태였습니다.

Google Chrome 2.app   (2022년 버전)
Google Chrome 3.app   (2022년 버전)
Google Chrome 4.app   (2022년 버전)
Google Chrome 5.app   (2022년 버전)
Google Chrome 6.app   (최신 버전)

Google Chrome.app은 없습니다. 마이그레이션 도우미가 양쪽에 같은 앱이 있으면 번호를 붙여서 복사하는데, 그 과정에서 원본 이름이 실종된 겁니다. 게다가 2~5번은 4년 전 구버전. 구버전 크롬은 최신 버전이 만든 프로필 데이터를 열지 못합니다. 어느 걸 눌러도 안 열렸던 이유입니다.

최신인 6번을 Google Chrome.app으로 개명하고 구버전들을 휴지통에 넣었습니다. 이제 열리겠지 했는데요.

증상 2: 프로필을 누르면 0.7초 만에 죽는다

크롬이 켜지긴 합니다. 프로필 선택 화면까지는요. 프로필을 클릭하는 순간 창이 통째로 사라집니다.

크래시 리포트를 열어보니 실행 0.7초 만에 SIGTRAP으로 사망. 크롬이 스스로 "여기서 더 가면 안 된다"고 판단하고 자폭하는 종류의 죽음인데, 문제는 이유를 안 알려준다는 겁니다. 로깅을 켜고 다시 실행해도 치명적 에러 메시지가 없습니다.

단서를 모으기 위해 조건을 하나씩 바꿔봤습니다.

  • 새 임시 프로필로 실행 → 살아있음
  • 기존 프로필 + 확장 비활성화 → 죽음
  • 기존 데이터 폴더 + 새 프로필 디렉토리 → 살아있음
  • 기존 프로필 → 죽음

앱은 멀쩡하고, 마이그레이션으로 넘어온 프로필 폴더 안의 무언가가 크롬을 죽이고 있다는 뜻입니다. 그 폴더에는 파일과 디렉토리가 129개 있었습니다.

파일 129개, 용의자 1명 — 이진 탐색

129개를 하나씩 넣었다 뺐다 하면 129번 테스트해야 합니다. 반씩 나누면 7번이면 됩니다. 코딩 배울 때 나오는 그 이진 탐색이 실생활에서 이렇게 쓰입니다.

원리는 간단합니다.

  1. 프로필 폴더를 통째로 스냅샷 떠둔다 (원본 보존)
  2. 스냅샷에서 절반만 복사해 넣고 크롬 실행
  3. 죽으면 범인은 그 절반에, 살면 나머지 절반에 있다
  4. 범위를 반씩 좁혀가며 반복

APFS 파일시스템의 클론 복사(cp -c)를 쓰면 3GB짜리 폴더 스냅샷이 용량을 거의 안 먹고 즉시 생깁니다. 테스트마다 폴더를 지우고 다시 만들어도 부담이 없습니다.

돌려본 결과:

1라운드: 앞 64개 → 살았음   (범인은 뒤 65개)
2라운드: 32개 → 죽었음      (이 안에 있다)
3라운드: 16개 → 살았음
4라운드: 8개 → 살았음
5라운드: 4개 → 살았음
6라운드: 2개 → 살았음
7라운드: 남은 1개 = 범인

범인: Sync Data — 구글 계정 동기화의 로컬 캐시(leveldb)였습니다. 마이그레이션 중 손상됐고, 크롬이 프로필을 열 때 이걸 읽다가 즉사한 겁니다.

처방은 간단했습니다. 어차피 구글 서버에 원본이 있는 데이터라, 전 프로필에서 Sync Data를 들어내니 크롬이 거짓말처럼 살아났습니다.

증상 3: 확장 프로그램 전멸 (지갑 16개 포함)

끝난 줄 알았는데 진짜 심장 떨리는 구간은 여기였습니다.

크롬이 살아나자마자 확장 프로그램이 전부 사라져 있었습니다. 기계가 바뀌면 크롬은 확장 등록 정보를 "변조됐다"고 판단하고 자동으로 제거합니다. 마이그레이션의 알려진 부작용인데, 하필 제 크롬에는 에어드랍 파밍용 지갑 확장이 16개 들어있었습니다. 메타마스크부터 온갖 체인 지갑까지.

지갑 확장이 사라지면 머릿속에 스치는 단어는 하나죠. 시드 문구 16개를 다시 입력해야 하나?

결론부터 말하면 시드 재입력 0회로 전부 복구했습니다. 크롬이 지운 건 확장 프로그램 본체뿐이고, 지갑의 금고 데이터는 프로필 폴더 안 Local Extension Settings에 그대로 살아있었습니다. 확장을 웹스토어에서 재설치하면 같은 확장 ID로 깔리기 때문에 기존 금고를 그대로 다시 읽습니다. 재설치하고 쓰던 비밀번호를 입력하면 끝.

넘어온 김에 구글 계정 동기화를 다시 켜니 확장 목록도 자동으로 내려왔습니다. 결과적으로 제일 무서워 보였던 문제가 제일 쉽게 풀렸습니다.

배운 것

1. 수술 전에 스냅샷부터. 뭘 지우거나 고치기 전에 cp -c로 클론을 떠두면 용량 부담 없이 무한 재시도가 가능합니다. 이번 복구의 모든 실험은 스냅샷 위에서 했고, 원본은 한 번도 위험해지지 않았습니다.

2. 이진 탐색은 알고리즘 문제집 밖에서 더 유용합니다. "범인이 이 안에 있는 건 확실한데 어딘지 모른다"면 반씩 자르세요. 129개가 7번이 됩니다.

3. 지갑 금고는 로컬에 있습니다. 크롬 확장 지갑이 사라져도 Local Extension Settings가 살아있으면 데이터는 무사합니다. 당황해서 시드부터 다시 넣지 말고, 재설치 후 기존 비밀번호를 먼저 시도해보세요. 물론 이런 날을 위해 시드 백업은 평소에 해둬야 하고요.

4. 마이그레이션 직후 크롬이 이상하면 이 순서로. 중복 앱 정리 → 새 프로필로 생존 테스트 → 프로필 데이터 이진 탐색. 저와 같은 증상이라면 범인은 높은 확률로 Sync Data입니다.


덧. 이 글의 썸네일(폴더 벽에서 빨간 폴더를 노려보는 탐정)은 새 맥북의 로컬 이미지 모델이 8초 만에 그려줬습니다. 클라우드 비용 0원. 이 로컬 AI 세팅 이야기는 다음 글에서 풀겠습니다.

← 목록으로