api-lens

๐Ÿ” API Lens โ€“ Chrome DevTools Extension

๐ŸŽฏ ๋ชฉํ‘œ์™€ ๋ฒ”์œ„

ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

๋ฒ”์œ„

โšก Quick Start

  1. chrome://extensions์—์„œ โ€œ์••์ถ•ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋กœ๋“œโ€๋กœ ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  2. ํŒ์—…์ด๋‚˜ DevTools ํŒจ๋„์„ ์ฒ˜์Œ ์—ด ๋•Œ Chrome์ด debugger ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋ฉด ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์บก์ฒ˜ํ•  ํƒญ์„ ์ฒดํฌํ•˜๊ฑฐ๋‚˜ โ€œํ˜„์žฌโ€ ๋ฒ„ํŠผ์œผ๋กœ ํ™œ์„ฑ ํƒญ์„ ์ฆ‰์‹œ ์ถ”๊ฐ€ํ•˜๊ณ , โ€œ์ „์ฒดโ€๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ดํ›„ ์ƒˆ๋กœ ์—ด๋ฆฌ๋Š” ํƒญ๋„ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘๋ฉ๋‹ˆ๋‹ค.
  4. ์ƒํƒœ์ฝ”๋“œ/๋„๋ฉ”์ธ ํ•„ํ„ฐ์™€ ๊ฒ€์ƒ‰์„ ์กฐํ•ฉํ•ด ๊ธฐ๋ก์„ ํƒ์ƒ‰ํ•˜๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ JSONยทCSV๋กœ ๋‚ด๋ณด๋‚ด๊ฑฐ๋‚˜ ์ „์ฒด ์‚ญ์ œ ๋ฒ„ํŠผ์œผ๋กœ ์ •๋ฆฌํ•˜์„ธ์š”.
  5. Authorization/Cookie ๋“ฑ ๋ฏผ๊ฐ ํ—ค๋”๋Š” ์ž๋™์œผ๋กœ ๋งˆ์Šคํ‚น๋˜๋ฉฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๋กœ์ปฌ IndexedDB์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ด๊ธฐ ์ „์— ๋ฏผ๊ฐ ๊ฐ’์ด ํฌํ•จ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.

๐Ÿงญ ๋ฒ„์ „๋ณ„ ๋ชฉํ‘œ ๊ธฐ๋Šฅ ์ •์˜

v0.1.0 (MVP)

v0.2.0

v0.3.0


๐Ÿš€ ํ˜„์žฌ MVP ๋ฒ„์ „ ๊ฐœ๋ฐœ ๋ฒ”์œ„ ์ •์˜ (v0.1.0)

๋ชฉํ‘œ

๊ฐœ๋ฐœ ๋ฒ”์œ„

  1. ๊ธฐ๋ณธ ํ™˜๊ฒฝ
    • MV3 manifest ์„ค์ •
    • DevTools ํŽ˜์ด์ง€ ๋“ฑ๋ก (devtools.html โ†’ panel.html)
    • ๊ธฐ๋ณธ ์•„์ด์ฝ˜, ๋กœ๊ณ , ๋ธŒ๋žœ๋”ฉ ์—์…‹ ์ถ”๊ฐ€
  2. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
    • chrome.devtools.network.onRequestFinished ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก
    • ์‘๋‹ต ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ (URL, ๋ฉ”์„œ๋“œ, ์ƒํƒœ, ํƒ€์ž…) ์ˆ˜์ง‘
    • getContent()๋กœ ์‘๋‹ต Body ํ™•๋ณด
    • IndexedDB ์ €์žฅ + FIFO ์‚ญ์ œ
  3. UI/UX
    • ํŒจ๋„ ๋ ˆ์ด์•„์›ƒ: ๋ฆฌ์ŠคํŠธ(์ขŒ), ์ƒ์„ธ(์šฐ)
    • ๊ฒ€์ƒ‰๋ฐ” / ํ•„ํ„ฐ / ํ…Œ๋งˆ ํ† ๊ธ€
    • ์ƒ์„ธ๋ทฐ์— Pretty JSON / XML / Text ๋ Œ๋”๋Ÿฌ
    • Copy / Download / Bookmark ๋ฒ„ํŠผ
    • ์ƒํƒœ๋ฐ”์— ์ด ์‘๋‹ต ์ˆ˜ ํ‘œ์‹œ
  4. ์ €์žฅ ๋ฐ ์„ค์ •
    • IndexedDB์— ์š”์ฒญ ๊ธฐ๋ก ์ €์žฅ
    • chrome.storage.local๋กœ ์‚ฌ์šฉ์ž ์„ค์ • ์œ ์ง€
    • ๋ถ๋งˆํฌ ์ƒํƒœ ์œ ์ง€
  5. ํฌ๋งทํŒ… ์—”์ง„
    • JSON ํŒŒ์‹ฑ ๋ฐ Pretty Print
    • XML ๋“ค์—ฌ์“ฐ๊ธฐ ๋ Œ๋”
    • ๊ธฐํƒ€ MIME(text/plain ๋“ฑ)์€ ์›๋ฌธ ์ถœ๋ ฅ
    • ํŒŒ์‹ฑ ์‹คํŒจ ์‹œ ์›๋ณธ ํ…์ŠคํŠธ ํ‘œ์‹œ
  6. ๋ฐฐํฌ
    • ๋นŒ๋“œ ๋ฐ ZIP ํŒจํ‚ค์ง•
    • Chrome Web Store ๊ฐœ๋ฐœ์ž ๋“ฑ๋ก
    • ์Šคํฌ๋ฆฐ์ƒท, ์„ค๋ช…, ์ •์ฑ… ๋ฌธ์„œ ์—…๋กœ๋“œ

โš™๏ธ ๊ธฐ๋Šฅ ์ •์˜

1. ๋„คํŠธ์›Œํฌ ์บก์ฒ˜

2. ํƒญ ๋ชจ๋‹ˆํ„ฐ๋ง & ์ œ์–ด

3. ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ

4. ์‘๋‹ต ๋ทฐ์–ด & ๋‚ด๋ณด๋‚ด๊ธฐ

5. ์ƒ์„ธ๋ทฐ ํˆด๋ฐ”

6. ํ…Œ๋งˆ ๋ฐ ์„ค์ •

7. ์ €์žฅ์†Œ ๊ตฌ์กฐ

8. ๊ถŒํ•œ ๋ฐ ๊ฐœ์ธ์ •๋ณด


๐Ÿงฑ ๊ธฐ์ˆ  ์Šคํƒ

์ฝ”์–ด & ๋ฒˆ๋“ค๋ง

UI

๋ฐ์ดํ„ฐ/์ €์žฅ

ํŒŒ์‹ฑ/ํฌ๋งทํŒ…

๊ฒ€์ƒ‰/ํ•„ํ„ฐ

ํ’ˆ์งˆ/๋นŒ๋“œ

๊ถŒํ•œ

๋ณด์•ˆ


๐Ÿ“ฆ ์ฃผ์š” ์˜์กด์„ฑ

```json { โ€œdependenciesโ€: { โ€œreactโ€: โ€œ^18.3.1โ€, โ€œreact-domโ€: โ€œ^18.3.1โ€, โ€œzustandโ€: โ€œ^4.5.2โ€, โ€œidbโ€: โ€œ^8.0.0โ€, โ€œdayjsโ€: โ€œ^1.11.13โ€, โ€œfast-xml-parserโ€: โ€œ^4.5.0โ€, โ€œhighlight.jsโ€: โ€œ^11.10.0โ€ }, โ€œdevDependenciesโ€: { โ€œtypescriptโ€: โ€œ^5.6.3โ€, โ€œviteโ€: โ€œ^5.4.8โ€, โ€œ@crxjs/vite-pluginโ€: โ€œ^1.0.14โ€, โ€œtailwindcssโ€: โ€œ^3.4.13โ€, โ€œpostcssโ€: โ€œ^8.4.47โ€, โ€œautoprefixerโ€: โ€œ^10.4.20โ€, โ€œeslintโ€: โ€œ^9.11.1โ€, โ€œ@typescript-eslint/eslint-pluginโ€: โ€œ^8.8.1โ€, โ€œ@typescript-eslint/parserโ€: โ€œ^8.8.1โ€, โ€œprettierโ€: โ€œ^3.3.3โ€, โ€œvitestโ€: โ€œ^2.1.4โ€, โ€œ@testing-library/reactโ€: โ€œ^16.0.1โ€ } }