1P by GN⁺ | ★ favorite | 댓글 4개
  • Android용 Nextcloud에서 파일 업로드가 제한되자 Google이 5월 15일 전체 파일 업로드 권한 복원을 제안했고, Nextcloud는 테스트 릴리스와 복구 업데이트를 준비 중임
  • Google Play Store 배포판은 모든 파일 유형 읽기·쓰기 권한이 막혀 사진·동영상 같은 일부 미디어만 업로드할 수 있게 됨
  • Nextcloud에 따르면 이 권한은 2011년에 부여됐고 기능은 2016년부터 제공됐지만, 2024년 9월 앱 업데이트 거부와 함께 SAF·MediaStore API 사용을 요구받음
  • Nextcloud는 SAF가 앱 간 파일 공유·노출용이고 MediaStore API는 미디어 파일만 다뤄, 전체 파일 동기화를 대체하기 어렵다고 봄
  • 약 100만 명의 Google Play Store 사용자가 영향을 받았으며, F-Droid 배포판은 권한을 유지한 새 버전을 제공해 문제가 Google Play Store 배포 정책에 집중됨

5월 15일 권한 복원 제안

  • Google은 5월 15일 오전 Nextcloud에 연락해, 사용자에게 사라진 기능을 되돌릴 수 있도록 권한 복원을 제안함
  • Nextcloud는 먼저 테스트 릴리스를 준비하고 있으며, 문제가 없으면 모든 기능을 복구한 최종 업데이트가 이르면 다음 주 초 배포될 수 있음
  • 해당 업데이트 공지는 5월 15일 14:50 CET에 추가됨

Android 파일 업로드 제한의 영향

  • 몇 달 동안 Android 사용자의 Nextcloud 파일 업로드가 기대대로 작동하지 않았음
  • 업로드 가능한 파일은 사진과 동영상 같은 일부 미디어 파일로 제한됨
  • 다른 파일 유형을 올릴 수 없어, Nextcloud Files 앱의 파일 동기화 목적이 크게 흔들림
  • 사용자 불만은 Nextcloud help forum, GitHub, Reddit, ComputerBase 포럼 등 여러 채널에 올라옴

Google Play Store 권한 변경 과정

  • Nextcloud Files 앱의 모든 파일 유형 읽기·쓰기 권한은 2011년에 부여됨
  • 2024년 9월, Nextcloud Android 앱 업데이트가 갑자기 거부됨
  • Google은 모든 파일 접근 권한을 제거하거나 더 프라이버시 친화적인 대체 수단으로 Storage Access Framework(SAF) 또는 MediaStore API를 쓰라고 요구함
  • Nextcloud는 두 대체 수단이 전체 파일 업로드 기능을 대신할 수 없다고 판단함
    • SAF는 Nextcloud 파일을 다른 앱에 공유하거나 노출하는 용도라, 앱 워크플로를 잘못 이해한 요구라고 봄
    • MediaStore API는 미디어 파일만 접근할 수 있어 다른 파일 유형을 다룰 수 없음
  • Nextcloud는 2024년 중반부터 여러 차례 이의를 제기하고 추가 배경을 공유했지만, Google은 권한 복원을 받아들이지 않았다고 함
  • 버그 수정 업데이트를 사용자와 고객에게 제공해야 했기 때문에, Nextcloud는 Google의 새 요구에 맞춰 업로드 기능이 제한된 업데이트를 배포함

F-Droid와 Google Play Store의 차이

  • Android 앱 자체는 해당 권한과 함께 계속 작동함
  • Nextcloud는 외부 앱 스토어인 F-Droid에 새 버전을 배포함
  • 기능 제한은 Google Play Store 배포판에 관련된 문제임
  • 기술에 익숙한 사용자는 F-Droid 같은 대체 앱 스토어를 사용할 수 있지만, 앱 스토어 사용자 약 100만 명에게는 현실적인 선택지가 되기 어렵다고 Nextcloud는 봄

Nextcloud의 Google 비판

  • Google은 권한 취소 이유로 보안 우려를 들었음
  • Nextcloud는 2016년 시작 이후 해당 기능을 제공해 왔고, 그동안 Google로부터 보안 우려를 들은 적이 없다고 함
  • 여러 Big Tech 앱과 Google 자체 앱은 여전히 해당 기능을 가지고 있다는 것이 Nextcloud의 입장임
  • 플랫폼을 소유한 Google이 자신에게 우대 조치를 할 수 있고 실제로 그렇게 한다고 비판함
  • Nextcloud는 이 사안을 작은 기술적 세부 사항이 아니라, 작은 소프트웨어 공급사의 경쟁 제품 기능을 약화시키는 게이트키핑 사례로 봄

더 넓은 경쟁 정책 문제

  • Nextcloud는 과거 Microsoft가 WordPerfect 사용 경험을 악화시키기 위해 Windows의 일부 기능을 막았던 사례를 언급하며, 현재 Google이 보안 명목의 규칙으로 경쟁 제품 구축을 어렵게 만든다고 주장함
  • 작은 기업은 법적 대응 비용이 크고 EU에 불만을 제기해도 시간이 오래 걸려 실질적 구제 수단이 거의 없다고 봄
  • Nextcloud는 2021년에 약 40개 기업·조직과 함께 유사한 반경쟁 행위에 대해 불만을 제기했지만, 4년이 지난 시점에도 아무 일도 일어나지 않았다고 함
  • EU의 Digital Markets Act는 2023년 5월 적용되기 시작했지만, Meta와 Apple에 대한 첫 과징금은 2025년 4월에야 발표됨
  • Nextcloud는 Meta와 Apple에 대한 각각 2억 유로5억 유로 과징금이 전 세계 연간 매출의 최대 10%까지 가능한 제재에 비해 낮으며, Big Tech 기업에게는 손목을 살짝 때리는 수준이라고 비판함

댓글과 토론

권한은 결국 사용자가 재량 하에 허락하도록 만드는 것인데 권한 시스템을 채용하면서 필요한 권한을 막아버리는 건 ㅎㅎ..

Hacker News 의견들
  • Nextcloud 입장에서 고통이 이해됨. Everfind(Drive, OneDrive, Dropbox 등을 통합 검색) 팀도 지난 1년 동안 파일을 내려받고 OCR을 돌린 뒤 사용자의 전문 검색 색인을 만들기 위해 drive.readonly 범위를 얻으려고 싸워 왔음
    Google은 계속 drive.file + drive.metadata.readonly로 버티라고 하는데, 이 조합은 지속적인 발견을 깨뜨리고 새 문서나 갱신된 문서의 검색 결과를 크게 망가뜨림. 결론적으로 Google의 “최소 권한” 수사는 그럴듯하지만, 실제로는 Big Tech의 1자 앱에 특권 접근을 주고 독립 벤더에게는 반쯤 작동하는 제품을 내거나 Play Store에서 쫓겨나게 만듦. 결국 사용자는 기능과 선택지를 잃고, 작은 개발사는 복붙 정책 봇과 끝없이 싸우느라 시간을 태우게 됨

    • 사용자 입장에서는 이 결정은 Google이 아니라 내가 정할 일이어야 함. 다만 Apple은 고객들이 대체로 “우리를 우리 자신에게서 구해 달라”는 성향이 더 강해서인지 훨씬 더 쉽게 넘어가는 느낌이 듦
    • Google 1자 앱에 특권 접근을 주려는 의도라기보다는, 그 팀이 엔지니어링 노력을 배정할 우선순위가 매우 낮은 쪽일 가능성이 큼
      몇 년간 Google Workspace에서 PM으로 일했는데, 겉으로 보이는 것보다 덜 악의적임. 의사결정은 매출에 최적화되고, 다른 기능들, 특히 기업 고객용 기능이 훨씬 높은 우선순위를 받음. 2012년쯤부터 거의 모든 회사가 기업 매출에 집중하면서 최종 사용자 만족도는 비용으로 치르게 됨
    • 이건 정확히 반독점법이 다루라고 있는 상황처럼 들림
    • 또 하나의 반독점 소송을 걸 때가 된 듯함. 적어도 Nextcloud는 유럽 기반이고, 최근 유럽은 일부 사안에서 기술 대기업에 맞설 의지를 보여 왔음
    • Google 빌드에서 깨지는 기능은 기능 제한으로 막고, 다른 배포 채널에서는 기능을 제공하면 어떨까 싶음. 개인적으로는 PlayStore보다 F-Droid에서 앱 설치하는 걸 우선함
  • AOSP 플랫폼 개발자이고, 파일시스템 관련 의견은 개인 의견이며 Google을 대변하지 않음
    Nextcloud를 쓰지 않고 해당 앱을 구체적으로 보지도 않았지만, 비교적 내부 사정을 아는 관점에서 보면 이 사용 사례에는 다른 사람들이 말한 것처럼 SAF가 작동할 수 있어 보임. Google Drive는 Nextcloud가 Google이 특혜로 준다고 주장하는 권한을 갖고 있지 않고, Nextcloud 앱과 마찬가지로 Play Store를 통해 배포됨. MANAGE_EXTERNAL_STORAGE 같은 권한은 과거에 광범위하게, 때로는 끔찍한 방식으로 남용돼 왔음

    • SAF는 선택지가 아님. 너무 끔찍하게 느려서[1][2][3][4][5] 제대로 된 클라우드 동기화 앱에는 절대 쓸 수 없음
      [1]의 발췌에 따르면 SAF의 모든 파일 입출력 작업은 IPC 호출을 쓰기 때문에 20~30ms 정도 걸리고, 디스크에 많은 파일이 있는지 확인하고 없으면 생성하는 식의 파일 작업이 많아지면 너무 느려서 Google 예제조차 속도를 내려고 꼼수를 씀. [3]의 예시에서는 SAF로 15초, 네이티브 ls로 6밀리초가 걸렸고 파일은 128개뿐이었다고 함
      [1] https://github.com/K1rakishou/Fuck-Storage-Access-Framework#...
      [2] https://www.reddit.com/r/androiddev/comments/ga5u72/saf_is_s...
      [3] https://issuetracker.google.com/issues/73044953#comment5
      [4] https://magicbox.imejl.sk/forums/topic/storage-access-framew...
      [5] https://issuetracker.google.com/issues/130261278#comment52
    • 이 스레드에서 MANAGE_EXTERNAL_STORAGE 같은 권한이 과거에 끔찍하게 남용됐다는 점이 충분히 고려되지 않는 게 무서움
      이런 권한으로 기기에서 가져갈 수 있는 데이터 양은 엄청날 가능성이 크고, 단순히 “사용자를 자기 자신에게서 보호”하는 얘기가 아님. 어떤 앱에도 이 권한을 켜는 게 안전하다고 느끼지 않을 것 같고, 기기 전체 데이터를 동기화하는 기능은 유용하지만 Google 입장에서는 해도 욕먹고 안 해도 욕먹는 상황임
    • “끔찍한 방식”이라면 사채 앱을 말하는 건가, 아니면 내가 모르는 더 나쁜 게 있는 건가 싶음
      사실상 사람들이 약탈적 대출을 받기 위해 “자발적으로” 설치하는 랜섬웨어에 가까운데, 실제 동작 방식을 모르는 경우가 많음. 돈을 못 갚으면 휴대폰을 잠그는 데 그치지 않고, 폰에서 빼낸 데이터를 이용해 지인에게 누드 사진을 보내겠다고 협박하거나, 데이터에서 파악한 가족에게 살해 협박까지 함 — https://www.welivesecurity.com/en/eset-research/beware-preda...
    • 새 앱에 이 권한을 줄 때 매우 신중해야 한다는 점은 이해하지만, NextCloud는 잘 알려진 앱이고 게다가 파일 관리 앱임. 그런 앱이라면 오히려 이 권한을 가져야 함
      완전히 단계적으로 없앨 계획이라면 대안이 충분히 좋아야 하는데, 일부 하위 댓글을 보면 그렇지 않아 보임. Android 개발은 해본 적이 없고 앞으로도 이런 일 때문에 아마 안 할 것 같아서 제대로 판단하기는 어렵지만, Google Drive 앱은 클라우드 저장소 위의 UI에 가깝고 Backup 같은 흥미로운 부분은 그 앱을 통해 처리되지 않는 것으로 이해함. Google Drive는 이 부분에서 특혜를 받으며, 그런 기능을 흉내 내려면 추가 권한이 필요함
    • Drive 자체는 Nextcloud가 원하는 권한을 갖고 있지 않을 수 있지만, Google이 통제하는 시스템 전체는 확실히 그런 접근권을 갖고 있음[0]
      [0]: https://support.google.com/googleone/answer/9149304?hl=en&co...
  • 공식 SyncThing Android 앱이 배포를 중단한 이유도 이것 때문임. 포크는 있지만 Play Store에는 없다고 알고 있음

    • SyncThing Android 앱의 문제는 Go 라이브러리인 SyncThing을 감싼 래퍼에 가까운데, SAF가 네이티브 코드에서 바로 쓸 수 있는 단순 파일 디스크립터를 주지 않는다는 데 있음
      대신 content:// URL을 받고, 이를 파일 디스크립터로 바꾸려면 Java/Kotlin 브리지가 필요함. 그 작업은 SyncThing 자체에서 해야 함. 다만 syncthing-fork는 어떻게든 동작하게 만든 듯하니 다른 꼼수가 있을 수도 있음. 하지만 내가 알기로 이 문제는 NextCloud 앱에는 적용되지 않을 것 같음
    • 포크는 Play Store에 있고 Android 15에서 잘 작동함: https://play.google.com/store/apps/details?id=com.github.cat...
      그래도 공식 클라이언트가 갑자기 사라진 건 좀 놀라웠음
  • “SAF는 우리 파일을 다른 앱에 공유/노출하기 위한 것이므로 사용할 수 없다”는 말은 맞지 않음. SAF는 사용할 수 있음
    NextCloud에 잘 맞지 않는 이유는 있음. 예를 들어 전체 내부 저장소, 다운로드 폴더, SD 카드 루트는 공유할 수 없음. 그래도 NextCloud의 설명 자체는 납득하기 어려움

    • 완전히 맞음. 예를 들어 다음 문서를 보면 됨
      https://developer.android.com/training/data-storage/shared/d...
      이 내용은 어제도 논의됐음: https://news.ycombinator.com/item?id=43970959
    • 그 앱의 핵심은 폴더 전체 백업임. 한 앱에서 Nextcloud로 공유하는 방식은 이후 버전의 파일을 계속 백업할 접근권을 제공하지 않음
    • 확인하고 싶은 건 Google 소프트웨어가 전반적으로 정확히 같은 권한 구조를 쓰느냐는 것임
      예를 들어 Google 제품 중 NextCloud가 요구하는 같은 권한을 쓰는 게 없고, 대신 SAF를 쓰는 게 맞는지, 특히 여기서 NextCloud가 하는 일을 수행하는 기능에서도 그런지 궁금함. Google이 NextCloud와 다른 앱 개발자에게 적용하는 규칙을 스스로도 똑같이 지키는지 확실히 알고 싶음
  • 독점적 행태임. 다른 회사들이 Google과 정확히 같은 방식으로 운영할 수 있도록 필요한 실사를 감당할 투자를 거부한다면, Google은 그 장을 관리할 자격이 없음
    감독 비용이 든다면 부담을 모니터링하기 위한 명목 수수료를 회사에 부과하면 됨. 다른 참여자를 막아 버리는 건 적절한 대응이 아님

  • Google이 Nextcloud에 연락해 권한을 복구하겠다고 제안했음. 이 결정이 기술적 논거 때문이었는지, 아니면 반독점 재판과 언론 보도가 설득 요인이었는지 궁금함

  • 이게 바로 EU의 Digital Markets Act가 존재하는 이유이고, 그 법에 실질적 강제력이 필요한 이유임
    Google이 Android에서 Nextcloud의 전체 파일 접근을 막으면서 자기 앱과 대기업 플레이어에게는 조용히 허용한다면, 그건 “보안”이 아니라 통제임. Nextcloud는 개방 표준 기반의 유럽산 프라이버시 우선 대안이고 GDPR 요건과도 완전히 맞출 수 있음. 핵심 기능을 막고 자기 서비스를 우대하는 건 플랫폼 권력 남용의 교과서임. Android는 개방형이어야 했지만, 이런 움직임은 적어도 Play Services 버전이 또 다른 폐쇄 정원임을 보여 줌. EU가 디지털 주권과 공정 경쟁을 진지하게 생각한다면 이런 행태를 막아야 함. 그렇지 않으면 아무리 준수하고 개방적이며 사용자 친화적인 유럽 기술도 승산이 없음

    • Google 생태계에서 “모든 파일” 권한을 가진 앱이 무엇인지 궁금함. Google Drive는 확실히 아님. GDrive의 “upload” 버튼도 NextCloud처럼 파일 선택을 띄움
      “폴더 하나만 동기화” 기능은 고위험 권한 없이도 SAF로 가능함. 기존 프로필 마이그레이션은 새 API로 전환할 때 사용자가 폴더 권한을 다시 줘야 하므로 번거로울 수 있음. 전체 가상 저장소, 다운로드 폴더, 또는 Samsung 같은 벤더가 블랙리스트에 넣은 추가 폴더의 동기화는 새 API로 불가능하지만 Google 자체 서비스로도 불가능함. DMA는 Google이 특별한 위치에 놓이지 않도록 요구할 뿐이고, Google이 그런 기능을 제공하지 않는 한 NextCloud에도 제공할 필요가 없음
    • “AOSP를 설치하거나 APK를 쉽게 사이드로드할 수 있으니 지배적 사업자 남용이 아니다”라고 트집 잡는 사람들이 나올 것 같음. IE 때 “다른 브라우저 설치하면 된다”, iPhone 때 “다른 브랜드 사면 된다”와 똑같음
      이미 다른 제출 글에 그런 사람들이 있었음
    • 모바일은 2등급 운영체제 플랫폼임. 데스크톱에서 쓰는 브라우저나 운영체제는 차단과 필터링을 쉽게 설정할 수 있음
      모바일 사용자는 매일 팝업, 악성코드, DNS 하이재킹에 노출됨. 그렇지 않았다면 모바일은 광고주에게 클릭 수익을 퍼다 주는 황금열차가 아니었을 것임
    • 앱이 마음대로 모든 개인 데이터를 읽지 못하게 Google이 막는 걸 두고 EU를 끌어들여 처벌하자는 건 꽤 특이한 접근임
      이런 집행이 없으면 악성 게임과 Facebook 같은 앱은 “전체 접근이 필요하다”는 명목으로 사진을 업로드하고 EXIF 위치를 스캔했음. 그리고 기존 논의에서 더 나은 프라이버시 보존 API가 있다는 것도 확인됐고, Nextcloud가 그걸 쓰고 싶어 하지 않는 것뿐임
  • Google은 자기 Android 앱에 우위를 주기 위해 1자 전용 API를 만들어 온 역사가 있음
    2014년에 Google은 Drive 앱을 Docs, Sheets 등 여러 별도 Android 앱으로 쪼갰음. 사용자에게 새 앱을 설치하고 옮기게 하는 건 부담이었으므로, Drive에서 일반적인 Play Store 리디렉션 대신 쓸 수 있는 1클릭 설치 모달을 설계했음. 깔끔했음. 그 무렵 내가 일하던 회사는 Drive의 큰 경쟁사였고, 핵심 기능 일부를 독립 앱으로 분리하려고 비슷한 이유로 비슷한 흐름을 쓰고 싶어 했지만 안 됐음. Google은 그 API를 권한조차 아닌 앱 서명 검증 뒤에 숨겨 Google 서명 앱만 쓸 수 있게 했음. 권한 요청이나 이의 제기 가능성 없이 하드코딩된 독점이었음. 이런 기능이 위험할 수 있고 남용 완화가 필요하다는 정당한 이유는 있지만, Google은 남용 완화와 반경쟁 행위 사이의 선을 자주 넘음

    • Google 앱 중 Nextcloud가 원하는 권한을 쓰는 앱은 없음. 유일한 예외는 사전 탑재된 Files 파일 탐색기 앱인데, 클라우드와 통합되지 않음
  • Google의 옛 모토 “Don’t be evil”은 윤리적이고 투명한 사업 관행을 강조하는 기업 행동 강령의 핵심이었음
    2015년에 그 모토가 제거된 뒤로 우리는 Google의 손아귀에 들어갔음. 이제 Google은 Microsoft 같아졌고, Nextcloud가 만들어진 이유도 그 때문임

  • 내가 읽기에는 새 API는 올바른 방향으로 가는 움직임처럼 보임. 하지만 어느 쪽이든 Google은 사용자가 권한을 부여할 때까지 Nextcloud의 백업/동기화가 조용히 깨지게 만들라고 요구하는 셈임
    많은 사용자는 데이터 손실을 발견할 때까지 알아차리지 못할 가능성이 크고, 신뢰와 브랜드에 상당한 피해가 생길 것 같음. 결과가 거의 전적으로 사용자에게 전가되는 이 경우에 Google이 그렇게 요구하는 건 공정하지 않다고 봄

AI 요약이 이상하네요. 모든 문장 끝에 을 붙이는 오류는 처음 봤습니다.

이런 경우는 저도 처음이네요. 명사형으로 끝내라고 했더니.. 그거만 잘 지킨 ㅎㅎ