AI로 만든 크롬 확장이 웹스토어 심사에서 걸리는 지점 6가지

AI로 만든 크롬 확장이 웹스토어 심사에서 걸리는 지점 6가지

알려드립니다. 이 글에서 소개한 무료 도구와 유료 템플릿은 이 블로그를 운영하는 PC Wise AI가 만들어 제공하는 것입니다. 유료 템플릿이 판매되면 그 대금은 저희에게 돌아갑니다. 무료 도구는 결제나 가입 없이 쓰실 수 있습니다.

AI에게 시켜서 크롬 확장 프로그램을 만드는 일이 전보다 쉬워졌습니다. 그런데 기능이 다 돌아가는데도 웹스토어에 올리는 단계에서 막히는 일이 있습니다. 코드가 잘못돼서가 아니라, 심사에서 보는 기준이 개발할 때 신경 쓰는 기준과 다르기 때문입니다.

거절 메일에는 위반한 정책과 함께 Purple Potassium, Blue Argon 같은 두 단어짜리 식별자가 옵니다. 색깔과 원소 이름의 조합인데, 처음 보면 무슨 뜻인지 알기 어렵습니다. 각 식별자가 어떤 정책을 가리키는지는 구글이 공개한 문제 해결 문서에 정리돼 있습니다.

아래는 구글이 공개한 문제 해결 문서에 정리된 항목 중, AI에게 코드를 맡겼을 때 점검하지 않고 넘어가기 쉬운 것들입니다.

1. 권한을 넉넉하게 넣어둔 경우

식별자: Purple Potassium (과도한 권한)

기능을 먼저 돌아가게 만들다 보면 권한을 넉넉하게 잡아두게 됩니다. all_urls, tabs, storage, scripting을 일단 넣어두고 시작하는 식입니다. 개발 중에는 편하지만 심사 기준은 다릅니다.

구글이 이 항목에서 보는 것은 두 가지입니다.

  • 선언은 했는데 코드에서 한 번도 쓰지 않는 권한
  • 쓰고는 있지만 더 좁은 권한으로도 같은 기능이 되는 경우

두 번째는 실제로 쓰고 있으니 괜찮다고 생각하기 쉬운 쪽입니다. 특정 도메인에서만 동작하는 확장이 모든 사이트 접근 권한을 요구하는 경우가 여기 해당합니다. 매니페스트를 열어 권한마다 이게 없으면 어떤 기능이 안 되는지, 그리고 더 좁은 권한으로 대체되지 않는지를 함께 확인하시는 편이 좋습니다. tabs 대신 host permission이나 activeTab으로 되는 경우, 넓은 host permission 대신 특정 origin이나 선택적 권한으로 되는 경우가 있습니다.

2. 외부에서 코드를 받아 실행하는 경우

식별자: Blue Argon (Manifest V3의 원격 코드 관련 요건)

매니페스트 V3에서는 확장이 실행하는 로직이 원칙적으로 패키지 안에 들어 있어야 합니다. 데이터를 외부에서 받아오는 것은 괜찮지만, 로직을 받아와 실행하는 것은 원격 코드로 봅니다. User Scripts API나 격리된 sandbox처럼 정책상 예외로 정해둔 경우가 있으니, 해당한다고 생각되면 그 요건을 따로 확인하셔야 합니다.

구글 문서가 예로 드는 것들입니다.

  • 패키지 밖 주소를 가리키는 스크립트 태그
  • 원격에서 가져온 문자열을 eval 함수 같은 방법으로 실행하는 것
  • 받아온 로직을 해석해 실행하는 구조

CDN에서 라이브러리를 불러오는 코드를 그대로 두면 여기 걸립니다. 필요한 라이브러리는 패키지에 포함해 함께 올려야 합니다. 스크립트 태그만 볼 것이 아니라 동적 import, worker나 WASM을 원격에서 불러오는 부분, 그리고 번들에 포함한 제3자 라이브러리가 실행 중에 따로 코드를 내려받는지까지 함께 확인하셔야 합니다.

3. 코드를 알아보기 어렵게 만든 경우

식별자: Red Titanium (난독화)

구글은 공백과 주석 제거, 변수·함수명 축약, 파일 결합을 명시적으로 허용합니다. 일반적인 번들 결과물이 읽기 불편하다는 이유만으로 위반이 되지는 않습니다. 문제가 되는 것은 동작을 감추려는 난독화입니다. 실행 흐름을 일부러 뒤섞거나 문자열을 인코딩해 숨기는 처리를 넣었다면 그 옵션을 꺼야 합니다. 소스맵을 첨부한다고 해소되는 문제는 아닙니다.

4. 설명과 실제 동작이 다른 경우

식별자: Yellow Magnesium (기능이 설명대로 동작하지 않음), Yellow Zinc (등록정보 부족)

심사 과정에서 실제 동작이 확인될 수 있습니다. 그래서 이런 것들이 걸립니다.

  • 매니페스트에 적힌 파일이 패키지에 없는 경우
  • 로그인이 필요한데 확인할 방법을 함께 제공하지 않은 경우 (개발자 대시보드의 테스트 안내에 절차와 계정을 적을 수 있습니다)
  • 연동한 서버가 심사 시점에 꺼져 있는 경우
  • 설명은 여러 기능을 말하는데 실제로는 하나만 동작하는 경우

등록정보 쪽은 길이가 아니라 기능을 알아볼 수 있게 설명했는지가 기준입니다. 스크린샷이 없거나 설명이 실제 기능을 알려주지 못하면 여기 걸립니다.

5. 기능이 여러 개 섞인 경우

식별자: Red Copper 등 (단일 목적)

확장은 하나의 목적을 가져야 하고, 기능들이 그 목적을 위해 있어야 합니다. 기능을 붙이다 보면 서로 관계없는 것이 한 확장에 들어가기 쉽습니다. 이 경우 선택지는 두 가지입니다. 부수 기능을 빼서 목적을 좁히거나, 확장을 나누는 것입니다. 나누면 등록정보와 심사를 각각 다시 거쳐야 하니 어느 쪽이 나은지는 상황에 따라 다릅니다.

6. 개인정보 처리방침이 형식만 갖춘 경우

식별자: Purple Lithium (개인정보 처리방침), Purple Nickel (고지와 동의)

처리방침에는 어떤 데이터를 수집해 어떻게 쓰고 누구와 공유하는지가 적혀 있어야 하고, 대시보드의 지정된 칸에 실제로 열리는 주소를 등록해야 합니다. 템플릿을 그대로 붙여넣어 우리 확장이 다루는 데이터가 빠져 있으면 여기 걸립니다.

처리방침만으로 끝나지 않는 부분도 있습니다. Purple Nickel은 데이터를 수집하기 전에 알아보기 쉽게 고지하고 사용자의 동의를 받을 것을 요구합니다. 그리고 2026년 8월 1일부터는 확장의 단일 목적과 밀접하게 관련된 데이터를 수집하는 경우까지 포함해 모든 데이터 수집을 명확히 고지하도록 바뀌었습니다. 예전 기준으로 만든 확장이라면 이 부분을 다시 보셔야 합니다.

제출 전에 확인할 것

실제로 제출할 zip을 기준으로 보시는 게 좋습니다. 개발 중인 폴더와 빌드 결과가 다를 수 있기 때문입니다.

  1. 권한마다 없으면 안 되는 이유를 적어보고, 더 좁은 권한으로 대체되는지 함께 본다
  2. 외부 스크립트뿐 아니라 동적 import, 원격 worker·WASM, 라이브러리가 실행 중 내려받는 코드가 있는지 본다
  3. 동작을 감추는 난독화 옵션이 켜져 있지 않은지 본다 (압축과 이름 축약은 그대로 두어도 됩니다)
  4. 확장이 하나의 목적으로 설명되는지, 제목·아이콘·설명·스크린샷에 주요 기능이 드러나는지 본다
  5. 제출할 패키지를 직접 .crx로 만들어 설치해본다 (구글은 압축하지 않은 상태와 패키징한 상태의 동작이 다를 수 있다고 안내합니다). 로그인이나 특별한 절차가 필요하면 대시보드의 테스트 안내에 절차와 계정을 적는다
  6. 처리방침에 수집·이용·공유 내용이 있는지, 대시보드에 주소를 등록했는지 본다. 그리고 수집하는 데이터가 고지되어 있는지 확인한다 (별도 화면이 반드시 있어야 하는 것은 아니고, 스토어 등록정보의 고지로 충족되는 경우도 있습니다)

이미 거절 메일을 받으셨다면

메일에 적힌 식별자를 먼저 확인하세요. 그 두 단어가 어떤 정책을 가리키는지 알면 볼 곳이 줄어듭니다. 구글이 공개한 식별자 목록과 각각의 의미를 정리해 둔 페이지를 만들어 두었습니다.

크롬 웹스토어 거절 식별자 목록 보기 (영문)

권한 사유를 어떻게 써야 하는지, 원격 코드로 판단되는 범위가 어디까지인지는 따로 정리해 두었습니다.

여기 적은 것은 구글이 공개한 문서를 기준으로 정리한 내용이고, 심사 판단은 구글이 합니다. 같은 정책이라도 확장마다 걸리는 지점이 달라서, 실제 거절 사유는 코드와 등록정보를 함께 봐야 좁혀집니다.

함께 보면 좋은 글

거절 메일에 적힌 코드가 무슨 뜻인지 바로 보고 싶으시면 한국어 코드 조회 도구를 쓰세요. 붙여넣으면 찾아줍니다. 무료입니다.


AI가 짠 코드를 그대로 내기 전에

여기 적은 여섯 가지는 사람이 짜든 AI가 짜든 심사에서 똑같이 봅니다. 다만 AI가 만든 결과물은 권한을 넉넉히 넣고 외부 스크립트를 끌어 쓰는 경향이 있어서 더 자주 걸립니다. 제출 전에 항목별로 확인하실 수 있게 정리한 Chrome Web Store 제출 키트가 있습니다. 심사 항목 체크리스트, 권한 사유 문안 예시, 개인정보 처리방침 템플릿이 들어 있습니다. 자료는 영문입니다 — 스토어에 그대로 제출할 수 있는 형태로 만들었기 때문입니다.

무료로 먼저 확인하시려면 manifest 점검 도구개인정보 처리방침 생성기를 쓰시면 됩니다.

이 글을 쓴 사람

PC Wise AI — 살아남기 위해 학습하고, 무너지지 않으려고 방법을 찾는 사람입니다. 10년 이상 경력의 프로젝트 엔지니어(Project Engineer)로 일하며, 기술이 현장에 도입되고 비용이 집행되는 과정을 지켜본 관점으로 AI·반도체 산업과 자본의 흐름을 정리합니다.

금융투자업 인가를 받은 투자자문업자가 아니며, 이 블로그의 글은 투자 권유가 아닙니다.

자세한 소개 · 문의하기 · 전체 글 보기

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다