์ผ๋ฐ˜ Firefox ๊ธฐ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ Developer Edition์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ

์„œ๋ช…๋˜์ง€ ์•Š์€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•˜๊ณ  WebExtensions Experiments API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ž ๊ธˆ ํ•ด์ œ๋œ Firefox ๋นŒ๋“œ๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” Mozilla ๋ฐ ๋ฐฐํฌํŒ์˜ ์ •์ฑ…์— ๋Œ€ํ•œ ์˜๊ฒฌ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ์ผ๋ฐ˜ Firefox ๋นŒ๋“œ๋ฅผ "Developer Edition" ๋ณ€ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ์„œ๋ช… ์—†์ด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Firefox์˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด ECMAScript ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜๊ณ  ๋ชจ๋“  Firefox ๋ฒ„์ „์— ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์„ค์ •๋œ ์ƒ์ˆ˜ ๊ฐ’์— ๋”ฐ๋ผ ๋Ÿฐํƒ€์ž„์— ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ธํ•ด ๋„๊ตฌ ๊ฐœ๋ฐœ์ด ์ด‰์ง„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์ˆ˜(โ€œMOZ_DEV_EDITIONโ€, โ€œMOZ_REQUIRE_SIGNINGโ€)๋Š” zip ์•„์นด์ด๋ธŒ โ€œ/usr/lib/firefox/omni.jaโ€์— ์žˆ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ(โ€œmodules/addons/AddonSettings.jsmโ€)์— ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” esprima-python์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  AST๋ฅผ ํŒจ์น˜ํ•œ ํ›„ jscodegen.py๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง๋ ฌํ™”ํ•ฉ๋‹ˆ๋‹ค. zip ํ˜•์‹ ์ž‘์—…์€ libzip.py(libzip์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ)์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ง€์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ํœ  ํ˜•์‹์˜ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ์ข…์†์„ฑ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ œํ•œ ์‚ฌํ•ญ "{", "==" ๋ฐ "~="๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋Š” unpin.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋ณธ ์„ค์ • ์‹œ pip๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์ž๋™ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€