์ด๋ ์นํ์ด์ง ์์๋ ์ค์๊ฐ ์์ธ๋ฅผ ๋์ฐ๊ธฐ โ ํฌ๋กฌ ํ์ฅ์ ๋ง๋ ์ด์ผ๊ธฐ
ํญ ์ ํ์ด ๊ท์ฐฎ์๋ค
์ฃผ์์ด๋ ์ฝ์ธ ์์ธ๋ฅผ ํ๋ฃจ์๋ ์์ญ ๋ฒ ๋ณธ๋ค. ๊ทธ๋๋ง๋ค ์ฆ๊ถ ์ฑ์ ์ผ๊ฑฐ๋ ํญ์ ์ ํํ๋ ๊ฒ ์๊ทผํ ํ๋ฆ์ ๋์๋ค. ์ง๊ธ ๋ณด๊ณ ์๋ ํ์ด์ง ์์, ์กฐ๊ทธ๋งฃ๊ฒ ์์ธ๊ฐ ๋ ์์ผ๋ฉด ์ ๋๋? ๊ทธ๋ฐ๋ฐ ํด๋ฆญ์ ์๋ ํ์ด์ง๋ก ๊ทธ๋๋ก ํต๊ณผํ์ผ๋ฉด ์ข๊ฒ ๊ณ .
๊ทธ๋์ ๋ง๋ค์๋ค. ์ด๋ค ์นํ์ด์ง ์์๋ ์ค์๊ฐ ์ฃผ์ยท์ฝ์ธ ์์ธ ์์ ฏ์ ๋์ฐ๋ ํฌ๋กฌ ํ์ฅ, Stock Price Widget. ๋๋๊ทธ๋ก ์ฎ๊ธฐ๊ณ , ํฌ๊ธฐ ์กฐ์ ํ๊ณ , ํ๋ฉด์ ํ์ผ๋ก ๊ณ ์ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ฏ ์์ ํด๋ฆญ์ ์๋ ํ์ด์ง๋ก ํต๊ณผํ๋ค.
๋ง๋ค๋ค ๋ณด๋ "๊ฐ๋จํ ์์ ฏ ํ๋"๊ฐ ์๋๋ผ, ์ค์๋น์ค ํฌ๋กฌ ํ์ฅ์ด ๋ง์ฃผ์น๋ ๋ฌธ์ ๋ฅผ ๊ฑฐ์ ๋ค ๋ง๋๊ฒ ๋๋ค. ์ด ๊ธ์ ์ ์ฒด ๊ทธ๋ฆผ์ด๊ณ , ๋ค์ ์ด์ด์ง ๊ธ๋ค์์ ์ด๋ ค์ ๋ ์ง์ ์ ํ๋์ฉ ํ๋ค.
3๊ณ์ธต ์ํคํ ์ฒ
ํต์ฌ ๊ตฌ์กฐ๋ ์ธ ๊ฒน์ด๋ค.
โ ํฌ๋กฌ ํ์ฅ (Manifest v3) โโโโโโโโโโโโโโโโโโโโโโโ
โ background (service worker): WebSocketยท์บ์ โ
โ content scripts: ์๋ฌด ํ์ด์ง ์์ ์์ ฏ ๋ ๋ โ
โ popup: ์ข
๋ชฉ ๊ฒ์ยท์์ ฏ ๊ด๋ฆฌ โ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST + WebSocket
โผ
โ Node ํ๋ก์ ์๋ฒ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ /quotes (์์ธ ๋ฐฐ์น ์กฐํ) โ
โ /search (์ข
๋ชฉ ๊ฒ์) โ
โ /ws (์ค์๊ฐ ๊ตฌ๋
push) โ
โ โ ํ๊ตญํฌ์์ฆ๊ถ KIS / Gate.io / Binance โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
์ ํ๋ก์ ์๋ฒ๋ฅผ ๋ฐ๋ก ๋๋
์ฒ์์ ํ์ฅ์์ ์์ธ API๋ฅผ ์ง์ ๋ถ๋ฅด๋ ค ํ๋ค. ์ฌ์ค ๊ธฐ์ ์ ์ผ๋ก๋ ๋๋ค.
MV3์ background๋ host_permissions๋ง ์ ์ธํ๋ฉด CORS ์ ์ฝ ์์ด ์ธ๋ถ API๋ฅผ
ํธ์ถํ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ง์ ๋ถ๋ฅด๋ฉด ์ ๋๋ ์ด์ ๊ฐ ํ๋์ฉ ์์๋ค.
- ํคยท์๋ช ์จ๊น: ํ๊ตญํฌ์์ฆ๊ถ KIS ํค๋ ๊ฑฐ๋์ ์๋ช ๊ฐ์ ๋ฏผ๊ฐ์ ๋ณด๋ฅผ ํ์ฅ ์ฝ๋์ ๋ฐ์ ๋ฐฐํฌํ ์ ์๋ค. ํ์ฅ์ ์์ค๊ฐ ๊ทธ๋๋ก ๋ ธ์ถ๋๋ค. ์๋ฒ์ ์จ๊ธด๋ค.
- ๊ตฌ๋ ํตํฉ(fan-out): ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ข ๋ชฉ(BTC ๋ฑ)์ ๊ตฌ๋ ํด๋, ์๋ฒ๋ ์ ์คํธ๋ฆผ์ ํ๋์ ์ฐ๊ฒฐ๋ง ์ ์งํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ์ค๋ค.
- Rate limit ์ค์ํ: ์ฌ๋ฌ ํญยท์ฌ๋ฌ ์ฌ์ฉ์์ ์์ฒญ์ ์๋ฒ๊ฐ ๋ชจ์์ ๊ด๋ฆฌํ๋ค. ์ฌ์ฉ์๊ฐ ๋์ด๋ ์ ์คํธ๋ฆผ ํธ์ถ๋์ด ๋น๋กํด์ ๋์ง ์๋๋ค.
์ฆ ํ๋ก์๋ ๋จ์ ์ค๊ณ๊ฐ ์๋๋ผ ๋ณด์ยท์ฑ๋ฅยท์์ ์ฑ์ ๊ฒฝ๊ณ์ ์ด์๋ค.
์ค์๊ฐ์ ํ ๊ฒน์ผ๋ก ์ ๋๋ค โ 3์ธต ๊ฐฑ์
์์ธ๋ "์ค์๊ฐ"์ด ์๋ช ์ธ๋ฐ, ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๊ฒฝ์ ์ค์๊ฐ์ ์ ๋์ ์ด๋ค. (๋ค ๊ธ์์ ์์ธํ) ๊ทธ๋์ ๊ฐฑ์ ์ ์ธ ๊ฒน์ผ๋ก ์์๋ค.
| ๊ณ์ธต | ๋ฐฉ์ | ์ญํ |
|---|---|---|
| 1 | WebSocket ๊ตฌ๋ | ์ง์ง ์ค์๊ฐ |
| 2 | 15์ด REST ํด๋ง | WS ๋๊ฒผ์ ๋ ๋ฉ์ |
| 3 | chrome.alarms 1๋ถ |
์ฃฝ์ Service Worker ๋ณต๊ตฌ |
์ด ํ๋ก์ ํธ์์ ํ ๊ฒ๋ค
ํ ์ค๋ก "์์ ฏ ์ฑ"์ด๋ผ ๋ถ๋ฅด๊ธฐ์, ์๋ ์ฃผ์ ๋ค์ด ๊ฐ๊ฐ ๊ฝค ๊น์๋ค. ์ด์ด์ง๋ ๊ธ์์ ๋ค๋ฃฌ๋ค.
-
Manifest v3 Service Worker์ ์ข๋น WebSocket โ ์ด๋ ค์์ง๋ง ์ฃฝ์ ์ฐ๊ฒฐ์ ๊ฐ์งํ๊ณ ๋์ด๋ฆฌ๊ธฐ
-
์์ ฏ 10๊ฐ์์ INP๊ฐ ๋ฌด๋์ก๋ค โ 95% ์ฑ๋ฅ ๊ฐ์ โ ๊ฐ์ reflow๋ฅผ ์ ํด ์๊ฐ์ผ๋ก ๋ฐ์ด๋ด๊ธฐ
-
ํด๋ฆญ์ ํต๊ณผ์ํค๊ณ , ์์ ๋ฐฐ๊ฒฝ์ ๋ง์ถ๊ธฐ โ pointer-events์ ๋ช ์๋น ์๋ ์กฐ์
-
ํฌ๋กฌ ์คํ ์ด: Stock Price Widget
-
GitHub: stock-price-extension-support