Google Play가 AnkiDroid의 후원 링크를 끊었다 — 결제 정책인가, 자금줄 통제인가

앱 스토어가 오픈소스 프로젝트의 후원 링크를 차단할 때, 그것은 결제 정책의 집행인가 아니면 자금줄에 대한 통제인가.

도입

2026년 8월 28일, Google Play는 AnkiDroid의 업데이트를 거부했다. 거부 사유는 악성코드도, 개인정보 수집도, 저작권 침해도 아니었다. 앱 안에 있는 후원 링크 하나였다. 그 링크는 프로젝트의 Open Collective 페이지로 이어지고, 그 페이지에서 모인 돈은 미국 비영리단체인 Open Source Collective가 받아 보관한다. Google이 든 근거는 “결제에 관한 정책” 위반이다. 조치 예고도 함께 왔다. 문제가 해결되지 않으면 2026년 9월 11일부터 AnkiDroid는 인도와 러시아를 제외한 전 세계 Google Play에서 사라진다.

AnkiDroid는 안드로이드용 무료 오픈소스 플래시카드 앱이다. 설치 수는 1000만 건을 넘고, 주 사용층은 의학 교육과 어학 학습이다. 앱 안에서 파는 것은 아무것도 없다. 유지보수는 자원봉사자들이 하고, Open Collective가 유일한 자금원이며 회계 원장은 공개되어 있다. 즉 이 사건에서 차단된 것은 수익 모델이 아니라, 무료로 배포되는 공공재를 굴러가게 하는 유일한 돈줄이다.

그리고 이 사건이 흥미로운 이유는 다툼의 초점이 “돈을 받았느냐”가 아니라 “면세(tax exempt)“라는 단어가 무엇을 가리키느냐에 걸려 있다는 데 있다. AnkiDroid는 미국 국세청(IRS)이 발급한 면세 결정문을 제출했다. Google은 그 결정문을 받고도 “당신 앱은 면세가 아닌 조직에 기부하도록 하고 있다”고 답했다. 왜 불충분한지는 끝내 설명하지 않았다.

40일의 왕복 서신: 무슨 일이 있었나

시간 순서를 따라가면 이 사건의 성격이 분명해진다. 이하는 AnkiDroid 메인테이너가 GitHub 이슈 21656에 시간순으로 공개한 통지문·이메일 원문에 근거한다.

시작은 2026년 7월 20일의 자동 통지였다. 계정 알림 언어가 일본어였던 탓에 통지문 자체가 일본어로 왔다. 내용은 “앱 내 경험(IN_APP_EXPERIENCE)” 항목에서 결제 정책 위반이 발견됐다는 것, 그리고 8월 3일부터 이 앱은 인도와 러시아의 Google Play 이용자에게만 공개되고 그 외 국가·지역에서는 삭제된다는 것이었다. 해결 방법으로 네 가지가 제시됐다. 면세 단체에 대한 기부라면 IRS 결정문 같은 증빙을 제출할 것, 그렇지 않다면 (1) 앱에서 기부 기능을 제거하거나 (2) Google Play 인앱 결제로 기부금을 걷거나 (3) 미국 대체 결제 시스템 프로그램에 등록하거나 (4) Google의 외부 콘텐츠 링크 프로그램에 등록하라는 것이다.

메인테이너 마이크는 같은 날 재정 호스트인 Open Source Collective에 증빙을 요청했다. 다음 날인 7월 21일, Open Source Collective 대표 벤저민 니콜스 명의의 확인서와 IRS 결정문이 도착했다. 확인서는 AnkiDroid가 캘리포니아주에 등록된 501(c)(6) 비영리단체 Open Source Collective의 회원 프로젝트이며, Open Collective 플랫폼을 통한 기부금은 Open Source Collective가 수령·보관하고 “세금이 면제된다(are exempt from tax)“고 적었다. 첨부된 IRS 결정문의 문장은 더 직접적이다. “귀 단체가 내국세법 제501조(c)(6)항에 따라 연방소득세를 면제받는다고 판정했음을 알려드립니다.”

Google은 7월 22일 접수를 확인하고 티켓 번호 9-2777000041594를 부여했다. 그리고 침묵했다. 8월 2일, 마이크는 다음 날 제한 조치가 시작된다는 배너가 여전히 콘솔에 떠 있다며 항소가 진행 중인 동안에도 목록이 제한되는지 물었다. 8월 3일 Google의 답은 “아직 검토 중”이었다.

8월 6일에 온 회신이 이 사건의 핵심 문서다. Google은 제출 자료를 검토했으나 여전히 위반이라고 통보하면서, 두 문장을 나란히 놓았다. 하나는 정책 원문에 가까운 문장이다. “Google Play의 결제 시스템은 면세 기부가 포함된 결제에는 사용되어서는 안 됩니다.” 다른 하나는 조건이다. “기부는 다음 조건 아래에서만 앱 내에서 수집될 수 있습니다. 기부가 검증된 면세 단체(예: 미국의 검증된 501(c)(3) 자선단체 또는 각국의 이에 상응하는 단체)를 위한 것이고, 기부가 안전한 결제 시스템을 통해 수집될 것.”

마이크는 8월 7일에 이 문장을 그대로 인용해 되물었다. AnkiDroid는 검증된 면세 단체의 일부이며, 구체적으로 501(c)(6) 비영리단체이고 증빙도 첨부했다. 기부는 Open Collective 한 곳에서만, 안전한 결제 시스템으로 수집된다. 그래서 그는 이렇게 썼다. “우리는 이 정책이 허용하도록 설계된 바로 그 사례로 보입니다.” 그리고 서류를 받지 못했는지, 아니면 무엇이 부족한지 확인해 달라고 요청했다.

같은 날 돌아온 답은 한 문장이었다. “구체적으로, 귀하의 앱은 이용자가 면세가 아닌 조직에 기부하도록 하고 있습니다.” 이어 면세임을 입증하는 문서를 첨부하거나, 기부 기능을 제거하거나, Play 결제를 쓰라는 세 갈래 선택지가 반복됐다. 501(c)(6) 결정문이 왜 불충분한지에 대한 설명은 없었다.

이후는 예고된 수순이었다. 8월 27일 AnkiDroid 2.25.0alpha3가 제출됐고, 8월 28일 버전 코드 122400300이 거부됐다. 같은 날 “추가 대응 필요” 통지가 다시 왔다. 9월 11일부터 인도와 러시아에만 공개하고, 수정하지 않으면 나머지 국가·지역에서 삭제한다는 내용이다. 8월 29일, 메인테이너는 사건 전말을 GitHub 이슈로 공개하면서 두 가지를 요청했다. Google에는 501(c)(6) 결정문이 “면세 기부” 요건을 충족하는지에 대한 해명을, 독자에게는 이 글을 널리 공유하되 Google 지원에 직접 연락하지는 말아 달라는 부탁을. 그리고 결론을 적었다. “우리는 Play 스토어 빌드 2.24.X에서 후원 링크를 즉시 제거할 수밖에 없으며, 항의하는 뜻으로(under protest) 그렇게 한다."

"면세”는 조직의 지위인가 거래의 성질인가

정책 문구를 정확히 읽으면 이 다툼의 구조가 드러난다. Google 결제 정책의 본칙은 “섹션 3 등에 기술된 조건을 제외하고, 앱은 이용자를 Google Play의 결제 시스템 이외의 결제 수단으로 유도해서는 안 된다”이다. 그리고 섹션 3은 Play 결제가 “면세 기부가 포함된 결제에는 사용되어서는 안 된다”고 적는다. 문면 그대로 읽으면 면세 기부는 Play 결제를 쓰면 안 되는 범주이고, 따라서 외부 결제로 유도하는 것이 허용되는 예외에 해당한다. AnkiDroid의 해석은 이것이었고, 마이크가 “허용하도록 설계된 바로 그 사례”라고 쓴 근거도 여기다.

문제는 “면세 기부(tax exempt donations)“라는 표현이 무엇을 가리키는지가 정해져 있지 않다는 것이다. 여기서 미국 세법의 구분이 결정적으로 중요하다.

501(c)(3)은 자선·교육·종교 목적의 단체다. 이 단체는 연방소득세를 면제받고, 동시에 기부자가 낸 기부금을 소득에서 공제받을 수 있다. 501(c)(6)은 사업자단체·업계단체 유형이다. 이 단체 역시 연방소득세를 면제받지만, 기부자에게는 공제 혜택이 없다. 즉 “단체가 면세인가”와 “기부금이 기부자에게 공제되는가”는 서로 다른 두 개의 질문이고, 501(c)(6)은 첫 질문에 예, 두 번째 질문에 아니오로 답한다.

Open Source Collective 자신도 이 점을 문서로 명시한다. HN 토론에서 한 참가자가 Open Source Collective 공식 문서를 인용해 지적했듯, 이 단체는 501(c)(6)이므로 등록된 501(c)(3) 자선단체가 아니며 회원 프로젝트에 대한 기부는 세액공제 대상이 아니다. 같은 문서는 오픈소스 기부가 FOSS라는 이유만으로 자동으로 자선으로 분류되지는 않는다는 IRS 지침과 이것이 일관된다고 덧붙이고, 명확한 자선 목적이 있는 프로젝트라면 501(c)(3) 재정 호스트를 찾으라고 권한다 (@SigmundurM).

여기서 HN 토론의 가장 날카로운 지적이 나온다. 한 참가자는 Google의 정책 문구와 이메일이 서로 다른 것을 말하고 있다고 정리했다. 정책 원문은 “면세 기부”라고 써서 거래의 성질을 가리키는데, 8월 6일과 8월 7일 이메일은 “면세 단체”라고 써서 수취인의 지위를 가리킨다. 그는 결제 처리자라면 소득세가 아니라 판매세를 다루는 입장이므로 수취인의 지위가 아니라 거래 자체의 과세 여부를 걱정하는 것이 논리적일 텐데, 이메일을 쓴 사람이 이 둘을 뒤섞고 있다고 짚었다 (@dataflow). 다른 참가자는 더 단순하게 정리했다. 이 기부금들은 면세가 아니며, 면세인 것은 501(c)(3)이고, Google Pay를 통해 결제한다면 그 결제는 이용자에게 면세여야 한다는 것이다 (@free652).

그러나 같은 토론에서 반론도 즉시 나왔다. 한 참가자는 정책이 전혀 명확하지 않다고 반박하면서, “면세 기부”가 (1) 수취인이 그 돈에 소득세를 내지 않는다는 뜻인지, (2) 판매세가 붙지 않는다는 뜻인지, (3) 기부자가 소득공제를 받을 수 있다는 뜻인지 아무도 합의하지 못한다고 지적했다. 그리고 501(c)(3)과 501(c)(6)을 가르는 유일하게 말이 되는 기준은 (3)일 텐데, 하필 그 해석이 문면상 근거가 가장 약하다고 덧붙였다 (@NoboruWataya).

이것이 이 글의 논점이다. 정책 문구의 모호성은 그 자체로 재량권이다. 심사자는 세 가지 해석 중 아무거나 고를 수 있고, 개발자는 어느 해석을 반박해야 하는지조차 알 수 없다. 게다가 8월 7일 회신은 모호한 것을 넘어 사실관계에서 틀렸다. IRS가 “연방소득세를 면제받는다”고 문서로 결정해 준 조직을 두고 “면세가 아닌 조직”이라고 단정했기 때문이다. 만약 Google이 실제로 뜻한 바가 “기부자에게 공제되는 기부”였다면, 그 말을 쓰면 됐다. 그러면 AnkiDroid는 7월 21일에 결론을 알았을 것이고 40일을 쓰지 않았을 것이다.

절차의 비대칭도 같은 방향을 가리킨다. 창구는 사람이 아니라 티켓이고, 회신 주기는 최대 7일이며, 근거 제시는 스크린샷 파일명이고, 항소의 결과는 같은 문장의 반복이었다. HN에서는 이런 경험이 예외가 아니라 규칙이라는 증언이 이어졌다. 한 개발자는 Google과 일하는 것은 고역이며 사람과 대화할 방법이 없고 모든 문의가 같은 자동 생성 답변과 같은 문서 링크로 돌아온다고 적었다 (@alerighi). 다른 참가자는 이 사건이 자사 약관의 사실관계조차 정렬하지 못하는 조잡한 자동 심사의 산물로 보인다고 평했다 (@j45).

그리고 이것은 처음이 아니다. 한 참가자는 2019년 WireGuard가 같은 이유로 Play 스토어에서 제거된 전례를 들었다 (@amiga386). Phoronix 보도에 따르면 당시에도 문제는 앱 안에서 WireGuard 웹사이트로 이어지는 후원 링크 하나였고, 개발자 제이슨 도넨펠드의 항소는 기각됐으며, 결국 그는 링크를 제거했다. 같은 정책, 같은 링크, 같은 결말이 7년 만에 반복된 셈이다. 같은 참가자는 여기서 구조적 결론을 끌어냈다. 독점 사업자가 어떤 소프트웨어가 이용자의 기기에서 돌아갈지를 절대적으로 통제하고 아무 이유로나 배포를 거부할 수 있는 앱 스토어 방식에, 소프트웨어를 종속시켜서는 안 된다는 것이다.

이에 대한 현실적 반론도 토론에 있었다. AnkiDroid는 이미 F-Droid에도 올라가 있고 안드로이드에서는 파일 직접 설치도 된다. 진짜 문제는 대다수 이용자가 OEM 번들 계약을 통해 기기에 미리 설치된 스토어만 쓴다는 데 있다. 그래서 선택지는 Google의 규칙을 따르거나, 담장을 넘지 않으려는 이용자 전부를 잃거나 둘 중 하나가 된다 (@brainwad).

탈출구는 있는가, 그리고 순응의 딜레마

Google이 제시한 네 선택지를 하나씩 뜯어보면 탈출구의 폭이 보인다.

Play 결제로 후원을 받는다. 수수료가 붙는다는 문제 이전에, 논리적 순환이 있다. 섹션 3은 애초에 면세 기부에 Play 결제를 쓰지 말라고 적혀 있다. 면세 기부라고 인정받으면 Play 결제를 못 쓰고, 면세 기부가 아니라고 판정받으면 Play 결제를 써야 한다. 어느 쪽이든 자율적으로 선택할 수 있는 영역이 아니다.

대체 결제 시스템에 등록한다. 형식상 가능하다. 다만 HN의 한 참가자가 해당 지원 문서를 인용해 지적했듯, 2026년 10월 1일부터는 이 경로를 쓰더라도 “해당하는 Play 서비스 수수료”를 내야 한다 (@zetanor). 스토어 밖에서 결제를 받아도 수수료는 따라온다는 뜻이다.

F-Droid 등 대체 배포로 옮긴다. 이용 경험 자체는 만족스럽다는 증언이 여럿 있었다 (@akshayrajeshwar, @skeledrew). 그러나 토론의 상당 부분은 이 경로의 수명에 회의적이었다. 여러 참가자가 keepandroidopen.org의 문안을 인용해, 2027년부터 Google에 등록하고 계약에 서명하고 비용을 지불하고 정부 발행 신분증을 제출하지 않은 개발자의 앱은 모두 차단되며 예외가 없다는 예고를 근거로 들었다 (@Flimm, @iririririr). 이 예고의 최종 형태가 어떻게 될지는 아직 확정된 사실이 아니다 [가정]. 다만 방향이 배포 자율성을 좁히는 쪽이라는 점은 토론 참가자 다수가 공유한 인식이었다.

PWA로 간다. 한 참가자는 Apple이 설치 버튼을 공유 메뉴 안으로 옮겨 PWA를 사실상 보이지 않게 만들었다고 지적하면서, 모든 플랫폼에서 PWA 설치 팝업을 허용하도록 의무화해야 한다고 주장했다 (@maelito). AnkiDroid처럼 오프라인 우선의 학습 앱은 기술적으로는 웹앱으로 성립할 수 있지만, 설치 동선이 플랫폼 사업자에 의해 억눌리는 한 배포 채널로서는 약하다.

남는 것이 순응의 딜레마다. AnkiDroid는 “항의하면서도 제거한다”를 택했다. HN에는 냉소가 곧바로 붙었다. 결국 따르는 것 아니냐는 지적이다 (@sunaookami). 반대 방향의 비판도 있었다. 링크를 제거해 순응하면 Google은 아무 대가 없이 넘어가고 이용자는 아무것도 눈치채지 못하니, 이런 중단은 오히려 이용자에게 도달하게 두어야 한다는 것이다 (@LoganDark). 실용적 조언도 있었다. Open Collective 링크를 지우고 홈페이지를 가리키면 의욕 있는 후원자는 알아서 찾아온다는 것이다 (@orsenthil).

세 입장 모두 일리가 있지만, 단일 배포 채널에 의존하는 프로젝트에게 저항은 곧 이용자를 인질로 삼는 일이 된다. 1000만 설치 중 Play 밖까지 따라올 비율이 얼마인지 아무도 모르고, 의학 교육이나 어학 학습을 위해 앱을 쓰는 사람 대부분은 이 분쟁을 알 이유가 없다. 항의를 관철하려면 그들의 학습을 볼모로 걸어야 한다. AnkiDroid의 선택은 비겁함이 아니라 이 비대칭의 산물로 읽는 쪽이 정확하다.

여기서 실무자에게 남는 교훈은 단순하다. 자금 조달 경로를 배포 플랫폼에서 분리하라. 구체적으로는 네 가지다. 첫째, 후원 안내를 앱 바이너리 안이 아니라 프로젝트 홈페이지·README·릴리스 노트처럼 스토어 정책이 미치지 않는 표면에 둔다. 둘째, 후원 채널을 하나에 몰지 않는다. GitHub Sponsors 같은 병행 경로를 미리 열어 두라는 제안이 토론에도 있었다 (@westurner). 셋째, 재정 호스트의 세법 지위를 미리 확인하고 그것이 각 플랫폼 정책 문구에 어떻게 매핑되는지 따져 둔다. 501(c)(6) 재정 호스트를 쓰고 있다면 “기부금은 공제 대상이 아니다”가 이미 공식 문서에 적혀 있으므로, 501(c)(3)을 예시로 든 정책에서는 처음부터 통과하지 못한다고 가정하는 편이 안전하다. 넷째, F-Droid나 직접 배포 채널을 평시에 운영해 이용자 이전 비용을 미리 낮춰 둔다. 위기가 닥친 뒤에 대체 채널을 만들면 이미 늦다.

앞으로의 시나리오는 세 갈래다. 낙관적으로는 Google이 “면세 기부”를 “기부자에게 공제 가능한 기부”로 명확히 고쳐 쓰고, 501(c)(6) 재정 호스트를 별도 항목으로 인정한다. 비관적으로는 정의를 명확히 하되 좁게 잡아 501(c)(3)만 허용한다. 그러면 Open Collective 계열에 얹혀 있는 상당수 오픈소스 프로젝트가 앱 내 후원 경로를 한꺼번에 잃는다. 현실적으로는 문구가 그대로 남고 사안별 재량이 계속될 가능성이 가장 높다. 화제가 된 프로젝트는 예외적으로 구제되고, 화제가 되지 못한 프로젝트는 조용히 링크를 지운다. AnkiDroid가 “Google 내부의 도울 수 있는 사람에게 공유해 달라, 다만 지원 창구에는 직접 연락하지 말라”고 명시한 것은, 공식 항소 절차가 아니라 화제성이 실질적 구제 경로임을 인정한 문장에 가깝다.

결론

앱 스토어가 후원 링크를 끊는 것은 결제 정책의 집행인가, 자금줄 통제인가. 이 사건의 답은 둘 중 하나를 고르는 데 있지 않다. Google의 문면은 결제 정책이고, 실제 효과는 자금줄 통제다. 의도가 어느 쪽이었는지는 외부에서 확인할 수 없고, 확인할 필요도 없을지 모른다. 결정적인 것은 의도가 아니라 절차의 구조이기 때문이다. 정의되지 않은 용어가 정책에 남아 있고, 그 용어의 해석권이 한쪽에만 있으며, 해석에 대한 실효적 이의제기 수단이 없다면, 그 정책은 규칙이 아니라 재량이다.

8월 7일 회신의 한 줄이 이 사건 전체의 축소판이다. IRS가 문서로 면세라고 결정해 준 조직을 두고 “면세가 아닌 조직”이라고 단정하면서, 왜 그런지는 말하지 않았다. 개발자가 할 수 있는 일은 반박이 아니라 추측이었고, 추측으로는 40일을 이겼을 리 없다. 결국 남은 선택지는 1000만 명의 이용자를 볼모로 잡거나, 항의를 문서로 남기고 링크를 지우거나였다.

그래서 이 이야기는 AnkiDroid의 이야기가 아니다. 앱을 하나라도 스토어에 올려 둔 모든 오픈소스 프로젝트의 이야기다. 질문은 이렇게 바뀌어야 한다. 내일 아침 당신의 프로젝트가 같은 메일을 받는다면, 자금 조달은 며칠 만에 끊기는가. 그리고 그 며칠 사이에, 당신이 링크를 지우는 것 말고 실제로 할 수 있는 일이 하나라도 있는가.


출처: