ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿง  Dev.to Un-Stuck: The Chrome Extension That Finally Fixes Your Reading List
Dev.toDev.to
Frontend

chrome.storage.local ๊ธฐ๋ฐ˜์˜ Local-first ์•„ํ‚คํ…์ฒ˜๋กœ ๊ตฌํ˜„ํ•œ ์ง€์‹ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

๐Ÿง  Dev.to Un-Stuck: The Chrome Extension That Finally Fixes Your Reading List

Muhammad Usman Awan2026๋…„ 4์›” 20์ผ4๋ถ„beginner

Context

Dev.to์˜ ๊ธฐ๋ณธ Reading List๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹จ์ˆœ ์ €์žฅ ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋กœ ์ธํ•œ ์ •๋ณด ํœ˜๋ฐœ์„ฑ ๋ฌธ์ œ ๋ฐœ์ƒ. ์ฝ์Œ ์ƒํƒœ ๊ตฌ๋ถ„ ๋ถ€์žฌ์™€ ๋Šฅ๋™์  ํšŒ์ƒ ์žฅ์น˜ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ์ €์žฅ๋œ ์ฝ˜ํ…์ธ ๊ฐ€ ํ™œ์šฉ๋˜์ง€ ๋ชปํ•˜๊ณ  ๋ˆ„์ ๋˜๋Š” Cognitive Overload ํ˜„์ƒ ์‹ฌํ™”.

Technical Solution

  • Manifest V3 ๊ธฐ๋ฐ˜์˜ Service Worker๋ฅผ ํ™œ์šฉํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ๊ตฌ์ถ•
  • chrome.alarms API๋ฅผ ํ†ตํ•œ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ํŠธ๋ฆฌ๊ฑฐ ์„ค๊ณ„๋กœ CPU ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๋ฅผ ์ตœ์†Œํ™”ํ•œ ์•Œ๋ฆผ ๋กœ์ง ๊ตฌํ˜„
  • ์„œ๋ฒ„๋ฆฌ์Šค Local-first ์„ค๊ณ„๋ฅผ ์œ„ํ•ด chrome.storage.local์— Read/Unread ์ƒํƒœ ๋ฐ ํƒ€์ž„์Šคํƒฌํ”„ ๊ด€๋ฆฌ
  • Dev.to API์™€ ํด๋ผ์ด์–ธํŠธ ์ธก ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์™ธ๋ถ€ DB ์—†์ด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€
  • Shimmer Loader ๋„์ž…๊ณผ API ํ˜ธ์ถœ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•œ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ์‹œ์˜ UI ๋ Œ๋”๋ง ์„ฑ๋Šฅ ํ™•๋ณด
  • OAuth ๋ถ€์žฌ์— ๋”ฐ๋ฅธ Personal API Key ๊ธฐ๋ฐ˜์˜ ๋ณด์•ˆ ์ธ์ฆ ์ฒด๊ณ„ ์ ์šฉ

- ๋ฐ์ดํ„ฐ ๋ฏผ๊ฐ๋„๊ฐ€ ๋†’๊ณ  ๋‹จ์ˆœ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ Local-first ์•„ํ‚คํ…์ฒ˜ ๊ฒ€ํ†  - ์ฃผ๊ธฐ์  ์ž‘์—… ์ˆ˜ํ–‰ ์‹œ ํด๋ง ๋ฐฉ์‹ ๋Œ€์‹  ๋ธŒ๋ผ์šฐ์ € ์ œ๊ณต Alarm API๋ฅผ ํ†ตํ•œ ๋ฆฌ์†Œ์Šค ์ตœ์ ํ™” ์ ์šฉ - ๋Œ€๋Ÿ‰ ๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง ์‹œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„ ์„ ์œ„ํ•œ Shimmer UI ๋ฐ API ํ˜ธ์ถœ ์ตœ์ ํ™” ์ „๋žต ์ˆ˜๋ฆฝ

์›๋ฌธ ์ฝ๊ธฐ