Item logo image for ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์•„์นด๋ผ์ด๋ธŒ ๋ง์ปค

๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์•„์นด๋ผ์ด๋ธŒ ๋ง์ปค

Item media 1 (screenshot) for ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์•„์นด๋ผ์ด๋ธŒ ๋ง์ปค

Overview

๋‚˜๋ฌด์œ„ํ‚ค ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์˜†์— ์•„์นด๋ผ์ด๋ธŒ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๊ฒ€์ƒ‰์–ด ๋ณ€๊ฒฝ์„ ์ž๋™ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค

# ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์•„์นด๋ผ์ด๋ธŒ ๋ง์ปค ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์˜†์— ์•„์นด๋ผ์ด๋ธŒ ๋งํฌ๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” Chrome Extension์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ๊ฐœ์š” - **ํƒ€์ž…**: Chrome Extension (Manifest V3) - **๋ชฉ์ **: ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด์—์„œ ์•„์นด๋ผ์ด๋ธŒ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™ ## ๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ - โœ… ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์ž๋™ ๊ฐ์ง€ - โœ… ๊ฐ ๊ฒ€์ƒ‰์–ด ์˜†์— ์•„์นด๋ผ์ด๋ธŒ ๋งํฌ ์ถ”๊ฐ€ (์™œ?) - โœ… **์•„์นด๋ผ์ด๋ธŒ ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์ฑ„๋„** (`/b/namuhotnow`)์—์„œ ํ•ด๋‹น ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ - โœ… ์‹ค๊ฒ€ ๊ฐฑ์‹  ์‹œ ์ž๋™์œผ๋กœ ๋งํฌ ์—…๋ฐ์ดํŠธ - โœ… **์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ๋ณ€๊ฒฝ ์ถ”์ ** (v1.1.0 NEW!) - ๊ฒ€์ƒ‰์–ด ์ถ”๊ฐ€/๋ณ€๊ฒฝ/์‚ญ์ œ ์ž๋™ ๊ฐ์ง€ - Fade ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ๋ถ€๋“œ๋Ÿฌ์šด ๋งํฌ ์—…๋ฐ์ดํŠธ - โœ… ๋‹คํฌ๋ชจ๋“œ/๋ผ์ดํŠธ๋ชจ๋“œ ์ง€์› - โœ… ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ## ๐Ÿ“ฆ ์„ค์น˜ ๋ฐฉ๋ฒ• ### Chrome ์›น์Šคํ† ์–ด์—์„œ ์„ค์น˜ (์ถœ์‹œ ์˜ˆ์ •) **ํ˜„์žฌ Chrome ์›น์Šคํ† ์–ด ์ œ์ถœ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค!** ์ถœ์‹œ ํ›„ ๋งํฌ๊ฐ€ ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ### ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋กœ ์„ค์น˜ 1. ์ด ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ```bash git clone https://github.com/[username]/namu_arca.git cd namu_arca ``` 2. Chrome ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ฝ๋‹ˆ๋‹ค. 3. ์ฃผ์†Œ์ฐฝ์— `chrome://extensions/` ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. 4. ์šฐ์ธก ์ƒ๋‹จ์˜ **"๊ฐœ๋ฐœ์ž ๋ชจ๋“œ"** ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. 5. **"์••์ถ• ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ"** ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 6. ๋‹ค์šด๋กœ๋“œํ•œ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. 7. ์ต์Šคํ…์…˜์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๐ŸŽ‰ ### 2. ์•„์ด์ฝ˜ ์ถ”๊ฐ€ (์„ ํƒ์‚ฌํ•ญ) `icons/` ํด๋”์— ๋‹ค์Œ ํฌ๊ธฐ์˜ ์•„์ด์ฝ˜์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”: - `icon16.png` - 16x16 ํ”ฝ์…€ - `icon48.png` - 48x48 ํ”ฝ์…€ - `icon128.png` - 128x128 ํ”ฝ์…€ ์•„์ด์ฝ˜ ์—†์ด๋„ ์ต์Šคํ…์…˜์€ ์ •์ƒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿš€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• 1. [๋‚˜๋ฌด์œ„ํ‚ค](https://namu.wiki) ๋ฉ”์ธ ํŽ˜์ด์ง€์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. 2. ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์„น์…˜์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 3. ๊ฐ ๊ฒ€์ƒ‰์–ด ์˜†์— **์™œ?** ๋งํฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. 4. ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์•„์นด๋ผ์ด๋ธŒ ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์ฑ„๋„(`/b/namuhotnow`)์˜ ํ•ด๋‹น ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ - **JavaScript** (Vanilla) - **Chrome Extension API** - Content Scripts - MutationObserver - **CSS** (๋‹คํฌ๋ชจ๋“œ ์ง€์›) - **Manifest V3** ## ๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ``` namu_arca/ โ”œโ”€โ”€ manifest.json # Chrome Extension ์„ค์ • โ”œโ”€โ”€ content.js # ๋ฉ”์ธ ๋กœ์ง (DOM ์กฐ์ž‘, ๋งํฌ ์ถ”๊ฐ€) โ”œโ”€โ”€ styles.css # ๋งํฌ ์Šคํƒ€์ผ๋ง โ”œโ”€โ”€ icons/ # ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ ํด๋” โ”‚ โ””โ”€โ”€ README.md # ์•„์ด์ฝ˜ ์ถ”๊ฐ€ ์•ˆ๋‚ด โ””โ”€โ”€ README.md # ํ”„๋กœ์ ํŠธ ์„ค๋ช… ``` ## ๐Ÿ” ์ž‘๋™ ์›๋ฆฌ ### 1. ์‹ค๊ฒ€ ๊ฐ์ง€ ์—ฌ๋Ÿฌ CSS ์„ ํƒ์ž๋ฅผ ์‹œ๋„ํ•˜์—ฌ ๋‚˜๋ฌด์œ„ํ‚ค์˜ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค: ```javascript const REALTIME_SELECTORS = [ '[class*="realtime"] li a', '[class*="trending"] li a', '[class*="popular"] li a' // ... ๋” ๋งŽ์€ ์„ ํƒ์ž ] ``` ### 2. ์•„์นด๋ผ์ด๋ธŒ ๋งํฌ ์ƒ์„ฑ ๊ฐ ๊ฒ€์ƒ‰์–ด์— ๋Œ€ํ•ด ์•„์นด๋ผ์ด๋ธŒ `/b/namuhotnow` ์ฑ„๋„ ๊ฒ€์ƒ‰ URL์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค: ```javascript function getArcaSearchUrl(keyword) { const encodedKeyword = encodeURIComponent(keyword) return `https://arca.live/b/namuhotnow?target=all&keyword=${encodedKeyword}` } ``` ### 3. ๋™์  ๊ฐ์ง€ ๋ฐ ๋ณ€๊ฒฝ ์ถ”์  MutationObserver๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค๊ฒ€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค: ```javascript const observer = new MutationObserver(mutations => { childList: true, // DOM ์ถ”๊ฐ€/์ œ๊ฑฐ ๊ฐ์ง€ attributes: true, // ์†์„ฑ ๋ณ€๊ฒฝ ๊ฐ์ง€ attributeFilter: ['href'] // href ์†์„ฑ๋งŒ ๊ฐ์‹œ }) ``` ### 4. ๊ฒ€์ƒ‰์–ด ๋ณ€๊ฒฝ ๊ฐ์ง€ (v1.1.0 NEW!) ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  Diff ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค: ```javascript // ๋ณ€๊ฒฝ ํƒ€์ž…: added, modified, removed const changes = detectKeywordChanges() // ๊ฐ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๋งํฌ ์—…๋ฐ์ดํŠธ for (const change of changes) { if (change.type === 'modified') { // Fade-out (200ms) โ†’ ์ œ๊ฑฐ โ†’ ์ƒ์„ฑ โ†’ Fade-in (200ms) await updateExistingLink(element, oldKeyword, newKeyword) } } ``` ## ๐Ÿงช ๋””๋ฒ„๊น… ๋ฐ ํ…Œ์ŠคํŠธ ### ์ฝ˜์†” ๋กœ๊ทธ ํ™•์ธ 1. ๋‚˜๋ฌด์œ„ํ‚ค ํŽ˜์ด์ง€์—์„œ `F12`๋ฅผ ๋ˆŒ๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. 2. **Console** ํƒญ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 3. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ``` [๋‚˜๋ฌด์œ„ํ‚ค ์•„์นด๋ง์ปค] ์ต์Šคํ…์…˜ ์‹œ์ž‘ [๋‚˜๋ฌด์œ„ํ‚ค ์•„์นด๋ง์ปค] ์„ ํƒ์ž "..." ๋กœ N๊ฐœ ํ•ญ๋ชฉ ๋ฐœ๊ฒฌ [๋‚˜๋ฌด์œ„ํ‚ค ์•„์นด๋ง์ปค] N๊ฐœ ํ•ญ๋ชฉ์— ๋งํฌ ์ถ”๊ฐ€ ์™„๋ฃŒ ``` ### ์‹ค๊ฒ€์„ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ์— "์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ: 1. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ(F12)์—์„œ **Elements** ํƒญ์„ ์—ฝ๋‹ˆ๋‹ค. 2. ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ์„น์…˜์„ ์ฐพ์•„ HTML ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 3. ์ •ํ™•ํ•œ ํด๋ž˜์Šค๋ช…์ด๋‚˜ ID๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. 4. `content.js`์˜ `REALTIME_SELECTORS` ๋ฐฐ์—ด์— ํ•ด๋‹น ์„ ํƒ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค: ```javascript const REALTIME_SELECTORS = [ // ๊ธฐ์กด ์„ ํƒ์ž๋“ค... '.your-new-selector' // ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ ] ``` 5. ์ต์Šคํ…์…˜์„ ์ƒˆ๋กœ๊ณ ์นจํ•ฉ๋‹ˆ๋‹ค (`chrome://extensions/`์—์„œ ๐Ÿ”„ ๋ฒ„ํŠผ ํด๋ฆญ). ## ๐ŸŽจ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ### ๋งํฌ ํ…์ŠคํŠธ ๋ณ€๊ฒฝ `content.js`์—์„œ ๋งํฌ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ```javascript arcaLink.textContent = '์™œ?' // ์›ํ•˜๋Š” ํ…์ŠคํŠธ๋กœ ๋ณ€๊ฒฝ ``` ### ์Šคํƒ€์ผ ๋ณ€๊ฒฝ `styles.css`์—์„œ ๋งํฌ์˜ ์ƒ‰์ƒ, ํฌ๊ธฐ, ๋ชจ์–‘ ๋“ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ```css .arca-link { color: #0066cc; /* ์ƒ‰์ƒ ๋ณ€๊ฒฝ */ font-size: 11px; /* ํฌ๊ธฐ ๋ณ€๊ฒฝ */ border-radius: 3px; /* ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ */ /* ... */ } ``` ### ์•„์นด๋ผ์ด๋ธŒ ์ฑ„๋„ ๋ณ€๊ฒฝ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค๊ฒ€ ์ฑ„๋„(`/b/namuhotnow`)๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ฑ„๋„๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด `content.js`์˜ `getArcaSearchUrl` ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์„ธ์š”: ```javascript function getArcaSearchUrl(keyword) { const encodedKeyword = encodeURIComponent(keyword) return `https://arca.live/b/your-channel?target=all&keyword=${encodedKeyword}` // ์ฑ„๋„ ๋ณ€๊ฒฝ } ``` ## ๐Ÿ› ์•Œ๋ ค์ง„ ์ด์Šˆ 1. **์‹ค๊ฒ€์„ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ** - ๋‚˜๋ฌด์œ„ํ‚ค ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์œ„์˜ "๋””๋ฒ„๊น… ๋ฐ ํ…Œ์ŠคํŠธ" ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. 2. **๋งํฌ๊ฐ€ ์ค‘๋ณต ์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ** - ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. - ์ง€์†๋˜๋Š” ๊ฒฝ์šฐ ์ด์Šˆ๋ฅผ ์ œ๋ณดํ•ด์ฃผ์„ธ์š”. ## ๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ ๋ฒ„๊ทธ ์ œ๋ณด, ๊ธฐ๋Šฅ ์ œ์•ˆ, Pull Request ๋ชจ๋‘ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## ๐Ÿ“ž ๋ฌธ์˜ ํ”„๋กœ์ ํŠธ ๋งํฌ: [https://github.com/jellive/namu_arca_linker](https://github.com/jellive/namu_arca_linker) ## ๐ŸŽ‰ ๊ฐ์‚ฌ์˜ ๋ง - [๋‚˜๋ฌด์œ„ํ‚ค](https://namu.wiki) - ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰์–ด ๋ฐ์ดํ„ฐ ์ œ๊ณต - [์•„์นด๋ผ์ด๋ธŒ](https://arca.live) - ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ --- #chrome-extension #side-project #namuwiki #arca-live #Jell

Details

  • Version
    1.1.0
  • Updated
    November 12, 2025
  • Size
    27.41KiB
  • Languages
    ํ•œ๊ตญ์–ด
  • Developer
    Website
    Email
    jellive7@gmail.com
  • Non-trader
    This developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.

Privacy

The developer has disclosed that it will not collect or use your data. To learn more, see the developerโ€™s privacy policy.

This developer declares that your data is

  • Not being sold to third parties, outside of the approved use cases
  • Not being used or transferred for purposes that are unrelated to the item's core functionality
  • Not being used or transferred to determine creditworthiness or for lending purposes

Support

For help with questions, suggestions, or problems, visit the developer's support site

Related

Web Archive

5.0

Use web archive for quick access to the wayback machine, internet archive, search engines for browsing web history

URL Quick Append

5.0

Quickly manipulate URL appendix

Send to archive.today

0.0

Right-click on links to send them to archive.today

Follow, Nofollow Link Checker ๐Ÿ”—

5.0

Follow, NoFollow Link Checker: This extension helps highlight and export NoFollow and DoFollow links on the current web page. ๐Ÿ“”

Quick Find for Google Chromeโ„ข

4.1

Port of Firefox Quick Find features + awesome new ones. Search results in one location. Navigate to links in just a few keystrokes.

Archive Page

4.4

Archive webpage with archive[dot]today

Tree Style Tab Manager

5.0

Organize tabs in hierarchical tree structure. Drag & drop, search, virtual tabs, and smart restoration with configurable cleanup.

Ezyon Tech Bulk Search Opener

3.0

Extension to open multiple search queries across different search engines

Downloads

3.9

Easily access downloads on this device. Manage all downloaded files in Google Chrome with a single link to the downloads history

Maps links in Brave Search

4.0

Extension to add Maps links to the Brave Search page

Bookmarks Checker - Remove broken links

3.7

Clean up bookmarks from junk. Batch check your bookmarks to find duplicates and broken bookmark links.

LivingHistory

0.0

Effortlessly search and keep your browsing history at hand with LivingHistory

Web Archive

5.0

Use web archive for quick access to the wayback machine, internet archive, search engines for browsing web history

URL Quick Append

5.0

Quickly manipulate URL appendix

Send to archive.today

0.0

Right-click on links to send them to archive.today

Follow, Nofollow Link Checker ๐Ÿ”—

5.0

Follow, NoFollow Link Checker: This extension helps highlight and export NoFollow and DoFollow links on the current web page. ๐Ÿ“”

Quick Find for Google Chromeโ„ข

4.1

Port of Firefox Quick Find features + awesome new ones. Search results in one location. Navigate to links in just a few keystrokes.

Archive Page

4.4

Archive webpage with archive[dot]today

Tree Style Tab Manager

5.0

Organize tabs in hierarchical tree structure. Drag & drop, search, virtual tabs, and smart restoration with configurable cleanup.

Ezyon Tech Bulk Search Opener

3.0

Extension to open multiple search queries across different search engines

Google apps