์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 2.4 ๋ฐ Min 1.22

์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋Š” ๋ฐ ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ตœ์†Œํ•œ์˜ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค์™€ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ Vim ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์Šคํƒ€์ผ์˜ ํƒ์ƒ‰ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 2.4 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” PyQt5 ๋ฐ QtWebEngine์„ ์‚ฌ์šฉํ•˜์—ฌ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋Š” GPLv3 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ์˜ ๋ Œ๋”๋ง ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„์€ Blink ์—”์ง„๊ณผ Qt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ Python์„ ์‚ฌ์šฉํ•ด๋„ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋Š” ํƒญ ์‹œ์Šคํ…œ, ๋‹ค์šด๋กœ๋“œ ๊ด€๋ฆฌ์ž, ๊ฐœ์ธ ํƒ์ƒ‰ ๋ชจ๋“œ, ๋‚ด์žฅ PDF ๋ทฐ์–ด(pdf.js), ๊ด‘๊ณ  ์ฐจ๋‹จ ์‹œ์Šคํ…œ(ํ˜ธ์ŠคํŠธ ์ฐจ๋‹จ ์ˆ˜์ค€) ๋ฐ ํƒ์ƒ‰ ๊ธฐ๋ก์„ ๋ณด๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. YouTube์—์„œ ๋น„๋””์˜ค๋ฅผ ์‹œ์ฒญํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "hjkl" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ฃผ์œ„๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, "o"๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒญ ๊ฐ„ ์ „ํ™˜์€ "J" ๋ฐ "K" ํ‚ค ๋˜๋Š” "Alt-tab ๋ฒˆํ˜ธ"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ":"๋ฅผ ๋ˆ„๋ฅด๋ฉด ํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋ ค๋ฉด ":q", ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ":w"์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ vim ์Šคํƒ€์ผ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋งํฌ์™€ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” "ํžŒํŠธ" ์‹œ์Šคํ…œ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 2.4 ๋ฐ Min 1.22

์ƒˆ ๋ฒ„์ „์—์„œ:

  • URL ์ฒ˜๋ฆฌ๊ธฐ ์ธ์ˆ˜ ์กฐ์ž‘์„ ํ†ตํ•ด ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” ์ทจ์•ฝ์ (CVE-2021-41146)์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” Windows ํ”Œ๋žซํผ์šฉ ๋นŒ๋“œ์—์„œ๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Windows์—์„œ๋Š” "qtebrowserurl:" ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ํƒ€์‚ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด qutebrowser์—์„œ ๋ช…๋ น ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ":spawn" ๋ฐ ":debug-pyeval" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • /etc/hosts๋ฅผ ํ†ตํ•œ ๋„๋ฉ”์ธ ๋ฆฌ๋””๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ด‘๊ณ  ์ฐจ๋‹จ๊ธฐ์—์„œ ํ•˜์œ„ ๋„๋ฉ”์ธ ์ฐจ๋‹จ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "content.blocking.hosts.block_subdomains" ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ผํ•ฉ ์ฝ˜ํ…์ธ  ๋‹ค์šด๋กœ๋“œ(HTTPS๋ฅผ ํ†ตํ•ด ์—ด๋ฆฐ ํŽ˜์ด์ง€์—์„œ HTTP๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค ๋‹ค์šด๋กœ๋“œ)๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด "downloads.prevent_mixed_content" ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • "--private" ํ”Œ๋ž˜๊ทธ๊ฐ€ ":tab-clone" ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์–ด ์ƒˆ ๋น„๊ณต๊ฐœ ๋ธŒ๋ผ์šฐ์ง• ์ฐฝ์—์„œ ์—ด๋ฆฌ๋Š” ํƒญ์˜ ๋ณต์ œ๋ณธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์—, ์ฃผ์†Œ ํ‘œ์‹œ์ค„ ์กฐ์ž‘์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋œ ์ตœ์†Œํ•œ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒˆ ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €์ธ Min 1.22๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” Electron ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋˜๋ฏ€๋กœ Chromium ์—”์ง„๊ณผ Node.js ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Min ์ธํ„ฐํŽ˜์ด์Šค๋Š” JavaScript, CSS ๋ฐ HTML๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ๋Š” Linux, macOS ๋ฐ Windows์šฉ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Min์€ ํƒญ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์—ด๋ ค ์žˆ๋Š” ํŽ˜์ด์ง€ ํƒ์ƒ‰์„ ์ง€์›ํ•˜๋ฉฐ, ํ˜„์žฌ ํƒญ ์˜†์— ์ƒˆ ํƒญ ์—ด๊ธฐ, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒญ(ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šคํ•˜์ง€ ์•Š์€ ํƒญ) ์ˆจ๊ธฐ๊ธฐ, ํƒญ ๊ทธ๋ฃนํ™” ๋ฐ ๋ชจ๋“  ํƒญ ๋ณด๊ธฐ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก. ๋‚˜์ค‘์— ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์—ฐ๋œ ์ž‘์—…/๋งํฌ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋Š” ๋„๊ตฌ๋Š” ๋ฌผ๋ก  ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ๋ถ๋งˆํฌ ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—๋Š” ๊ด‘๊ณ  ์ฐจ๋‹จ(EasyList ๋ชฉ๋ก์— ๋”ฐ๋ผ) ์‹œ์Šคํ…œ๊ณผ ๋ฐฉ๋ฌธ์ž ์ถ”์  ์ฝ”๋“œ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด๋ฏธ์ง€ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Min์˜ ์ค‘์•™ ์ปจํŠธ๋กค์€ ๊ฒ€์ƒ‰ ์—”์ง„(๊ธฐ๋ณธ์ ์œผ๋กœ DuckDuckGo)์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๊ณ  ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ ํ‘œ์‹œ์ค„์ž…๋‹ˆ๋‹ค. ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ์ž…๋ ฅํ•˜๋ฉด Wikipedia ๊ธฐ์‚ฌ ๋งํฌ, ๋ถ๋งˆํฌ ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์„ ํƒ, DuckDuckGo ๊ฒ€์ƒ‰ ์ถ”์ฒœ ๋“ฑ ํ˜„์žฌ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ด€๋ จ ์ •๋ณด ์š”์•ฝ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—”์ง„. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๋ฆฐ ๊ฐ ํŽ˜์ด์ง€๋Š” ์ƒ‰์ธ์ด ์ƒ์„ฑ๋˜์–ด ์ฃผ์†Œ ํ‘œ์‹œ์ค„์—์„œ ์ดํ›„ ๊ฒ€์ƒ‰์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: "!settings" - ์„ค์ •์œผ๋กœ ์ด๋™, "!screenshot" - ์Šคํฌ๋ฆฐ์ƒท ๋งŒ๋“ค๊ธฐ, "!clearhistory" - ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์ง€์šฐ๊ธฐ ๋“ฑ).

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € qutebrowser 2.4 ๋ฐ Min 1.22

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • ๊ทธ๋ฆฌ๊ณ  ์ฃผ์†Œ ํ‘œ์‹œ์ค„์—๋Š” ์ˆ˜ํ•™์  ํ‘œํ˜„์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "sqrt(2) + 1"์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ด๋ฆฐ ํƒญ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ๊ฐ€ ์ž‘์—… ๋ชฉ๋ก์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ํ™œ์„ฑํ™”๋œ ๋‹คํฌ ํ…Œ๋งˆ์˜ ์„ค์ •์ด ์ค€์ˆ˜๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚ด์žฅ๋œ ํŽ˜์ด์ง€ ๋ฒˆ์—ญ ์‹œ์Šคํ…œ์—์„œ ์ง€์›๋˜๋Š” ์–ธ์–ด ์ˆ˜๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํŽ˜์ด์ง€๋ฅผ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜์—ฌ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ).
  • ํƒญ ์žฌ์ •๋ ฌ์„ ์œ„ํ•œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ์—”์ง„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ Chromium 94 ๋ฐ Electron 15 ํ”Œ๋žซํผ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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