ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toFrontend
์๋ฌธ ์ฝ๊ธฐ
chrome.storage.local ๊ธฐ๋ฐ์ Local-first ์ํคํ ์ฒ๋ก ๊ตฌํํ ์ง์ ๊ด๋ฆฌ ์์คํ
๐ง Dev.to Un-Stuck: The Chrome Extension That Finally Fixes Your Reading List
AI ์์ฝ
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 ํธ์ถ ์ต์ ํ ์ ๋ต ์๋ฆฝ