"zip upload. Chrome 이 review. 어떤 날은 2 시간 안에 publish, 다른 날은 일주일 걸림. Lesson 3 가 dashboard 가 요청하는 거, submission 이 hold up 되는 거, reviewer 가 실제로 read 하는 privacy policy."
Dashboard 설정
chrome.google.com/webstore/devconsole. 일회성 설정:
- 일회성 $5 developer 등록 fee 지불. 취미자와 기업 모두 같은 fee.
- Developer email 검증 (Google 이 표준 email loop 통해 검증).
- Monetize 계획 있으면 payment profile 추가 (free extension 은 건너뛰기 가능).
Dashboard 가 extension list; 각 새 extension 이 만들고 zip upload 하는 새 "Item".
Listing field
Extension 당 채울 것:
- Title — user 가 검색 결과에서 보는 것. 최대 45 자. 기술적: 'ClipDeck — save text clips' 가 'ClipDeck' 보다 나음.
- Summary — 한 줄 pitch. 최대 132 자. 검색-결과 subhead.
- Description — long-form. Markdown 비슷. 뭘 하는지, 뭘 안 하는지, 누구 위한 건지.
- Category — Productivity / Communication / Developer Tools 등. 가장 정확한 거 선택; reviewer 가 틀리면 re-categorize.
- Language — primary store 언어. 나중에 Web Store 의 번역 시스템 OR manifest 의
_locales디렉토리 통해 localize 가능. - Visibility — Public / Unlisted / Private (Google Workspace only). Submission 전 선택; 나중에 변경 가능하지만 각 변경이 review 재trigger.
- Permission justification — manifest 가 선언하는 각 permission 에, 왜인지 한 문단 설명. Reviewer 가 이거 read. 모호한 답 ('feature 위해 필요') 가 hold; specific 한 거 ('downloads 가 popup 에서 trigger 되는 Export Clips feature 에 사용') 가 통과.
Privacy Policy URL
User data 처리하는 모든 extension 에 required — chrome.storage.local 포함. 최소 정당한 content:
- Extension 이 뭘 collect 하는지 (clip text / source URL / source title).
- 그 data 가 어디 사는지 (user 머신에 local, chrome.storage.local 에).
- 어디든 transmit 되는지 (true 면 "안 됨" 이 완전 받아들일 만한 답).
- User 가 어떻게 제어하는지 (export, delete, uninstall 이 모든 것 제거).
제어하는 domain 에 정책 host (GitHub Pages 가 fine 동작). 정직한 영어 두 문단이 충분 — Chrome reviewer 가 truth 원함, GDPR boilerplate 아님. Template paste 안 함; reviewer 가 알아챔.
Single Purpose Policy
Chrome 이 여러 무관 feature bundle 하는 extension 거부. 'ClipDeck — save text clips, browse them in a side panel' 가 한 목적, 네 interface (popup / panel / hotkey / omnibox). 'ClipDeck Plus — save clips AND generate passwords AND auto-translate' 가 세 목적; 세 extension 으로 ship.
판단이 가끔 fuzzy. Clip 도 export 하는 clip-saver 는 fine (export 가 clip lifecycle 일부). Email 도 읽는 clip-saver 는 안 됨 (email 이 다른 domain). 헷갈리면, 목적 한 문장으로 쓰고 물어 봐: user 가 그 문장에서 모든 feature 기대할까? Yes 면 fine. 놀랄 거면 split.
Review process
Submission 이 자동화 체크 먼저 (분 안에), 다음 human review (시간에서 일까지). 자동화 체크: manifest validation / malware scanning / permission consistency. Human review: description read, screenshot click, extension install, exercise. 뭐든 불명확하면 원하는 것 설명하는 note 와 submission hold; dashboard 에서 응답하고 re-submit.
흔한 hold:
- 모호한 permission 정당화 — reviewer 가 permission 왜 필요한지 알 수 없음.
- Privacy policy mismatch — manifest 가 policy 가 언급 안 하는 거 collect.
- Description 이 behavior 와 mismatch — 동작 안 하는 기술된 feature, 또는 기술 안 된 동작하는 feature.
- Trademark 이름 — permission 없이 title 에 'Chrome' / 'Google' / 유명 trademark 사용.
- Spam-like wording — description 의 keyword 채우기 ('best fastest most amazing clip saver').
Update cadence
각 update 가 fresh review. Patch 가 보통 시간 안에 통과; permission 변경이 더 깊은 look trigger. 매 upload 마다 manifest version bump — Chrome 이 같은 version 의 re-upload 거부. Semver 느슨하게 사용: 1.0.0, 1.0.1, 1.1.0 등.