Item logo image for nost Bridge

nost Bridge

ExtensionWorkflow & Planning12 users
Item media 1 (screenshot) for nost Bridge

Overview

nost 데스크톱 런처와 브라우저 탭을 로컬 루프백으로 연동. 탭 검색·포커스·분할 배치 지원. 외부 전송 없음.

# nost Bridge — Chrome 웹 스토어 게시 가이드 > **목적**: 이 문서를 따라가면 처음 게시까지 약 1시간(스크린샷 촬영 포함), 심사 통과까지 1–7일 안에 끝납니다. > 마지막 업데이트: 2026-04-27 --- ## 0. TL;DR — 한눈에 보는 흐름 ``` [1] 개발자 계정 등록 ($5 1회) ← 사용자가 직접 (10분) ↓ [2] PRIVACY.md를 공개 URL에 호스팅 ← 사용자가 직접 (5분, GitHub Pages 추천) ↓ [3] 스크린샷·프로모션 이미지 만들기 ← 사용자가 직접 (20–40분) ↓ [4] zip 만들기 ← 스크립트 한 줄 (1분) ↓ [5] 대시보드에서 업로드 + 스토어 등록정보 입력 (이 문서의 §6 복붙) ↓ [6] "검토 제출" ↓ [7] 1–7일 후 승인 (or 거부 → §8 참고) ``` --- ## 1. 개발자 계정 등록 ($5) 1. https://chrome.google.com/webstore/devconsole 접속 2. Google 계정으로 로그인 3. **계정 등록비 $5 USD 1회 결제** (영구, 환불 불가) 4. 본인 인증 (전화번호) 후 대시보드 접속 > **유의**: 이 계정으로 게시한 확장은 모두 본인 명의로 공개됩니다. 이름/이메일이 스토어에 노출됨. --- ## 2. PRIVACY.md 공개 호스팅 (필수) Chrome 웹 스토어는 개인정보 처리방침 **공개 URL**을 요구합니다. 우리 [PRIVACY.md](../PRIVACY.md)를 그대로 쓰면 됩니다. ### 가장 쉬운 방법 — GitHub raw URL 이미 저장소가 public이면 즉시 사용 가능: ``` https://raw.githubusercontent.com/HwigwanJi/nost/main/PRIVACY.md ``` raw URL은 plain text라 스토어에는 받아들여지지만 보기엔 별로 안 좋음. 더 나은 방법: ### 추천 — GitHub Pages 1. 저장소 Settings → Pages → Source: `Deploy from a branch`, Branch: `main` / `(root)` 2. 저장 후 1–2분 대기 3. URL: `https://hwigwanji.github.io/nost/PRIVACY` (또는 `/PRIVACY.md`) > ❗ Pages가 켜진 뒤 PRIVACY.md를 stack-trace 없이 읽히는지 브라우저에서 직접 확인하세요. 스토어는 URL을 자동 검증합니다. ### 대안 — Gist 1. https://gist.github.com 에 PRIVACY.md 내용 그대로 붙여넣고 public으로 저장 2. 가공 없이 사용 --- ## 3. 시각 자산 준비 ### 필수 | 자산 | 픽셀 | 형식 | 위치/생성 방법 | 업로드 방식 | |------|------|------|--------------|------------| | **Toolbar 아이콘** (zip 안) | 16, 48, 128 | PNG | ✅ `chrome-extension/icons/icon{16,48,128}.png` (이미 nost 브랜드 로고) | **zip에 자동 포함** | | **스토어 등록정보 아이콘** | 128×128 (96 + 16px 패딩) | PNG | ✅ `chrome-extension/store-assets/store-icon-128.png` | **대시보드에서 별도 업로드** | | **작은 프로모 타일** | 440×280 | PNG/JPEG | 직접 제작 (피그마/Canva) | 대시보드에서 업로드 | | **스크린샷** | 1280×800 (또는 640×400) | PNG/JPEG | 직접 캡처, 1–5장 | 대시보드에서 업로드 | > **Toolbar vs 등록정보 아이콘의 차이**: > - **Toolbar 아이콘** (zip): 풀-블리드 — 브라우저 툴바의 작은 영역에서 식별성을 높이려고 가장자리까지 채움 > - **등록정보 아이콘** (별도): 96×96 아트 + 16px 투명 패딩 — 스토어 갤러리 페이지에서 다른 확장들과 나란히 놓일 때 시각적 호흡을 줌 > - 둘 다 nost "n" 브랜드 로고로 통일됨 (이전 placeholder 로켓 → 브랜드 로고로 교체 완료) > > **재생성**: 마스터 로고를 바꾸면 `chrome-extension/generate-store-icon.ps1`을 다시 실행해 등록정보 아이콘을 갱신하고, toolbar 아이콘은 `assets/icon-{16,48,128}.png`를 `chrome-extension/icons/`로 다시 복사. ### 선택 | 자산 | 픽셀 | 비고 | |------|------|------| | 마키 프로모 | 1400×560 | Featured/Marquee 영역에 들어가려면 필요 | ### 스크린샷 추천 구성 (5장 채우기) 1. **nost 데스크톱 앱** 메인 화면 — 카드 그리드 + 사이드바 (브랜드 인지) 2. **확장 팝업** — `🚀 nost Bridge / 서버 연결: 연결됨 / 전송 중인 탭: 12개` (확장 자체) 3. **탭 검색·포커스** — 데스크톱 앱에서 카드 클릭 → Chrome 탭 활성화되는 데모 (사용 가치) 4. **분할 배치** — 노드 그룹 실행으로 두 탭이 좌우 분할되는 화면 (고유 기능) 5. **로컬 전용 통신** — 팝업 + "127.0.0.1" 주석 오버레이 (안전성 강조) 캡처는 `Win+Shift+S`로 1280×800 영역 잡으면 됨. 또는 nost 자체 창 크기를 설정에서 1280px로 맞춰 띄우고 풀 캡처. ### 작은 프로모 타일 (440×280) 레이아웃 권장: ``` ┌──────────────────────────────────┐ │ [nost 로고] nost Bridge │ │ │ │ 브라우저 탭을 데스크톱 런처로 │ │ 로컬 루프백 · 외부 전송 없음 │ └──────────────────────────────────┘ ``` 피그마/Canva에서 빠르게 제작. nost의 accent 컬러(보라 계열) 활용. --- ## 4. zip 만들기 ```powershell cd "D:\01_개인\06. launcher\chrome-extension" .\create-store-zip.ps1 ``` 결과: `D:\01_개인\06. launcher\release\nost-bridge-store-1.0.0.zip` 이 zip에는 `manifest.json`, `background.js`, `popup.html/js`, `icons/16,48,128.png`, `_locales/{en,ko}/messages.json`만 들어 있고, dev 전용 파일(`create-icons.js`, `generate-icons.js`, `icon.svg`, 이 스크립트 자체)은 제외됩니다. --- ## 5. 대시보드에 업로드 1. https://chrome.google.com/webstore/devconsole 로그인 2. 우상단 **"새 항목"** 클릭 3. 위 zip 파일 업로드 → 자동 검증 → 등록정보 화면으로 이동 --- ## 6. 스토어 등록정보 — 그대로 복사해서 붙여넣기 ### 6.1 항목 정보 **언어**: 한국어 (기본) + 영어 추가 #### 한국어 등록정보 **이름**: `nost Bridge` **요약 (132자 이내, 검색 노출용)**: ``` nost 데스크톱 런처와 브라우저 탭을 로컬 루프백으로 연동. 탭 검색·포커스·분할 배치 지원. 외부 전송 없음. ``` **자세한 설명 (16,000자 이내, 마크다운 일부 지원)**: ``` nost Bridge는 Windows용 데스크톱 런처 「nost」와 Chrome/Whale 브라우저 탭을 연결하는 보조 확장입니다. ━━━ 무엇을 하나요 ━━━ • 현재 열린 모든 탭의 제목·URL을 nost 런처에 실시간 동기화 • nost 런처에서 탭 검색 후 클릭 한 번으로 해당 탭으로 포커스 • 노드 그룹/덱 실행 시 여러 탭을 좌우/상하로 자동 분할 배치 • 별도 창으로 분리(detach) 또는 새 창으로 열기 동작 지원 ━━━ 데이터 처리 — 100% 로컬 ━━━ • 모든 통신은 사용자 본인 컴퓨터의 127.0.0.1:14502(루프백)으로만 발생 • 외부 서버, 클라우드, 분석 도구 일절 사용 안 함 • 수집·저장하는 사용자 데이터 없음 • 자세한 사항: 개인정보처리방침 참고 ━━━ 권한 사용 이유 ━━━ • tabs / activeTab — 탭 제목·URL을 nost 런처에 보내고, 런처에서 클릭한 탭을 활성화하기 위함 • 호스트 권한 (127.0.0.1:14502) — nost 데스크톱 앱이 듣는 로컬 포트로만 한정. 외부 도메인과 통신하지 않음 ━━━ 사전 요구사항 ━━━ 이 확장은 nost 데스크톱 앱이 같은 컴퓨터에서 실행 중일 때만 동작합니다. 데스크톱 앱이 없으면 팝업에 "연결 안됨"으로 표시되며 다른 영향은 없습니다. nost 데스크톱 앱: https://github.com/HwigwanJi/nost ``` #### 영어 등록정보 **Name**: `nost Bridge` **Summary**: ``` Bridge browser tabs to the nost desktop launcher over local loopback. Search, focus, and tile tabs from your launcher. No external network. ``` **Detailed description**: ``` nost Bridge connects Chromium browsers to the nost desktop launcher (Windows) on the same machine. ━━━ What it does ━━━ • Mirrors title and URL of all open tabs to nost in real time • One-click focus from the launcher's tab search • Auto-tiles multiple tabs side-by-side when launching a node group or deck from nost • Supports detach-to-window and open-in-new-window actions ━━━ Data — 100% local ━━━ • All traffic stays on your machine's loopback interface (127.0.0.1:14502) • No external servers, no analytics, no telemetry • No personal data collected, stored, or transmitted • See the privacy policy for full details ━━━ Permissions ━━━ • tabs / activeTab — to read tab title and URL for the launcher and to focus a tab when you click it in nost • Host permission for 127.0.0.1:14502 — strictly the local port the nost desktop app listens on ━━━ Requirements ━━━ This extension requires the nost desktop app running on the same machine. Without it, the popup will show "Disconnected" — no other effect. nost desktop app: https://github.com/HwigwanJi/nost ``` ### 6.2 카테고리 - **기본 카테고리**: `생산성 (Productivity)` - **언어**: 한국어, 영어 ### 6.3 그래픽 자산 — 대시보드 업로드 항목 좌측 메뉴 **"스토어 등록정보"** 탭에서 다음 항목을 채웁니다: | 항목 | 파일 (절대 경로) | 필수 | |------|------------------|------| | **스토어 아이콘** (128×128) | `D:\01_개인\06. launcher\chrome-extension\store-assets\store-icon-128.png` | ✅ | | **작은 프로모 타일** (440×280) | 직접 제작 후 업로드 | ✅ | | **스크린샷** (1280×800) | §3 가이드대로 5장 캡처 후 업로드 | ✅ (최소 1장) | | **마키 프로모** (1400×560) | 선택 — Featured 영역 노출되려면 필요 | ❌ | > ⚠️ **Toolbar 아이콘은 여기서 업로드하지 않습니다.** zip 안에 이미 들어 있어서 manifest의 `icons` / `action.default_icon` 필드가 자동으로 지정합니다. 대시보드에 별도 업로드란이 없습니다. ### 6.4 개인정보 보호 사항 ⚠️ 거부 사유 1순위 **단일 목적 (Single purpose)** 입력란: ``` 브라우저 탭의 제목과 URL을 같은 컴퓨터에서 실행 중인 nost 데스크톱 런처에 전달하고, 런처의 명령으로 탭을 포커스·분할 배치하는 단일 기능. ``` **권한 정당화** — Google이 자동으로 묻는 항목들: | 권한 | 정당화 텍스트 | |------|--------------| | `tabs` | 사용자가 nost 런처에서 탭을 검색·포커스할 수 있도록, 모든 탭의 제목과 URL을 로컬 데스크톱 앱에 동기화하기 위해 필요합니다. 런처 클릭 시 해당 탭을 활성화하기 위해 chrome.tabs.update가 필요합니다. | | `activeTab` | tabs와 함께 현재 활성 탭의 정보를 안정적으로 읽기 위함입니다. | | `host_permissions` (`http://127.0.0.1:14502/*`) | nost 데스크톱 앱이 같은 컴퓨터에서 듣고 있는 로컬 루프백 주소입니다. SSE를 통한 단방향 명령 수신과 탭 정보 POST를 위함이며, 다른 어떠한 호스트와도 통신하지 않습니다. | | **원격 코드 사용** | **사용 안 함**. 모든 코드는 패키지에 포함된 정적 JavaScript이며, eval 또는 외부 스크립트 로드를 사용하지 않습니다. | | **사용자 데이터** | 사용자 데이터를 수집·전송·저장하지 않습니다. 모든 데이터는 사용자 본인 컴퓨터의 루프백을 벗어나지 않습니다. | **개인정보처리방침 URL**: §2에서 만든 URL 붙여넣기 ### 6.5 배포 - **공개 범위**: `공개 (Public)` — 모든 사용자 - **지역**: 모든 지역 - **연령 등급**: `전체 이용가` - **지연 게시**: 첫 게시는 **체크 해제** (승인 즉시 공개). 자신 있으면 둘 중 어느 쪽이든 OK. --- ## 7. 제출 전 최종 체크리스트 게시 버튼 누르기 전에 한 줄씩 확인: - [ ] 개발자 계정 등록 + $5 결제 완료 - [ ] PRIVACY.md 공개 URL 살아있는지 브라우저에서 확인 - [ ] manifest.json `version`이 1.0.0 (또는 그 이상이고 이전 게시보다 큰 값) - [ ] zip 안에 `manifest.json`이 **루트**에 있음 (폴더 안 아님) — `create-store-zip.ps1`이 보장 - [ ] zip에 dev 파일(`create-icons.js`, `generate-icons.js`, `icon.svg`, README, .git 등) 미포함 — 스크립트가 자동 제외 - [ ] 아이콘 128×128 PNG 들어 있음 — 스크립트가 검증 - [ ] 스크린샷 최소 1장 (1280×800) 준비됨 - [ ] 작은 프로모 타일 440×280 준비됨 - [ ] 한/영 등록정보 텍스트 §6에서 복사-붙여넣기 완료 - [ ] 권한 정당화 4개 모두 §6.4에서 복사-붙여넣기 완료 - [ ] "원격 코드 사용 안 함" 라디오 선택 확인 - [ ] 단일 목적 텍스트 입력 확인 - [ ] 카테고리: 생산성 --- ## 8. 흔한 거부 사유 + 예방 심사가 거부되어도 수정 후 재제출 가능. 자주 떨어지는 케이스 미리 대응: ### 8.1 "권한이 단일 목적과 일치하지 않음" → §6.4의 정당화 텍스트가 **각 권한별로 한 문장 이상**이어야 함. "필요해서 사용함" 같은 짧은 답변 금지. ### 8.2 "개인정보처리방침 URL 접근 불가" → 익명 탭으로 URL 열어보기. GitHub Pages는 첫 배포 후 5분 정도 404일 수 있음. 5–10분 기다린 후 재제출. ### 8.3 "사용자가 확장만 설치해도 가치를 얻을 수 있어야 함" → 우리 확장은 데스크톱 앱이 있어야 의미가 있음. **자세한 설명에서 "사전 요구사항" 섹션을 명확히 노출**해두면 거의 통과. 추가 안전장치로 popup.html에서 데스크톱 앱이 없을 때 다운로드 안내 링크를 보여주는 것을 고려해볼 수 있음(현재는 "연결 안됨"만 표시). ### 8.4 "tabs 권한이 과도함" → 우리는 검색·포커스를 위해 모든 탭의 메타데이터가 필요함. **목적**을 명확히 적으면 통과. 만약 거부되면 `tabs` → `activeTab`만 사용하는 모드를 추가하는 옵션 고려. ### 8.5 "코드 난독화 / minify" → 우리 코드는 평문 ES6. 영향 없음. 만약 향후 webpack 등으로 빌드한다면 **소스맵 동봉**이 필수. ### 8.6 "원격 코드 로드" → 우리는 fetch로 데이터(JSON)만 받음, 코드 실행 없음. 정당화 시 "동적 코드 실행 없음, JSON 데이터만 수신"이라고 적시. --- ## 9. 게시 후 — 업데이트 방법 새 버전 출시 흐름: 1. `manifest.json`의 `version`을 **이전보다 큰 값**으로 변경 (예: 1.0.0 → 1.0.1) 2. `create-store-zip.ps1` 다시 실행 3. 대시보드 → 해당 항목 → **"패키지 업로드"** 4. 변경 내역 메모 입력 후 **"검토 제출"** 5. 다시 1–7일 심사. 보통 첫 게시보다 빠름. > 마이너 버그 수정도 항상 새 버전 번호. 같은 버전 재업로드는 불가. --- ## 10. 데스크톱 앱과의 연계 — 후속 권장사항 배포 성공 후 nost 데스크톱 앱 측에서: - [ ] [ExtensionInstallWizard.tsx](../frontend/src/components/ExtensionInstallWizard.tsx)에 "Chrome 웹 스토어 설치" 버튼 추가 — zip 다운로드 안내 대신 스토어 직링크 - [ ] 설정 → 확장 탭에 스토어 페이지 링크 노출 - [ ] 스토어 ID(승인 후 발급되는 32자 ID)를 [main.js](../main.js)의 `openExtensionInstallHelper`에 추가해서 `https://chrome.google.com/webstore/detail/{ID}` 자동 열기 스토어 ID는 첫 게시 후 대시보드 URL에 나타남: `https://chrome.google.com/webstore/devconsole/{32자}` --- ## 부록 A. 공식 문서 링크 - 게시 절차: https://developer.chrome.com/docs/webstore/publish?hl=ko - 게시 전 준비: https://developer.chrome.com/docs/webstore/prepare?hl=ko - 이미지 스펙: https://developer.chrome.com/docs/webstore/images?hl=ko - 프로그램 정책: https://developer.chrome.com/docs/webstore/program-policies?hl=ko - 콘텐츠 등급: https://developer.chrome.com/docs/webstore/rating?hl=ko - 업데이트: https://developer.chrome.com/docs/webstore/update?hl=ko - 개발자 대시보드: https://chrome.google.com/webstore/devconsole

Details

  • Version
    1.0.4
  • Updated
    May 11, 2026
  • Size
    41.79KiB
  • Languages
    2 languages
  • Developer
    Email
    sow232@gmail.com
  • Non-trader
    This developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.

Privacy

Manage extensions and learn how they're being used in your organization
The developer has disclosed that it will not collect or use your data. To learn more, see the developer’s privacy policy.

This developer declares that your data is

  • Not being sold to third parties, outside of the approved use cases
  • Not being used or transferred for purposes that are unrelated to the item's core functionality
  • Not being used or transferred to determine creditworthiness or for lending purposes
Google apps