이 문서는 DESIGN WORKBENCH를 zip 공유용 개인 도구에서 Chrome Web Store에 등록 가능한 확장앱으로 준비하는 과정입니다. 기초 과정에서는 zip 압축 해제 -> chrome://extensions -> 압축해제된 확장 프로그램 로드까지만 다루고, 이 문서는 공개 배포나 비공개/제한 배포를 원할 때 사용합니다.
참고한 로컬 자료:
C:\Users\sound\.codex\skills\chrome-extension-webstore-builder\references\webstore-submission-playbook.mdC:\Users\sound\.codex\skills\chrome-extension-webstore-builder\references\release-checklist.mddocs/store-listing.mddocs/privacy.md
공식 확인 기준:
- Chrome Developer Dashboard에서 zip 업로드 후
Store Listing,Privacy,Distribution,Test instructions탭을 채웁니다. - Privacy 탭에는 단일 목적, 권한 사유, 원격 코드 여부, 데이터 사용 선언, 개인정보처리방침 URL이 필요합니다.
- 설명, 아이콘, 스크린샷이 비어 있거나 부정확하면 거절될 수 있습니다.
1. 등록 전에 결정할 것
먼저 이 확장을 누구에게 배포할지 정합니다.
| 방식 | 언제 쓰나 |
|---|---|
| Public | 누구나 검색해서 설치할 수 있게 공개할 때 |
| Unlisted | 링크를 아는 사람만 설치하게 할 때 |
| Private / Trusted testers | 일부 사용자에게만 테스트 배포할 때 |
| Enterprise | 조직 단위 배포가 필요할 때 |
이 프로젝트는 처음에는 Unlisted 또는 제한 테스트가 적합합니다. 지인에게 zip을 나눠주던 흐름에서 웹스토어 링크 공유로 자연스럽게 넘어갈 수 있습니다.
2. 개발자 계정 준비
필요한 것:
- Google 계정
- Chrome Web Store Developer Dashboard 접속
- 개발자 등록
- 계정 2단계 인증
- 개인정보처리방침을 올릴 공개 HTTPS URL
실무 팁:
- 개인정보처리방침은 GitHub Pages로 올리는 것이 가장 쉽습니다.
docs/privacy.md를 HTML로 바꿔 공개 URL을 만들면 됩니다.- 등록용 이메일이나 GitHub Issues 같은 지원 채널도 정해 둡니다.
3. 출시 zip 만들기
웹스토어에는 프로젝트 폴더 전체가 아니라 실행에 필요한 파일만 들어간 zip을 올립니다.
현재 프로젝트에서는 다음 명령을 씁니다.
1 | .\build.ps1 |
생성 예시:
1 | dist/workbench-v3.0.0.zip |
웹스토어용 zip에 들어가야 하는 것:
1 | manifest.json |
넣지 않는 것이 좋은 것:
1 | docs/ |
4. 업로드 전 품질 검사
최소 검사:
1 | node --check app.js |
매니페스트 참조 검사:
1 | @' |
체크리스트:
manifest_version이 3인가- 모든 manifest 참조 파일이 존재하는가
- 권한이
sidePanel,storage,tabs처럼 필요한 것만 있는가 - 원격 스크립트 로딩이나
eval이 없는가 - 개인정보처리방침이 실제 동작과 일치하는가
- 아이콘 16/32/48/128이 있는가
- 스크린샷을 실제 앱 화면으로 준비했는가
5. Developer Dashboard 업로드
절차:
- Chrome Web Store Developer Dashboard 접속
Add new item클릭dist/workbench-v3.0.0.zip업로드- manifest 오류가 없는지 확인
- 좌측 메뉴의 탭을 하나씩 채움
주요 탭:
| 탭 | 하는 일 |
|---|---|
| Package | 업로드된 zip과 버전 확인 |
| Store Listing | 이름, 요약, 설명, 스크린샷, 카테고리 |
| Privacy | 단일 목적, 권한 사유, 데이터 사용 선언, 개인정보처리방침 |
| Distribution | 공개 범위, 국가, 가격 |
| Test instructions | 심사자가 기능을 확인하는 방법 |
6. Store Listing 입력 예시
자세한 복붙용 문구는 docs/store-listing.md에 있습니다.
추천 이름:
1 | Workbench - Creator/Dev/Marketing/Education |
한 줄 설명:
1 | 창작자, 개발자, 마케터, 교육자를 위한 직군별 도구를 워크플로 프리셋과 키보드 우선 UI로 묶은 Chrome 사이드패널. |
카테고리:
1 | Productivity |
설명 작성 원칙:
- 기능을 실제 동작 기준으로 씁니다.
- 키워드를 반복해서 나열하지 않습니다.
- “최고”, “유일”, “공식” 같은 검증 어려운 표현을 피합니다.
- 개인정보와 권한 설명이 Privacy 탭과 충돌하지 않게 합니다.
7. 스크린샷 준비
최소 1장이 필요하지만 3-5장을 추천합니다.
추천 캡처:
- 메인 화면: 도메인 스위처, 프리셋, 카드 리스트
- Command Palette 열린 화면
- 상세 Drawer 화면
- 개인 워크벤치에 도구가 담긴 화면
- 다크/라이트 테마 비교
권장 이미지:
- 스크린샷: 1280x800 또는 640x400
- 스토어 아이콘: 128x128
- 선택 프로모션 이미지: 440x280, 1400x560
8. Privacy 탭 작성
이 앱의 핵심 답변은 “로컬 저장, 외부 전송 없음”입니다.
단일 목적 예시:
1 | 창작자, 개발자, 마케터, 교육자가 자주 쓰는 도구를 Chrome 사이드패널에서 워크플로 단위로 탐색하고 실행할 수 있게 합니다. |
권한 사유:
1 | sidePanel: |
원격 코드:
1 | No. 이 확장 프로그램은 원격 코드를 다운로드하거나 실행하지 않습니다. |
데이터 사용 선언:
1 | 사용자 데이터를 외부 서버로 전송하지 않습니다. 즐겨찾기, 메모, 컬렉션, 최근 사용, 클릭 카운트, 워크벤치 큐는 chrome.storage.local에만 저장됩니다. |
주의:
- favicon 이미지는
https://www.google.com/s2/favicons에서 불러옵니다. - 이것은 도구 도메인 아이콘 표시 목적이며, 자체 서버로 사용자 데이터를 보내는 기능은 아닙니다.
- 이 내용은
docs/privacy.md에도 일관되게 적혀 있어야 합니다.
9. 개인정보처리방침 URL 만들기
웹스토어에는 공개 HTTPS 개인정보처리방침 URL이 필요합니다.
추천 방식:
- GitHub 공개 저장소를 만듭니다.
docs/privacy.md내용을privacy.html또는 GitHub Pages 문서로 공개합니다.- GitHub Pages를 켭니다.
- 생성된 URL을 Privacy 탭에 입력합니다.
예시:
1 | https://<your-handle>.github.io/workbench/privacy.html |
10. Test Instructions 작성
심사자가 로그인이나 특별한 계정 없이 기능을 확인할 수 있게 씁니다.
예시:
1 | 1. 확장 프로그램을 설치합니다. |
11. Distribution 설정
처음 제출할 때 추천:
- 가격: Free
- 공개 범위: Unlisted 또는 Trusted testers로 시작
- 지역: 특별한 이유가 없다면 전체
- 게시 방식: 심사 통과 후 수동 게시를 선택하면 더 안전합니다.
12. 제출 전 마지막 체크
제출 버튼을 누르기 전:
Cannot submit항목을 열어 모든 blocker를 제거합니다.- Store Listing에 설명, 아이콘, 스크린샷이 들어갔는지 확인합니다.
- Privacy 탭에서 권한 사유가 모두 채워졌는지 확인합니다.
- 개인정보처리방침 URL이 외부에서 열리는지 확인합니다.
- zip 버전이
manifest.json의 version과 맞는지 확인합니다. - 제출 후 상태가 pending review로 바뀌는지 확인합니다.
13. 반려되었을 때 대응
반려되면 한 번에 많은 것을 바꾸지 말고, 리뷰어가 지적한 항목과 연결되는 최소 수정만 합니다.
자주 나오는 문제:
| 문제 | 대응 |
|---|---|
| 스크린샷 부족 | 실제 사용 화면 스크린샷 추가 |
| 권한 사유 부족 | sidePanel, storage, tabs 사유를 구체화 |
| 개인정보처리방침 URL 오류 | 공개 HTTPS URL로 교체 |
| 원격 코드 답변 불일치 | 구현과 Privacy 답변을 일치시킴 |
| 설명이 모호함 | 단일 목적과 실제 기능 중심으로 수정 |
수정 후:
- 코드나 문서 수정
manifest.jsonversion 증가.\build.ps1- 새 zip 업로드
- 간단한 수정 설명과 함께 재제출
14. 버전 업데이트 절차
새 버전을 배포할 때:
1 | 1. manifest.json의 version을 올립니다. |
예시:
1 | "version": "3.0.1" |
버전 규칙:
- 작은 문구 수정/버그 수정:
3.0.1 - 기능 추가:
3.1.0 - 구조가 크게 바뀜:
4.0.0
15. 수업에서 고급과정으로 가르치는 순서
추천 진행:
- 기초 과정에서 만든 zip을 다시 빌드한다.
- zip 안에 들어간 파일과 빠진 파일을 비교한다.
manifest.json권한을 하나씩 설명한다.docs/privacy.md를 읽고 실제 동작과 맞는지 검토한다.docs/store-listing.md의 문구를 Dashboard 입력값으로 바꾼다.- 스크린샷 3장을 만든다.
- Privacy 탭 답변을 작성한다.
- Test instructions를 작성한다.
- 제출 전 checklist를 돌린다.
- 실제 제출은 선택 과제로 둔다.
이 순서로 가르치면 초보자는 “코드를 완성하는 것”과 “배포 가능한 제품으로 설명하는 것”이 다르다는 점을 배울 수 있습니다.
댓글
GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.