본문 바로가기
C.W.K.
Stream
← C.W.K. Quests
🧩

Chrome Extensions Quest

최근 수정: 2026-08-07

쓸 만한 clipboard 도구를 직접 만들면서, 같은 뼈대가 household embed로 자라는 과정까지 따라가

Chrome extension은 손으로 만들어 봐야 감이 와. Track을 하나 지날 때마다 ClipDeck에 기능을 붙여 나가. 고른 텍스트를 담고, 고치고, 지우는 진짜 browser scrap box야. 마지막 track에선 완성한 ClipDeck과 실제로 쓰는 Pippa ChromeEmbed v0.2.1을 나란히 놓고 shared host registry까지 짚어.

9 tracks · 56 lessons · ~19h · difficulty: intermediate-to-advanced

Level 0Extension 입덕
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
Chrome extension은 직접 만져 봐야 형태가 잡혀. Manifest 표와 API 문서만 읽어서는 부족해. 이 quest는 hello-world MV3 manifest로 시작해서 ClipDeck으로 끝나. 어느 페이지에서든 고른 텍스트를 chrome.storage에 담고, side panel에서 꺼내 보고 고치고 지우는 Chrome extension이야. 앞의 여덟 track에선 service worker, content script, side panel, popup, 권한, DOM 도구, packaging을 차례로 붙여. 아홉 번째 track에선 완성한 ClipDeck과 cwkPippa의 실제 Pippa ChromeEmbed v0.2.1을 나란히 놓고 anchor 열 개를 걸어. Manifest, router, page sensor, display mode 셋, iframe bridge, payload ownership, refactor 경계, shared host registry까지. Track 아홉 개, lesson 약 쉰여섯 개, 열아홉 시간쯤이야. 끝까지 가면 손에는 돌아가는 ClipDeck이 남고, 반대편에는 household embed의 구조가 보여.

Tracks

  1. 01📜MV3 입문

    0/6 lessons

    Manifest V3 — Chrome extension 게임의 새 룰

    Chrome extension은 manifest.json 한 장에 살고 죽어. Track 1 에서는 MV3가 뭘 바꿨는지 열어 보고, 설치하고 다시 올리는 흐름을 직접 걸어 보고, ClipDeck의 첫 뼈대를 내보낼 거야 — 최소한의 manifest에 지금 페이지 제목을 보여 주는 popup 하나.

    Lesson list (6)퀴즈 · 5 문제
  2. 02⚙️Service Worker

    0/6 lessons

    MV3의 background — event로 깨고, 놀면 쫓겨나고, 그래도 기억은 남기는 층

    Track 2에서 ClipDeck의 background.js를 연결해. chrome.runtime.onInstalled로 첫 설치를 준비하고, chrome.tabs.onUpdated로 방문한 주소를 듣고, chrome.storage.local을 worker가 evict 돼도 버티는 상태 저장소로 써. 다 끝나면 ClipDeck이 worker가 몇 번을 다시 살아나도 방문 수를 계속 쌓고, popup이 그 누적값을 보여 줘. CRUD의 R을 위한 몸풀기야.

    Lesson list (6)퀴즈 · 5 문제
  3. 03Content Script

    0/6 lessons

    페이지 안의 손 — DOM 접근, isolated world, host bridge

    Track 3에서 ClipDeck을 페이지 안으로 들여보내. content script는 user의 tab 안에서 DOM을 전부 만질 수 있게 돌지만, JavaScript 세계는 따로 떨어져 있어 — 페이지 자기 스크립트랑 전역 변수를 나눠 쓰지 않아. 다 끝나면 ClipDeck이 살아 있는 페이지에서 고른 텍스트를 읽어 메시지로 service worker에 넘기고, 거기서 storage에 저장돼. CRUD의 C가 도착하는 거야.

    Lesson list (6)퀴즈 · 5 문제
  4. 04📑Side Panel

    0/6 lessons

    Chrome 114+ 의 영구 dock — popup의 크고 느린 형제

    Track 4에서 ClipDeck이 잠깐 뜨는 tooltip에서 계속 붙어 있는 dock으로 졸업해. side panel은 user의 tab 옆에 나란히 서서, 다른 데를 눌러도 안 죽고, clip이 숨 쉴 자리를 내줘. 다 끝나면 side panel에 시각과 출처 주소를 단 clip 목록이 통째로 뜨고, popup은 빠른 동작만 남긴 자리로 줄어들어. CRUD의 R이 온전히 자리 잡는 거야.

    Lesson list (6)퀴즈 · 5 문제
  5. 05🎚️Action & Popup

    0/5 lessons

    Toolbar icon, badge, popup, 우클릭 메뉴 — user가 매일 만나는 자리

    Track 5에서 ClipDeck의 toolbar icon이 hello-world 버튼에서 진짜 일하는 자리로 바뀌어. tab 별 badge 숫자, 상황에 따라 달라지는 popup 내용, 우클릭 'Save to ClipDeck' 메뉴, 원하면 붙이는 주소창 키워드, 그리고 tab 마다 담기를 켜고 끄는 스위치까지. user는 popup을 side panel 보다 열 배쯤 자주 열어. 이 track은 그 열 번의 손길을 값지게 만드는 시간이야.

    Lesson list (5)퀴즈 · 5 문제
  6. 06🔐Permission

    0/5 lessons

    신뢰 계약 — 뭘 요청하는지, 어떻게 요청하는지, user가 어떻게 거절하는지

    Track 6에서 ClipDeck의 manifest를 제대로 손봐. MV3의 권한은 세 갈래야 — API 권한 (storage, tabs, scripting), host 권한 (어느 사이트를 만질 수 있는지), 그리고 설치할 때가 아니라 쓸 때 물어보는 선택 권한. Chrome Web Store는 과하게 달라는 extension을 반려하고, user는 너무 들이대는 걸 지워 버려. 이 track은 아무도 놀라게 하지 않으면서 할 일은 다 하는 manifest를 내보내는 법, 그리고 '싫어' 라고 답하는 user를 위해 설계하는 법을 보여 줘.

    Lesson list (5)퀴즈 · 5 문제
  7. 07🛠️DOM Tools

    0/7 lessons

    Messy real-world page 작업 도구 — 그리고 CRUD의 U+D

    Track 7에서 ClipDeck의 DOM 연장통을 넓혀. 기사 본문을 뽑는 Mozilla Readability, Selection과 Range를 깊게 파기, chrome.tabs.captureVisibleTab으로 화면 오려 내기, React를 속이지 않고 입력창 채우는 요령, 그리고 실제 페이지를 건드리는 동작이라면 뭐든 앞세워야 할 미리보기·확인 패턴까지. 마지막은 side panel 안에서 CRUD의 U와 D로 닫아 — 그 자리에서 고치고, 지우고, 되돌리기. 다 끝나면 ClipDeck이 framework로 뒤덮인 사이트도 감당하고, 저장한 clip의 한 살이를 온전히 받쳐 줘.

    Lesson list (7)퀴즈 · 5 문제
  8. 08📦Packaging

    0/5 lessons

    Icon / build / publish — 작업 폴더를 다른 사람이 install 할 수 있는 것으로

    Track 8에서 ClipDeck을 내보내. 꼭 필요한 네 크기의 icon, unpacked와 packed의 갈림길, 개인정보 처리방침과 등록 정보를 갖춘 Chrome Web Store 제출, 조직 안에서만 쓰는 배포, 그리고 파일 하나짜리 content script를 넘어 자랄 수 있게 해 주는 bundler 설정까지. 다 끝나면 ClipDeck은 공개 주소든 비공개 주소든 하나를 가진 진짜 software가 돼. 다른 사람이 Install을 누를 수 있는.

    Lesson list (5)퀴즈 · 5 문제
  9. 09🧪Case Study — Pippa ChromeEmbed v0.2.1

    0/10 lessons

    실제로 나간 extension을 파일 하나씩 — 앞의 여덟 track이 가르친 걸 전부 써먹는 자리

    Track 9는 현재 Pippa ChromeEmbed v0.2.1을 end to end로 걸어. Exact manifest host, service-worker router, page capture, popup doorway, cwkPippa iframe bridge, tab-scoped identity, assisted insertion, display mode 셋을 ClipDeck pattern에 연결하되 ChromeEmbed를 두 번째 Pippa로 만들지는 않아.

    Chrome 창 오른쪽 가장자리에 도킹된 Pippa ChromeEmbed — 주 화면엔 호스트 페이지(아빠 사이트의 저널 글, 삽화와 그 옆의 실시간 포스트 스트림)가 차 있고, 패널은 지금 보고 있는 페이지를 읽어서 제목과 URL을 되짚어 주고, 답변 아래에 모델과 토큰 수를 밝힘.
    임베드는 자기가 붙은 페이지를 읽음 — 같은 브라우저, 같은 탭, 화면에 이미 있는 것에 답할 수 있는 패널 하나.
    Lesson list (10)퀴즈 · 5 문제
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.