ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Google One 해지와 클라우드 탈출기 — 구글에 남긴 건 메일과 캘린더뿐
    IT 2026. 4. 19. 23:00
    Google One 해지와 클라우드 탈출기 — 구글에 남긴 건 메일과 캘린더뿐

    들어가며 — 두 번째 구독 해지

    얼마 전 Microsoft 365를 해지하면서 OneDrive의 556GB를 로컬로 옮긴 이야기를 쓴 적이 있다. 그 작업이 끝나자마자 자연스럽게 다음 타깃이 눈에 들어왔다 — Google One.

    돌이켜보면 구글 서비스를 꽤 많이 쓰고 있었다. Gmail, Google Calendar, Google Drive, Google Photos, Google Keep, YouTube… 하지만 실제로 일상에서 없으면 안 되는 건 이메일과 캘린더 정도였다. 나머지는 습관적으로 쓰고 있었을 뿐, 대체 불가능한 서비스는 아니었다.

    Google One 구독의 핵심은 결국 저장 공간이다. 무료 15GB를 넘기면 유료 플랜이 필요하고, 그 저장 공간을 차지하는 주범은 Google Photos와 Google Drive의 문서들이다. 이 두 가지를 로컬로 빼내면 구독을 유지할 이유가 사라진다.

    전략 — M365 때의 교훈을 살린다

    OneDrive 마이그레이션에서 가장 큰 교훈은 "단순 복사는 재앙"이라는 것이었다. 3만 장의 사진을 그냥 다운로드해서 밀어넣으면 중복 지옥이 펼쳐진다. 이번에도 같은 원칙을 적용했다.

    1. 내보내기 — Google Takeout으로 전체 데이터를 한 번에 추출
    2. 중복 제거 — 이미 Immich에 있는 사진은 해시로 걸러냄
    3. 신규만 업로드 — 중복이 아닌 것만 셀프호스팅 서버로 이관

    OneDrive 때와 다른 점이 하나 있었다. OneDrive는 자체 해시(QuickXorHash)를 써서 Immich의 SHA-1과 직접 비교가 불가능했지만, Google Takeout은 원본 파일을 그대로 내려준다. 즉 로컬에서 SHA-1을 바로 계산할 수 있어서, 중복 검증이 훨씬 깔끔했다.

    1단계: Google Takeout — 15,623개 파일 추출

    Google Takeout에서 Google Photos 전체를 내보냈다. 결과는 15,623개의 미디어 파일. 사진과 동영상이 섞여 있고, 각 파일마다 JSON 메타데이터가 딸려온다.

    Takeout이 제공하는 JSON에는 유용한 정보가 있다:

    • photoTakenTime — 촬영 시각 (Unix timestamp)
    • creationTime — 업로드 시각
    • geoData — GPS 좌표 (있는 경우)

    이 메타데이터를 파싱해서 각 파일의 정확한 촬영 시점을 확보했다. EXIF가 없는 스크린샷이나 메신저 사진도 Takeout JSON 덕분에 시간 정보를 복구할 수 있었다.

    2단계: 중복 필터링 — 3,413개를 걸러내다

    이미 Immich에는 37,719개의 에셋이 있었다(OneDrive에서 옮긴 것 포함). 여기에 15,623개를 추가하면 상당수가 중복일 수밖에 없다.

    OneDrive 때 만든 다단계 필터링 파이프라인을 Google Takeout용으로 개조했다:

    단계 방법 결과
    Layer 1 파일명 exact match + 날짜 확인 (±2초) 0건 (Takeout이 파일명을 바꾸는 경우가 많음)
    Layer 2 정규화 파일명 fuzzy match 0건
    Layer 3 SHA-1 해시 전수 검증 3,413건 중복 확인

    흥미로운 점은 Layer 1, 2에서 아무것도 안 잡혔다는 것이다. Google Takeout이 내보내는 파일명이 원본과 미묘하게 다른 경우가 많았기 때문이다. 결국 SHA-1 해시가 유일한 진실이었다. 파일명에 의존하는 중복 검사가 얼마나 위험한지 다시 한번 확인한 셈이다.

    15,623건에 대해 SHA-1을 전수 계산하는 데 약 5분. 로컬 파일이라 OneDrive처럼 API 다운로드가 필요 없어서 압도적으로 빨랐다.

    3단계: Immich 업로드 — 12,210개의 새로운 사진

    중복 3,413건을 제외한 12,210개를 Immich에 업로드했다. 배치 단위로 100건씩 처리하고, 체크포인트를 저장해서 중간에 끊겨도 이어서 진행할 수 있게 했다.

    업로드 자체는 12분 남짓. Immich REST API의 벌크 업로드가 잘 되어 있어서 별다른 문제 없이 완료됐다.

    이로써 Immich의 전체 사진 라이브러리는 약 5만 장 규모가 되었다. 구글 포토, OneDrive, 로컬 백업이 하나의 서버에 통합된 것이다.

    Google Drive 문서는?

    Google Drive에는 Google Docs, Sheets, Slides로 작성한 문서들이 있었다. 다행히 문서 양은 사진에 비하면 소량이었고, Takeout으로 내보내면 각각 docx, xlsx, pptx로 변환되어 나온다.

    OneDrive 문서 마이그레이션 때 이미 포맷 변환 → Markdown 전환 → AI 메타데이터 생성 파이프라인을 구축해 놨기 때문에, 같은 파이프라인에 태워서 처리했다. 새로 만들 게 없으니 빠르게 끝났다.

    Immich가 구글 포토를 대체할 수 있는가?

    솔직히 말해서, 구글 포토는 좋은 서비스다. 하지만 Immich도 이제 꽤 쓸만하다.

    기능 구글 포토 Immich (셀프호스팅)
    얼굴 인식 ✅ (최고 수준) ✅ (InsightFace)
    자연어 검색 ✅ (CLIP 기반)
    지도 뷰
    오늘의 추억
    모바일 앱 ✅ (iOS/Android)
    자동 백업
    저장 공간 15GB 무료, 이후 유료 무제한 (내 디스크)
    프라이버시 구글 서버 내 서버
    AI 분석 커스터마이징 ✅ (로컬 VLM)

    특히 마지막 항목이 중요하다. Immich에 올라간 사진에 로컬 GPU에서 돌아가는 VLM(Vision Language Model)이 한국어 설명을 자동 생성한다. "바다가 보이는 카페에서 아이와 함께 찍은 사진"처럼 자연어로 검색할 수 있는 건 구글 포토와 동일하지만, 분석 모델을 내가 선택하고 커스터마이징할 수 있다는 점이 다르다.

    구글에 남긴 것 — 이메일과 캘린더

    이렇게 정리하고 나니 구글에 남은 건 딱 두 가지다:

    • Gmail — 이메일은 대체재를 찾기 어렵다. 수십 년간의 메일 아카이브, 각종 서비스 연동, 2FA 복구 이메일… 이건 당분간 그대로 둔다.
    • Google Calendar — 일정 관리의 표준. 가족 공유 캘린더까지 엮여 있어서 옮기기 어렵다. 다만 캘린더 데이터는 이미 로컬로 동기화하고 있어서, 구글이 갑자기 사라져도 데이터는 안전하다.

    무료 15GB 안에서 이메일과 캘린더만 쓰면 저장 공간이 부족할 일이 없다. Google One 구독이 필요 없어진 이유다.

    두 번의 마이그레이션을 돌아보며

    M365와 Google One, 두 개의 클라우드 구독을 연달아 해지했다. 숫자로 정리하면:

    항목 M365 (OneDrive) Google One (Photos) 합계
    마이그레이션 파일 수 ~30,000 15,623 ~45,600
    중복 제거 ~24,200 3,413 ~27,600
    신규 이관 ~7,950 12,210 ~20,160
    절감 구독비 ₩8,900/월 ₩2,900/월 ₩11,800/월

    연간 약 14만 원의 구독비가 사라졌다. 물론 로컬 서버의 전기료와 디스크 비용이 있지만, 서버는 다른 용도(AI 작업, 개인 대시보드 등)로도 쓰고 있으니 순수한 사진 저장 목적의 추가 비용은 거의 없다.

    하지만 진짜 얻은 건 비용 절감이 아니다.

    • 데이터 통합 — OneDrive, Google Photos, 로컬 백업에 흩어져 있던 사진이 Immich 하나로 합쳐졌다. "이 사진 어디 있더라?"가 사라졌다.
    • 중복 정리 — 세 곳에 걸쳐 있던 27,000건 이상의 중복 사진을 정리했다. 저장 공간뿐 아니라 머릿속도 깔끔해졌다.
    • AI 파이프라인 — 마이그레이션 과정에서 만든 도구들(중복 필터링, 포맷 변환, VLM 분석, GPU 스케줄러)이 일상의 인프라로 자리잡았다.
    • 데이터 주권 — 서비스 정책 변경, 가격 인상, 계정 정지… 더 이상 남의 결정에 내 데이터가 흔들리지 않는다.

    결론 — 해지는 끝이 아니라 정리의 시작

    클라우드 구독을 해지하는 건 간단하다. 버튼 하나면 된다. 어려운 건 그 전에 데이터를 안전하게 빼내는 것이고, 더 어려운 건 빼낸 데이터를 이전보다 더 잘 관리할 수 있는 체계를 만드는 것이다.

    AI와 셀프호스팅 도구의 조합은 이 "더 어려운 것"을 가능하게 해줬다. 수만 장의 사진을 일일이 분류할 수 없지만, AI는 할 수 있다. 클라우드 서비스가 제공하던 검색, 분류, 추천 기능을 로컬에서 재현할 수 없었다면 이 마이그레이션은 "탈출"이 아니라 "퇴보"가 됐을 것이다.

    구독 해지를 고민하고 있다면, 먼저 물어보자: "빠져나간 뒤에 더 나은 환경을 만들 수 있는가?" 답이 "예"라면, 해지는 끝이 아니라 시작이다.


    이 글은 생성형 AI의 도움을 받아 작성되었습니다. 원본 자료를 기반으로 AI가 초안을 생성하고, 작성자가 검토·편집하였습니다.

Designed by Tistory.