Vimium: ์‚ฌ์ดํŠธ ์†Œ์œ ์ž๋กœ์„œ ๋‚ด ํŽ˜์ด์ง€์—์„œ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 01์›” 19์ผ  ยท  27์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: philc/vimium

์ด ๋‹ต๋ณ€์ด ์–ด๋”˜๊ฐ€์— ์žˆ์œผ๋ฉด ์‹ค๋ก€์ง€๋งŒ FAQ ๋˜๋Š” README์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” Vimium์„ ์‚ฌ์šฉํ•˜๋ฉฐ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ๋‚ด ํŽ˜์ด์ง€์˜ ํŠน์ • ์š”์†Œ์— ๋Œ€ํ•œ ํŽธ์ง‘์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ถ”์ ํ•˜๊ธฐ ๋งค์šฐ ์–ด๋ ค์šด ๊นŒ๋‹ค๋กœ์šด JS ์˜ค๋ฅ˜์™€ ๋งŽ์€ ์‚ฌ์šฉ์ž ๊ณ ํ†ต์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์šฐ๋ฆฌ ์ฝ”๋“œ์™€ Vimium ๊ฐ„์˜ ์ถฉ๋Œ๋กœ ์ธํ•œ ๊ฒƒ์ž„์„ ๊นจ๋‹ซ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

"Vimium์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์š”์†Œ๋ฅผ ๊ฐœ์„ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค"๋กœ ์š”์†Œ์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฏธ๋ฆฌ ๋‹ต๋ณ€ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

์›น๋งˆ์Šคํ„ฐ๊ฐ€ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

  • ์žฅ์ : Vimium์„ ์ž๋™์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ : ๋ฐ”๋กœ ๊ฐ€๊ธฐ๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ Vimium์ด ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Œ์„ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น์‚ฌ์ดํŠธ ์†Œ์œ ์ž๊ฐ€ Vimium์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

  • ์žฅ์ : Vimium์ด ์ •์ƒ์ ์ธ ๊ธฐ๋Šฅ์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ค๋ช…์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ : ์ด๊ฒƒ์€ ์ง€๋ฌธ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ด๋ฏธ ์†์‹ค๋œ ์›์ธ์ผ ์ˆ˜ ์žˆ์Œ)

์›น๋งˆ์Šคํ„ฐ๊ฐ€ ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ, ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ์—ฐํ•œ ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. #2532์™€ ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ ์†”๋ฃจ์…˜์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํŽ˜์ด์ง€์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<meta name="keybinding" disable="suggest")">
<script>
  document.querySelector('meta[name="keybinding"]').addEventListener('detect', () => {
    console.log('hi vimium user');
  });
</script>

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์›น๋งˆ์Šคํ„ฐ๊ฐ€

  • Vimium ๊ฐ์ง€
  • Vimium ๋น„ํ™œ์„ฑํ™”

Vimium์€

  • ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ• ์ง€ ์—ฌ๋ถ€๋ฅผ

    1. ํƒœ๊ทธ ๋ฌด์‹œ(ํŽ˜์ด์ง€์—์„œ Vimium์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์ธ์‹)

    2. ๋ฉ”ํƒ€์˜ ๋น„ํ™œ์„ฑํ™” ์†์„ฑ์— ๋”ฐ๋ผ Vimium ๋น„ํ™œ์„ฑํ™”

  • ๋ฉ”ํƒ€ ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฐ์ง€ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€๊ฐ€ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์žˆ์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋ก ์ ์œผ๋กœ ๋‹ค๋ฅธ ํ‚ค ๋ฐ”์ธ๋”ฉ ํ™•์žฅ๋„ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์›น ๋งˆ์Šคํ„ฐ๋Š” Vimium, cVim, Surfing Keys, Saka Key, VimFx, Vimari ๋“ฑ์„ ๋ณ„๋„๋กœ ๊ฐ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  27 ๋Œ“๊ธ€

@vincentwoo... ํ˜„์žฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹ ์ค‘ํ•œ ์ƒ๊ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ๊ณ ๋ คํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ์š” ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋ถ„๋ช…ํžˆ ์–ด๋–ค ๋ฐœ๋„ ๋ฐŸ๊ณ  ์‹ถ์ง€ ์•Š์ง€๋งŒ Vimium์ด ์„ค์น˜๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

+1 ์ด๊ฒƒ์€ ์ •๋ง ์œ ์šฉํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Vimium๋งŒ ์ดˆ๊ธฐํ™”๋œ ๊ฒฝ์šฐ DOM ์ค€๋น„/์ฐฝ ๋กœ๋“œ ์‹œ ๊ฐ€์งœ unload ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://jsfiddle.net/2L36ypys/ f ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํžŒํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ปค๋ฐ‹ adce73cb68f7ca3e3e01ca6fbb08a1008c9c8b90(2016/04/05) ์ดํ›„๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

BTW, ๋” ๋งŽ์€ ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ๋Ÿฌํ•œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” vimium ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋‚ด์ผ ์„ค์น˜ํ•˜๊ณ  ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค๋‹ˆํŽซ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ https://jsfiddle.net/2L36ypys/1/ ์˜ ํ…Œ์ŠคํŠธ์— ๋”ฐ๋ฅด๋ฉด ํŽ˜์ด์ง€๊ฐ€ "loading" ์ผ ๋•Œ "ํ˜ธ์ŠคํŠธ" ํ™˜๊ฒฝ์—์„œ ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vimium์ด unload ์„ค์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฝํŠธ๋ณด๋‹ค ๋จผ์ €

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด Vimium++ ๋Š” ์ด ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ด๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ฒ€์ƒ‰์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ Vimium์„ ์‚ฌ์šฉ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•˜๋Š” 2๋…„ ๋œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/EvanHahn/Detect-Vimium

@pimlottc Vimium ์ด ๋…ธ๋“œ๋ฅผ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด 'shadowDOM'์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ ๊ธฐ๋Šฅ์ด 1~2๋…„ ๋™์•ˆ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Vimium ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด ์‚ฌ์ดํŠธ์—์„œ ๊ฒช๋Š” ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํžˆ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค(Vim์„ ๊ฐœ์ธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Œ). ํ™•์žฅ์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์š”์†Œ์— ์ผ์ข…์˜ vimium ๊ด€๋ จ CSS ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ํ…Œ์ด๋ธ”์— ์žˆ์Šต๋‹ˆ๊นŒ?

ํ™•์žฅ์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์š”์†Œ์— ์ผ์ข…์˜ vimium ๊ด€๋ จ CSS ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ํ…Œ์ด๋ธ”์— ์žˆ์Šต๋‹ˆ๊นŒ?

์ข‹์€ ์•„์ด๋””์–ด์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

Vimium์ด ์ผ๋ถ€ ์‚ฌ์ดํŠธ์—์„œ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ์‚ฌ์ดํŠธ์—์„œ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํ˜ผ๋ž€์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

๋˜ํ•œ ๊ท€ํ•˜์˜ ์•„์ด๋””์–ด๋ฅผ ์ถ”๊ตฌํ–ˆ๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ Vimium์„ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜๋„ ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์€. Vimium์ด ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์ตœ์†Œํ•œ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ๋Š” ์ด์ƒํ•œ ์ƒํ˜ธ ์ž‘์šฉ์œผ๋กœ ์ธํ•ด ๊ณ ์žฅ์ด ๋‚ฌ์„ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ๋น„๋‚œํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์„œ๋น„์Šค๋Š” ์ด๋ฏธ ๋งค์šฐ ๋ณต์žกํ•œ ํŽธ์ง‘ ํ™”๋ฉด(CodeMirror)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์–ธ๊ฐ€ ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Vimium์ด ์ตœ์†Œํ•œ DOM์— ์–ด๋–ค ์‹์œผ๋กœ๋“  ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ตœ์†Œํ•œ

Vimium์ด ์ตœ์†Œํ•œ DOM์— ์–ด๋–ค ์‹์œผ๋กœ๋“  ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด...

์šฐ๋ฆฌ๋Š” ๋ชจ๋“ (์ตœ์ƒ์œ„) ํŽ˜์ด์ง€์— Vomnibar๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํด๋ž˜์Šค๋‚˜ ID๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

@smblott-github ๋‚ด ์ƒ๊ฐ์€ Vimium์ด <div> ์—์„œ <vimium-ui> ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์„€๋„์šฐ ํ˜ธ์ŠคํŠธ ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พผ ๋‹ค์Œ <html> ์˜ ์ž์‹์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํƒœ๊ทธ ์ด๋ฆ„์— ๋Œ€ํ•ด ์ด ์‚ฌ์šฉ์ž ์ •์˜ ์š”์†Œ ํƒœ๊ทธ ์ด๋ฆ„์€ ๋‹ค๋ฅธ ์›น ์‚ฌ์ดํŠธ์™€ ๋™์ผํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.'

๋‚ด ์ƒ๊ฐ์€ Vimium์ด <div> ์—์„œ <vimium-ui> ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์„€๋„์šฐ ํ˜ธ์ŠคํŠธ ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พผ ๋‹ค์Œ ์ด ํƒœ๊ทธ ์ด๋ฆ„์— ๋Œ€ํ•ด <html> ์˜ ์ž์‹์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

์ด Chromium ๋ฌธ์ œ๋กœ ์ธํ•ด ํ˜„์žฌ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์›น์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

var xhr = new XMLHttpRequest(),
    vimiumEnabled = false;
xhr.onerror = xhr.onload = function(){vimiumEnabled = xhr.responseText !== "";};
xhr.open("GET","chrome-extension://dbepggeogbaibhgnhhndojpepiihcmeb/content_scripts/vimium.css");
xhr.send()

@mrmr1993 "์‚ฌ์šฉ์ž ์ •์˜" ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ํƒœ๊ทธ ์ด๋ฆ„์ด ์žˆ๋Š” HTMLElement ๋งŒ๋“ญ๋‹ˆ๋‹ค. HTMLElement ๋…ธ๋“œ๋Š” HTMLUnknownElement ๋น„์Šทํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ shadowRoot ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

์›น๋งˆ์Šคํ„ฐ๊ฐ€ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

  • ์žฅ์ : Vimium์„ ์ž๋™์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ : ๋ฐ”๋กœ ๊ฐ€๊ธฐ๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ Vimium์ด ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ์Œ์„ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น์‚ฌ์ดํŠธ ์†Œ์œ ์ž๊ฐ€ Vimium์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

  • ์žฅ์ : Vimium์ด ์ •์ƒ์ ์ธ ๊ธฐ๋Šฅ์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ค๋ช…์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ : ์ด๊ฒƒ์€ ์ง€๋ฌธ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ด๋ฏธ ์†์‹ค๋œ ์›์ธ์ผ ์ˆ˜ ์žˆ์Œ)

์›น๋งˆ์Šคํ„ฐ๊ฐ€ ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ, ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ์—ฐํ•œ ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. #2532์™€ ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ ์†”๋ฃจ์…˜์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํŽ˜์ด์ง€์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<meta name="keybinding" disable="suggest")">
<script>
  document.querySelector('meta[name="keybinding"]').addEventListener('detect', () => {
    console.log('hi vimium user');
  });
</script>

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์›น๋งˆ์Šคํ„ฐ๊ฐ€

  • Vimium ๊ฐ์ง€
  • Vimium ๋น„ํ™œ์„ฑํ™”

Vimium์€

  • ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ• ์ง€ ์—ฌ๋ถ€๋ฅผ

    1. ํƒœ๊ทธ ๋ฌด์‹œ(ํŽ˜์ด์ง€์—์„œ Vimium์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์ธ์‹)

    2. ๋ฉ”ํƒ€์˜ ๋น„ํ™œ์„ฑํ™” ์†์„ฑ์— ๋”ฐ๋ผ Vimium ๋น„ํ™œ์„ฑํ™”

  • ๋ฉ”ํƒ€ ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฐ์ง€ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€๊ฐ€ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์žˆ์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋ก ์ ์œผ๋กœ ๋‹ค๋ฅธ ํ‚ค ๋ฐ”์ธ๋”ฉ ํ™•์žฅ๋„ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์›น ๋งˆ์Šคํ„ฐ๋Š” Vimium, cVim, Surfing Keys, Saka Key, VimFx, Vimari ๋“ฑ์„ ๋ณ„๋„๋กœ ๊ฐ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ € ์—ญ์‹œ vimium์„ ๊ฐ์ง€ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @eejdoowad ์˜ ์ œ์•ˆ์ด ๋ฉ‹์ ธ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•œํŽธ ๋‚˜๋Š” @gdh1995 ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. <div> ํŠน์œ ์˜ id/classname์„ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ๋กœ์„œ๋Š” ์ฆ‰์‹œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

vimium v1.59๋ถ€ํ„ฐ ์•„๋ž˜๋Š” ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹๋ณ„์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํžˆ ์‹ ๋ขฐํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. vimium๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ shadowDom์„ ์‚ฝ์ž…ํ•˜๋Š” ๋‹ค๋ฅธ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์œผ๋ฉด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

function hasVimium () {
  try {
    const shadowRoot = document.querySelector('html > div').shadowRoot;
    return Boolean(shadowRoot.querySelector('style').textContent.match(/vimium/));
  } catch (e) {
    return false;
  }
}

๋‚ด์žฅ๋œ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ตฌํ˜„๋˜๋ฉด ๊ฑฑ์ •ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์›น์‚ฌ์ดํŠธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธˆ์ง€ํ•˜์ง€ ์•Š๋Š” ํ•œ DOM์„ ๋ณ€๊ฒฝํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€๋ฌธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ ์–ด๋„ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ถ”์ ํ•  ์‰ฌ์šด ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ ๋Œ€์ƒ์„ ์ œ๊ณตํ•˜์ง€๋Š” ๋ง์ž...

Vimium์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ Vimium ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ํ‘œ์‹œํ•  ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š” ๋ฉ”ํƒ€ ํƒœ๊ทธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Vimium์€ ์‚ฌ์†Œํ•œ ๊ฐ์ง€๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๋ฐ˜๋“œ์‹œ ๋ฐฐ์šธ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ https://github.com/philc/vimium/issues/2504 ์™€ ๊ฐ™์€ ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งค์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์š”์•ฝํ•˜๋ฉด vimium์„ ์‹คํ–‰ํ•˜๋ฉด ์›น ์‚ฌ์ดํŠธ๊ฐ€ ๋ฐ˜์‘ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์Œ“์ด๋ฉด์„œ ์ ์  ๋Š๋ ค์ง‘๋‹ˆ๋‹ค.

์›น์‚ฌ์ดํŠธ๊ฐ€ ๋‹ค์Œ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ ์ค‘์ธ vimium ๋ฒ„์ „
  2. vimium์ด ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”/๋ถ€๋ถ„์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€(๋ฐ ์–ด๋–ค ํ‚ค).

๊ทธ๋ฆฌ๊ณ  ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…ํ™•ํ•œ ๋ฐฉ์‹์œผ๋กœ vimium์„ ์ •์ค‘ํ•˜๊ฒŒ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: vimium ์•„์ด์ฝ˜์ด ๋” ์ด์ƒ ํŒŒ๋ž€์ƒ‰์ด ์•„๋‹˜)

@mgsloan ์˜ˆ์ œ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฝ์ž… ๋ชจ๋“œ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์€ #2504 ์ดํ›„๋กœ ํฌ๊ฒŒ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(์‚ฌ์ดํŠธ์—์„œ ์ผ๋ฐฉ์ ์œผ๋กœ Vimium์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ƒ๋‹นํžˆ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

@smblott-github ์•ˆ๋…•ํ•˜์„ธ์š”, ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์‹ค์ œ๋กœ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—„์ฒญ๋‚œ!

์ผ๋ถ€ ์ž…๋ ฅ ๋™์ž‘์ด vimium์ด ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์™€ ์ƒ๋‹นํžˆ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. URL์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฌธ์˜ํ•˜๊ณ  ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”! ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ ์–ด๋–ค ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„์„ ๊ธฐ๊บผ์ด ๊ธฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ(๋Œ€๋ถ€๋ถ„์˜ vimium ์‚ฌ์šฉ์ž๋Š” CoderPad๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค) ๋ฐœ๊ฐ€๋ฝ์„ ๋ฐŸ๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

Vimium์ด ๊ธฐ๋Œ€ํ•˜๋Š” ํ•ต์‹ฌ ํฌ์ธํŠธ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ํ†ต์ด๋‚˜ ์„ฑ๊ฐ€์‹ฌ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์‚ฌ์ดํŠธ์—๋Š” ์ž…๋ ฅ ์ƒ์ž์˜ esc ๋ฅผ ํฌํ•จํ•˜์—ฌ Vimium๊ณผ ๋‹ค๋ฅธ ๋ช‡ ๊ฐ€์ง€ ํŠน๋ณ„ํ•œ ์ž‘์—…์ด ์žˆ์œผ๋ฏ€๋กœ Vimium์ด ์˜ต์…˜ ํŽ˜์ด์ง€์—์„œ <esc> ๋ฅผ "์ œ์™ธ"ํ•˜๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์‚ฌ์ดํŠธ์˜ ์ž‘์—…์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ˜„์žฌ <esc> ๋Š” ์ œ์™ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋‚˜ Vimium์ด ํŠน๋ณ„ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋ฉด ์ž์ฒด์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ์•„์ด๋””์–ด๋Š” ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Vimium์˜ ๊ฐ€์น˜์— ํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Vimium ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค.

  • Vimium์˜ ๋ฒ„์ „ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ์›น ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ

    • ๋” ์ •ํ™•ํ•˜์ง€๋งŒ Vimium์˜ ๋‹ค๋ฅธ ๋ณ€ํ˜•์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด "Vimium C"๋ฅผ ๋งŒ๋“ค๊ณ  ํ™•์žฅ ID๊ฐ€ ๋‹ค๋ฅด๊ณ  ๋ฆฌ์†Œ์Šค URL๋„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค)

  • ๋˜๋Š” Vimium์—์„œ ๋งŒ๋“ค๊ณ  "Vimium"๊ณผ ๊ฐ™์€ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ํŠน์ˆ˜ <meta> ํƒœ๊ทธ

    • ํ™•์ธํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ๋งฌ์›จ์–ด์— ์˜ํ•ด ๋‚จ์šฉ๋  ์ˆ˜ ์žˆ์Œ

์ตœ์ƒ์œ„ div๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•  ๋•Œ๊นŒ์ง€ ๋” ์ด์ƒ ๋งˆ์šดํŠธ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฆ‰, ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์˜์กดํ•  ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰