๋ด ๊ธฐ์ต์ด ๋ง๋ค๋ฉด 3.x๋ ์ด๋ฐ ์์ผ๋ก ํ๋ํ์ต๋๋ค. WebExt API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์ ์ ๊ณ์ ์ํํ ์ ์์ต๋๋ค.
.user.js
์ ๋ํ ํ์์ด ๊ฐ์ง๋๋ฉด ํ์์ ์ค๋จํฉ๋๋ค.์ด๊ฑด ์ ๋ง ๋ค์ ์๊ฐํด๋ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. VM๊ณผ TM ๋ชจ๋ ์ด์ ๋ฐ๋๋ก ๋์ํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ก ์ด๋ํ๋ฉด ์คํฌ๋ฆฝํธ ์ฝํ
์ธ /์์ค์ ์ค์น ๋ฒํผ์ด ๋ชจ๋ ํฌํจ๋ ํ์ด์ง๊ฐ ํ์๋ฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก '๋ฆฌ๋๋ ์
'๋๋ ๋์ ๋ณธ์ง์ ์ผ๋ก ์ฌ์ ํ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ก 'ํ์'ํฉ๋๋ค. ์๋ง๋ ์ด๊ฒ์ -users
๋ฐ -dev
๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ์ฌ๋ผ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฒฌ์ ๋ณด์์ผ ํฉ๋๊น?
์ปค๋ฎค๋ํฐ ํ ๋ก ์ ์ง์งํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ~์๋ฌด๋ ์์ค๋ฅผ ๋ฆฌ๋ทฐํ์ง ์๋๋ค๋ ์๊ฒฌ์ด๋ฏ๋ก ์ดํดํ ์ ์๋ ๋๋ค์๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ : @require
๋ ์์ ๋ ์ฃผ์ ์์ค๋ง ๊ฒํ ํ๋ ๊ฒ์ ๊ฑฐ์ ์ํ๋์ง ์์ต๋๋ค.
์์ค ์ฝ๋๋ฅผ ๊ฒํ ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋ฐํ๋์ง ์์ผ๋ฉด ์ ๋ง ์ฌํ ๊ฒ์ ๋๋ค. ๋๋ ํญ์ ์ฝ๋๋ฅผ ํ์ด๋ณด๊ณ ๋ ํธ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์๋ ค์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๊ณต์์ ์ผ๋ก ํธ์คํ ๋๋ jQuery ๋ฑ)๋ฅผ ๊ฐ๋ฆฌํค์ง ์๋ @require ํฌํจ์ด ์๋ ๊ฒฝ์ฐ, ์ ๋ ํญ์ ํ์์ ์ด๋ฉฐ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ ์ ๋ง๋ก ํ์ํ์ง ์๋ ํ ์ผ๋ฐ์ ์ผ๋ก ์ค์น๋ฅผ ์ค๋จํฉ๋๋ค(์ด ๊ฒฝ์ฐ @require ์ ๋ด์ฉ์ ํ์ด
ํ์ง๋ง ๋ด๊ฐ ์์ธ์ด๊ณ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฝ๋๋ฅผ ๋ณด๊ฑฐ๋ ์ดํดํ์ง ๋ชปํ๋ค๊ณ ํด๋ ์คํฌ๋ฆฝํธ ์์ฑ์๊ฐ ์ค์นํ ๋ ์์ค๊ฐ ํ์๋๋ค๋ ๊ฒ์ ์๋๋ก ํ๋ ์๋ฐฉ ํจ๊ณผ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ์ ํ ์์ค ์ฝ๋๋ฅผ ํ์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋ view-source: ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ ๋ ์์ค ์ฝ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ญ์์ค(๋ํ @require ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋๋ ๊ฒ์ด ๋ฐ๋์งํจ).
์ธ๊ธํ ๋ฐ์ ๊ฐ์ด ์ ๋ ๊ฒํ ๋ฅ๋ ฅ๋ ์ค์ํ๊ฒ ์๊ฐํฉ๋๋ค. ์ํ๋ ์์์ ์ฌ๋๋ค์ ์ํด. ์์ค์ _all_์ ๊ฒํ ํ ์ ์๋๋ก #2567์ฒ๋ผ ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ค์น ํ ํธ์ง์ ํด๋ฆญํ๊ธฐ๋ง ํ๋ฉด ๋ชจ๋ ์์ค ๋ฐ ํ ์คํธ ๋ฆฌ์์ค๊ฐ ํ์๋ฉ๋๋ค. ์ํ๋ ๋๋ก ํ์ฑํํ๊ฑฐ๋ ์ ๊ฑฐํฉ๋๋ค.
์ฌ๋ฌ ๋คํธ์ํฌ ์์ฒญ์ด ํ์ํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ๋ช ๊ฐ์ง ์ํฅ์ด ์์ต๋๋ค. ํนํ 3.
์ 4.
์๋ "์ ํจํ ๋ฉํ๋ธ๋ก์ด ์๋ ์ง์ ๊น์ง ๋ค์ด๋ก๋ํ์ฌ ์ค์น ๋ํ ์์๋ฅผ ํ์ํ ์ ์์ต๋๋ค."๊ฐ ์์ต๋๋ค.
ํ์ผ์ด ์ค์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋๊ณ ์ ํจํ ๋ฉํ๋ธ๋ก์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ค์น ๋ํ ์์๊ฐ ํ์๋์ง ์์ต๋๋ค. ๋ด๊ฐ ๋ณผ ์์๋ ์ ์ผํ ์กฐ์น๋ ํ์์ ์ฌ๊ฐํ๋ ๊ฒ์
๋๋ค. ํ์์ด ์ฌ๊ฐ๋๋ฉด ํ์ผ์ ๋ค์ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. ๋ถํ์ํ ์์ฒญ(#2830์ onHeadersReceived
์์ ํ์ฌ ์ํ ์ค์ธ ์์
์ ํ์ฅํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ด์ ์ ์ด ์ ์ ์ง์ ํ ์ ์ด ์์ผ๋ฉฐ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ฐ๊ฒฐ์ด ๋๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์๋ฅผ ๋ค์ด ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ๋ฐ 10์ด๊ฐ ๊ฑธ๋ฆฐ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. GM์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฐพ์ ๋ค์ด๋ก๋๋ฅผ ์๋ํ ๋ ์ฌ์ฉ์๋ 10์ด ๋์ ํผ๋๋ฐฑ์ด ์์ต๋๋ค. ์คํจํ๊ณ ํ์์ ๊ณ์ํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌํฉ๋๋ค. ๋ค์ 10์ด ๋์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ํ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ๋งํ์ง๋ ์๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๊ฑฐ๋ ๊ทธ๋ฐ ๋ค์ ์ค์ ํ์์์ ์ถ๋ ฅ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ถํ์ํ ์ฝ๋ ๋ณต์ก์ฑ์ ์ด๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ด์จ๋ ์ค์น ๋ํ ์์๋ฅผ ๋ถ๋ฌ์ค๊ณ ์คํฌ๋ฆฝํธ๊ฐ ์๋ ํ์ผ์ ์ค์นํ๋ ๋ฐ ์คํจํ ์ ์์ต๋๋ค(VM์ด ์ด ์์ ์ ์ํํจ). ๋๋ ๊ทธ ๋์ UX๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ์ถ๊ฐ ์์ฒญ ์์ด ์ด๋ฅผ ์ํํ๋ ๊น๋ํ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ผ ์ ์๋ค๋ฉด ์ข์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด _actual_ ํํ ์์ด๋ ์ด ์ผ์ ํ ์ ์์ต๋๋ค. [1]
[1] ์ ์ฌ์ ์ธ ์ด์ ์ผ๋ก #2567๋ก ์ธํด "์์ค ์ฝ๋์ _all_์ ๊ฒํ ํ ์ ์๋ ๊ฒ"์ ์ธ๊ธํ์ จ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋์ํ์ง ์๋๋ค. #2567์ ์์ค ์ฝ๋๋ฅผ ์ค์นํ ๋ ์ฌ์ฉํ ์ ์๋์ง ์ฌ๋ถ์ ๊ด๊ณ ์์ด _๋ฌด๊ดํ_ ๊ธฐ๋ฅ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ชจ๋ฅด๊ฒ ์ด์. ๋ค๋ฅธ ์ฃผ์ ์ ๋ํด์๋ ์ฝ๊ฐ์ ํ ๋ก ์ ๊ฑฐ์น ํ์ ๋์ฌ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ด๊ฐ "๋ณด์ด์ง ์๋" ๊ฒ์ ๋๋ค.
๋ด ๊ด์ ์์ ์คํฌ๋ฆฝํธ๊ฐ ์ฆ์ ํ์๋๋์ง ์ฌ๋ถ๋ ํฌ๊ฒ ์ ๊ฒฝ ์ฐ์ง ์์ง๋ง ์ค์น๋ฅผ ์ทจ์ํ๊ฑฐ๋ ๊ทธ๋ฆฌ์ค๋ชฝํค๊ฐ ์ค์น๋์ง ์์ ๊ฒฝ์ฐ์ ๊ฐ์ด ์์ ํ์ผ์ ๋ณผ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์จ๊ฒจ์ ธ ์๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ง๋ง ์ค์น ๋ํ ์์๋ฅผ ๋ซ๊ณ ์คํฌ๋ฆฝํธ๋ก ๋์๊ฐ๋ ๋ฐฉ๋ฒ์ด ์ค์ํด ๋ณด์ ๋๋ค.
*.user.js
๋ผ๋ ๋ณด๊ธฐ๋ฅผ ์ค๋จํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๊ฒ์
๋๋ค.
๋๋ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ฅผ ์น ํ์ด์ง๋ผ๊ธฐ๋ณด๋ค ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก ๋ด ๋๋ค. ํ์ฅ ํ๋ก๊ทธ๋จ๋ ํ์ํ์ง ์์ต๋๋ค. ๋ค์ด๋ก๋/์ค์นํ๊ฑฐ๋ ํ์ง ์์ต๋๋ค.
*.user.js๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ณด๊ธฐ๋ฅผ ์ค๋จํ๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค.
๋ํ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ํ์์ ๊ฑด๋๋ฆฌ์ง ์๋ ๊ฒ์ ํฌํจํ์ฌ ์ด์ ๋ฒ์ ์ GM๊ณผ ๋์ผํ ์์ ์ ์ํํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ์ด๊ฒ์ ๊ผญ ๋ณด๊ณ ์ถ๋ค๋ฉด ๋จผ์ GM์ ๋์ญ์์ค.
๋๋ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ฅผ ์น ํ์ด์ง๋ผ๊ธฐ๋ณด๋ค ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก ๋ด ๋๋ค. ํ์ฅ ํ๋ก๊ทธ๋จ๋ ํ์ํ์ง ์์ต๋๋ค. ๋ค์ด๋ก๋/์ค์นํ๊ฑฐ๋ ํ์ง ์์ต๋๋ค.
๋๋ ์ด ๋
ผ๋ฆฌ์ ๋์ํ์ง ์๋๋ค. ํ์ฅ์๋ ์์นด์ด๋ธ๋ ํ์ผ ํจํค์ง์
๋๋ค. ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. @requires
๋ฐ @resources
์ ๋ํด ์ฃผ์ฅํ ์ ์์ง๋ง ๊ทธ๊ฑด ๋ฏธ์ฝํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ค ๋ชจ๋๊ฐ ๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋๋ฉฐ ๊ทธ๋ค ์ค ์๋น์๋ ๋จ์ง ์ผ๋ฐ ํ
์คํธ์
๋๋ค. ์์ ํ
์คํธ ํ์ด์ง๋ก ์ด๋ํ ๋ ์ผ๋ฐ์ ์ผ๋ก (์ฒจ๋ถ ํ์ผ/๋ค์ด๋ก๋ ํค๋๊ฐ ์ค์ ๋์ง ์์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ ๋ ์ง์ฆ๋๋ ๋ถ๋ถ์
๋๋ค) ๋ณด๊ธฐ ์ ์ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ํ GM์ ์ด์ ๋ฒ์ ์ฒ๋ผ ์ผ์ ํ๊ณ ์์ต๋๋ค.
๋ฌผ๋ก ์ ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ด ํน์ ๊ธฐ๋ฅ์ ๋ํด ์ฐฌ์ฑํ๊ฑฐ๋ ๋ฐ๋ํ๋ ํ๋ฅญํ ๋ ผ๊ฑฐ๋ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์ ๋ฒ์ ์ ๊ธฐ์ค์ ์ ์ ๊ณตํ ์ ์์ง๋ง ์์ผ๋ก ๋ชจ๋ ๊ฒ์ด ์๋ก์ด ๋งฅ๋ฝ์์ ์ฌ๊ฒํ ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฝ๋ ๋ณต์ก์ฑ, ์ฃผ์ ํ๊ฑฐ๋ ์ฃผ์ ํ์ง ์๋ ์ด์ , ์ฅ์ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
ํ์ฅ ํ๋ก๊ทธ๋จ๋ ํ์ํ์ง ์์ต๋๋ค. ๋ค์ด๋ก๋/์ค์นํ๊ฑฐ๋ ํ์ง ์์ต๋๋ค.
ํ ์คํธ ํ์ผ์ด ๋๋ ๊ฒ์ ์ฐจ์ด๋ฅผ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด github์๋ "์์ ๋ณด๊ธฐ(view raw)" ์ต์ ์ด ์๋๋ฐ ์ด ์ต์ ์ ์ด์ ๊นจ์ก์ต๋๋ค.
๋นํ์ฑํ๋ ๊ฒฝ์ฐ ํ์์ ํฐ์นํ์ง ์๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
์์๋๋ฉด ์ข์ ์ ๋ณด์ ๋๋ค. ๋๋ ์ด๊ฒ์ ์ถ์ธกํ์ ์๋ ์์ง๋ง ์ค์ ๋ก๋ ๋ถ๋ช ํ์ง ์์ต๋๋ค. ํ์ผ์ ๋ณด๋ ค๊ณ ํ๋๋ฐ ๋ ๋๋ง์ด ๋์ง ์์ ๋นํฉ์ค๋ฝ์ต๋๋ค. ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ๋น ํ์ด์ง๋ฅผ ํ์ํ๋ ๋์ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ๋ง๋ฌ์ ๋ ์ํํ ์ ์๋ค๋ ํํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ ๋ ๋๋ถ๋ถ์ ์ฌ์ฉ์์๊ฒ ์ต๊ณ ์ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๋์์ธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ ์ค์ํ๊ฒ ์๊ฐํ๋ฏ๋ก ์ ๋ ฅ์ ์ค์ํ๊ฒ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ด๊ฐ ๋ฐ์ ๋๊ณ ์๋ ๋๋ฌธ ๊ฒฝ์ฐ์ผ ๊ฒ์ ๋๋ค. ์ ๊ทผ ๋ฐฉ์์ ๋ํด ํ ๋ก ํ์ง ๋ง์ญ์์ค. ์ ํจํ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ ๋ํ ๋งํฌ๊ฐ ์๊ณ ํด๋น ๋งํฌ๋ฅผ ํด๋ฆญํ๊ณ ์ค์น ๋ํ ์์๋ง ๋ณด๊ณ ํ ์คํธ ํ์ผ๋ก ์ด๋ํ์ง ์์ผ๋ฉฐ ์ค์ ๋ก ์์ค๋ฅผ ๋ณด์ง ์๋ ๋์์ ์ํฉ๋๋ค. ๋๋ Greasemonkey๊ฐ ๊ทธ๋ฐ ์์ผ๋ก ํ๋ํ๊ฒ ๋ง๋๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํ ๊ฒ์ ๋๋ค. ๊ธฐ๊ฐ.
WebExt ์ด์ ์๋ http-on-modify-request ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋ชจ์์ ์์ฒญ์ ์ผ์ ์ค๋จํ์ต๋๋ค . ์ค์น ๋ํ ์์๋ฅผ ํธ๋ฆฌ๊ฑฐํ๊ณ RemoteScript ์์ ์ ์์ํ์ฌ ์ ์์ฒญ์ ๋ชจ๋ ๋ถ๋ถ์ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด๊ฒ์ด ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ ๋ชจ์์ URL์์ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋ ๊ฒ(์: HTML)์ ๊ฐ์งํ๋ฉด ์์ ํ ์์ฒญ์ ์ทจ์ ํ๊ณ ... ๋ฌด์ธ๊ฐ๊ฐ ํ์์ ๋ค์ ์์ํ ๊ฒ์ ๋๋ค(์ฑ๋์ ์ ํํ ์ฌ๊ฐํ๋ ๊ฒ์ผ๋ก ์๊ฐํ์ง๋ง ๋๋ ๊ทธ๊ฒ์ ์ฐพ์ ์ ์์ต๋๋ค).
๋๋ฆฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฒ์์๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ==UserScript==
๋ถ๋ถ์ด ๋ก๋๋๋ฉด ์ค์น ๋ํ ์์๊ฐ ๋ํ๋๊ณ ๋๋จธ์ง๊ฐ ๋ค์ด๋ก๋๋๋ฉด ์งํ๋ฅ ํ์์ค์ด ์ฑ์์ง๋๋ค. ์คํฌ๋ฆฝํธ์ ๋๋จธ์ง ๋ถ๋ถ์ธ ๋ฆฌ์์ค์๋ ๋ค์์ด ํ์ํฉ๋๋ค. , ๋ฑ.
์๋ฒ์ ํ ๋ฒ๋ง ์ฐ๊ฒฐํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
WebExt์์๋ ๋ฌผ๋ก ๋ชจ๋ API๊ฐ ๋ค๋ฅด์ง๋ง, HEAD์ ์ด๋ฏธ onHeadersReceived
์ด๋ฒคํธ๋ฅผ ์ฐจ๋จ/ํํฐ๋งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์์ง ์ฐ๊ตฌ๋ฅผ ํด์ผ ํฉ๋๋ค.
์ ํจํ ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ ๋ํ ๋งํฌ๊ฐ ์๊ณ ํด๋น ๋งํฌ๋ฅผ ํด๋ฆญํ๊ณ ์ค์น ๋ํ ์์๋ง ๋ณด๊ณ ํ ์คํธ ํ์ผ๋ก ์ด๋ํ์ง ์์ผ๋ฉฐ ์ค์ ๋ก ์์ค๋ฅผ ๋ณด์ง ์๋ ๋์์ ์ํฉ๋๋ค. ๋๋ Greasemonkey๊ฐ ๊ทธ๋ฐ ์์ผ๋ก ํ๋ํ๊ฒ ๋ง๋๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ด์ ๋์์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋ค. GM 3.x ์ค์น ๋์ ์์ค ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ๋ ์ต์ ์ด ์์๋๋ฐ ์๋ฌด ๊ฒ๋ ์ค์น๋์ง ์์์ง๋ง ์คํฌ๋ฆฝํธ ์์ค๋ฅผ ํ์ํ๋ ํญ์ด ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ํญ์ ์ค์นํ๊ฑฐ๋ ๋ซ๊ณ ์๋ฌด ๊ฒ๋ ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์์์ต๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์ ์ด๋ ๋ค์ ๋ณด๊ณ ์ถ์ ํ๋์ผ ๊ฒ์ ๋๋ค. ๋์๊ฒ ํญ์ ์์ค๋ฅผ ํ์ํ ํ์๋ ์์ง๋ง ์ด์ ๊ณผ ๊ฐ์ด ๋ฌด์์ด๋ ์ค์น
์ด ์์ฒญ์ ํ๋ ์ด์ ๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์ผ๊ธฐํ ์ ์๋ ํผํด๋ฅผ ๋ณด์๊ธฐ ๋๋ฌธ์ ํญ์ ์ค์นํ๊ธฐ ์ ์ ์์ค๋ฅผ ๊ฒ์ฌํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์๋ ์๋ ์ ๋ฐ์ดํธ๊ฐ ์ฌ์ฉ์์๊ฒ ์๋ก์ด ์ ์ฑ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ก ๋ณด๋ ์ด์ ์ ๋๋ค.
webRequest
ํ๋ฉด ๊ฐ์ง URL ์ ๋ฐํํ์ฌ ๋ก๋๋ฅผ ์ค๋จํ๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์๋ฆฌ์ ๋จธ๋ฌผ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ฐ๊ฒฐ์ด ์ฆ์ ์ค๋จ๋๊ณ ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝํ
์ธ ๋ฅผ ๊ด์ฐฐ/๋ถ์/๋ณ๊ฒฝํ ์๋ ์์ผ๋ฏ๋ก ์ ์ฐ๊ฒฐ์ ์์ํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ(์์ฒญ ๋ฉ์๋, ์๋ต ํค๋)๋ฅผ ๋ฒ์์ ํฌํจํ๊ณ ์์ผ๋ฏ๋ก ์ด๊ฒ์ด ์ค์ ๋ก ์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ธ์ง ์๋์ง์ ๋ํด ์์ ์๊ฒ ๊ฒฐ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ฒฝ์ฐ์๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ฒญ ์ฃผ๊ธฐ์ ๋งค์ฐ ์ด๊ธฐ์.
๋๋ .. ๋ฌด์์ด๋ ์ค์นํ๊ธฐ ์ ์ ๊ฒ์ฌํ ์ ์๋ ์ต์ ์ด ์์์ต๋๋ค ...
์ฌ์ฉ์ ์คํฌ๋ฆฝํธ์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น? ์๋ฅผ ๋ค์ด ๋๋ฆฐ ๋ก๋๋ฅผ ์๋ก ๋ค์ด ์ด๊ธฐ // ==UserScript==
์ ๊ฑฐํ๋ฉด ๋ฉ๋๋ค. 3.x์์ ์ด๋ฉด ์ค์น ๋ํ ์์๊ฐ ์ด๋ฆฌ์ง ์๊ณ (์ฌ๋ฐ๋ฅธ) ํ
์คํธ ๋ด์ฉ์ด ํญ/ํ์ด์ง์ ๊ธฐ๋ก๋ฉ๋๋ค. WebEx๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ ์ฐ๊ฒฐ์ ๋ง๋๋ ๊ฒฝ์ฐ ํ์ด์ง์ ๋ด์ฉ์ ์ฐ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ํ์ด์ง์ ์ผ๋ถ ์ฝํ
์ธ ๋ฅผ ์ฐ๋ ์ ์ผํ ์ง์ ์ ์ธ ๋ฐฉ๋ฒ์ ์คํธ๋ฆผ ํํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
๋๋ ๊ทธ๊ฒ์ 'ํด๊ฒฐ'ํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํ ์ ์์ต๋๋ค. ๋ค์ ์ข์ ์๋ฃจ์ ์ด ์์ต๋๋ค. ๋ด์ฉ์ ๋ฐ์ํ๋ ๋ด์ฉ ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค(๊ฐ๋ฅํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค). ํ์ฅ ํ์ด์ง๋ก ๋ฆฌ๋๋ ์ ํ์ง๋ง ๊ธฐ๋ก์ด ๊นจ์ง๋๋ค. ๋๋ ์คํฌ๋ฆฝํธ ๊ฒ์ฌ๋ฅผ ๋ฌด์ํ๋๋ก ์ค์ ๋ ์ผ๋ถ ํ๋๊ทธ๋ก FF๊ฐ ์์ฒญ์ ๋ค์ ์์ํ๋๋ก ํฉ๋๋ค. ๊ทผ๋ฐ 3๋ฒ์งธ ๋ถํ์ธ๋ฐ..
๋ญ๊ฐ ๋น ์ง๊ฒ ์๋๊น..
3.x์์ ์ด๋ฉด ์ค์น ๋ํ ์์๊ฐ ์ด๋ฆฌ์ง ์๊ณ (์ฌ๋ฐ๋ฅธ) ํ ์คํธ ๋ด์ฉ์ด ํญ/ํ์ด์ง์ ๊ธฐ๋ก๋ฉ๋๋ค.
์, ์ด ์ ์ ์์ ํ๊ณ ์ถ์ต๋๋ค. ์ ๊ฐ ํ๋ ธ์ต๋๋ค. ์ฒ์์ ํ
์คํธํ ๋ user
์คํ๊ฐ ์์์ต๋๋ค.
@Sxderp ๋ ๊ทํ๊ฐ ์ง๊ธ๊น์ง ๊ธฐ์ฌํ ๋ฐ๋ฅผ ๋งค์ฐ ์์คํ๊ฒ ์๊ฐํ๋ฉฐ ๊ณ์ ์ด์ด๋๊ฐ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ๋ฌ๋ ์์ ์ค๋ช ๋ ๋ด ๊ฒฐ์ ์ ๋ํด ์ข ๋ ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด: ์งํ ์ค์ธ ์์ ์ ์ ๋ฆฌํ์ต๋๋ค. ๋จผ์ ๊ด๋ จ ์๋ ์์ ์ ๋ณ๋์ ์ปค๋ฐ ์ผ๋ก ์ฎ๊ฒผ์ต๋๋ค. ๋จ์ ๊ฒ์ ํ์ผ ์ด๋ฆ์ ๋ฐ๊พผ ๋ค์ +425-491์ ๋ถ๊ณผํ ์ด ํฐ ์ปค๋ฐ ์ ๋๋ค.
Downloader
ํด๋์ค๋ ์์ค์ ๊ด๊ณ์์ด ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ ์ค์นํ๋ ๋ชจ๋ ๋
ผ๋ฆฌ๋ฅผ ์บก์ํํฉ๋๋ค. ์
๋ ฅ์ ์ค์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ค์น๋ฅผ ์ํ URL๋ฟ ์๋๋ผ ๊ธฐ๋ณธ ์คํฌ๋ฆฝํธ ์์ค์ ํ์/๋ฆฌ์์ค ์ฝํ
์ธ ๋ ์ด๋ฏธ ์๋ ค์ง ๊ฒฝ์ฐ(ํธ์ง ์ฌ๋ก์ ๊ฒฝ์ฐ) ๋๋ฝ๋ ๋ค๋ฅธ ํญ๋ชฉ์ ๋ค์ด๋ก๋ํฉ๋๋ค(์ฆ, ์ ์๊ตฌ ์ฌํญ์์ ํธ์ง /resource) ํญ์ ๋์ผํ ํ์์ user-script-regstry
์ ๋ฌํ์ฌ ํ ๊ฐ์ง ๋ฐฉ์์ผ๋ก๋ง ์ ์งํฉ๋๋ค. ์ ์ฒด downloader.js
๋ 250์ค ๋ฏธ๋ง์
๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋/์ปจํ
์ธ ๊ฐ์ ์ ๋ฌ๋๋ ๋ฉ์์ง๊ฐ ์ค์ด๋ค๊ณ ์ ํฌํธ๊ฐ ์์ต๋๋ค.
ํฌ๊ณ ๋ณต์กํ ์ฝ๋๋ฅผ ๋ ์๊ณ ๋จ์ํ ์กฐ๊ฐ์ผ๋ก ๋๋๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ IMO๋ ์ด๊ฒ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๊ฐ "์" ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ๋ , ์ ๋ฐ์ดํธํ๋ , ์ ์๋ฆฌ์์ ํธ์งํ๋ ์๊ด์์ด ํ๋ฅด๋ ๋ฐ์ดํฐ๋ ๋์ผํฉ๋๋ค. ์ฌ์ํ ๋ถ๋ถ๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค(์ด๋ฏธ ์ค์น๋ ์คํฌ๋ฆฝํธ์ UUID๋ฅผ ์ด๋ฏธ ์๊ณ ์์ต๋๊น? ์ด๋ฏธ ์๊ณ ์๊ฑฐ๋ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๊น?).
์ด๊ฒ์ ๋ํ parsedDetails
์ ์ฌ๊ท ๊ตฌ์กฐ๋ฅผ ํด๊ฒฐํฉ๋๊น(๋ฌธ์ ๊ฐ ์ด๋๊ฐ์ ์๋๋ฐ ์ฐพ์ ์๊ฐ์ด ์์ต๋๊น?)
๋ชจ๋ฅด๊ฒ ์ด์. ๋๋ ๊ทธ๊ฒ์ ์์ฌ?
์ด๊ฒ์ ๋ํ parsedDetails์ ์ฌ๊ท ๊ตฌ์กฐ๋ฅผ ํด๊ฒฐํฉ๋๊น(์ด๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐพ์ ์๊ฐ์ด ์์ต๋๋ค)?
#2806 ๋ง์ํ์๋ ๊ฑด๊ฐ์?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์ค ์ฝ๋๋ฅผ ๊ฒํ ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋ฐํ๋์ง ์์ผ๋ฉด ์ ๋ง ์ฌํ ๊ฒ์ ๋๋ค. ๋๋ ํญ์ ์ฝ๋๋ฅผ ํ์ด๋ณด๊ณ ๋ ํธ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์๋ ค์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๊ณต์์ ์ผ๋ก ํธ์คํ ๋๋ jQuery ๋ฑ)๋ฅผ ๊ฐ๋ฆฌํค์ง ์๋ @require ํฌํจ์ด ์๋ ๊ฒฝ์ฐ, ์ ๋ ํญ์ ํ์์ ์ด๋ฉฐ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ ์ ๋ง๋ก ํ์ํ์ง ์๋ ํ ์ผ๋ฐ์ ์ผ๋ก ์ค์น๋ฅผ ์ค๋จํฉ๋๋ค(์ด ๊ฒฝ์ฐ @require ์ ๋ด์ฉ์ ํ์ด
ํ์ง๋ง ๋ด๊ฐ ์์ธ์ด๊ณ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฝ๋๋ฅผ ๋ณด๊ฑฐ๋ ์ดํดํ์ง ๋ชปํ๋ค๊ณ ํด๋ ์คํฌ๋ฆฝํธ ์์ฑ์๊ฐ ์ค์นํ ๋ ์์ค๊ฐ ํ์๋๋ค๋ ๊ฒ์ ์๋๋ก ํ๋ ์๋ฐฉ ํจ๊ณผ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ์ ํ ์์ค ์ฝ๋๋ฅผ ํ์ํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋ view-source: ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ ๋ ์์ค ์ฝ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ญ์์ค(๋ํ @require ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋๋ ๊ฒ์ด ๋ฐ๋์งํจ).