Javascript

[JS] ์ด๋ฒคํŠธ ์œ„์ž„

Alexim 2022. 5. 14. 21:43

๐Ÿ“— ์ด๋ฒคํŠธ(event)๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

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

์›น ์ด๋ฒคํŠธ๋Š” ์ฝ”์–ด JavaScript ์–ธ์–ด์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋œ API์˜ ์ผ๋ถ€๋กœ์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํŠน์ • ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๋ฐ˜์‘ํ•˜์—ฌ ์–ด๋–ค ์ผ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹นํ•˜๋Š” ํƒ€์ž…์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์•Œ๋ ค ํ˜ธ์ถœ์„ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.
์ด๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(event handler) ๋ผ ํ•˜๊ณ (์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋•Œ๋–„๋กœ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.), ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ์˜ ํ˜ธ์ถœ์„ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก(register) ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“— ์ด๋ฒคํŠธ ์ „ํŒŒ

DOM ํŠธ๋ฆฌ ์ƒ์— ์กด์žฌํ•˜๋Š” DOM ์š”์†Œ ๋…ธ๋“œ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋Š” DOM ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด๋ฒคํŠธ ์ „ํŒŒ(event propagation)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ „ํŒŒ๋˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ์„œ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง์€ ์ด๋ฒคํŠธ ์œ„์ž„์˜ ํ† ๋Œ€๊ฐ€ ๋˜๋ฏ€๋กœ ์ž ์‹œ ์•Œ์•„๋ณด๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

<html>
    <body>
        <ul id="fruits">
            <li id="apple">Apple</li>
            <li id="banana">Banana</li>
            <li id="orange">Orange</li>
        </ul>
    </body>
</html>

ul ์š”์†Œ์˜ ๋‘ ๋ฒˆ์งธ ์ž์‹ ์š”์†Œ์ธ li ์š”์†Œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒ์„ฑ๋œ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ DOM ์š”์†Œ์ธ ์ด๋ฒคํŠธ ํƒ€๊นƒ์„ ์ค‘์‹ฌ์œผ๋กœ DOM ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค.
์ด๋ฒคํŠธ ์ „ํŒŒ๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ ์ „ํŒŒ๋˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 3๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์บก์ฒ˜๋ง ๋‹จ๊ณ„(capturing phase) : ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์œ„ ์š”์†Œ์—์„œ ํ•˜์œ„ ์š”์†Œ ๋ฐฉํ–ฅ์œผ๋กœ ์ „ํŒŒ
    : ์ž์‹ ์š”์†Œ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ถ€๋ชจ ์š”์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์ž์‹ ์š”์†Œ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ
  • ํƒ€๊นƒ ๋‹จ๊ณ„(target phase) : ์ด๋ฒคํŠธ๊ฐ€ ์ด๋ฒคํŠธ ํƒ€๊นƒ์— ๋„๋‹ฌ
  • ๋ฒ„๋ธ”๋ง ๋‹จ๊ณ„(bubbling phase) : ์ด๋ฒคํŠธ๊ฐ€ ํ•˜์œ„ ์š”์†Œ์—์„œ ์ƒ์œ„ ์š”์†Œ ๋ฐฉํ–ฅ์œผ๋กœ ์ „ํŒŒ
    : ์ž์‹ ์š”์†Œ์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ถ€๋ชจ ์š”์†Œ๋กœ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ

์ฃผ์˜ํ•  ๊ฒƒ์€ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ฒ˜๋ง์€ ๋‘˜ ์ค‘์— ํ•˜๋‚˜๋งŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์บก์ฒ˜๋ง๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒ„๋ธ”๋ง์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์บก์ฒ˜๋ง๊ณผ ๋ฒ„๋ธ”๋ง์€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“— ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง

<style>
  body * {
    margin: 10px;
    border: 1px solid blue;
  }
</style>

<form onclick="alert('form')">FORM
  <div onclick="alert('div')">DIV
    <p onclick="alert('p')">P</p>
  </div>
</form>

๊ฐ€์žฅ ์•ˆ์ชฝ์˜ <p>๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ˆœ์„œ๋Œ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ๋ฒŒ์–ด์ง‘๋‹ˆ๋‹ค.

  1. <p> ์— ํ• ๋‹น๋œ onclick ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ”๊นฅ์˜ <div> ์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ทธ ๋ฐ”๊นฅ์˜ <form> ์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  4. document ๊ฐ์ฒด๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€, ๊ฐ ์š”์†Œ์— ํ• ๋‹น๋œ onclick ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ํ๋ฆ„์„ ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์ด๋ฒคํŠธ๊ฐ€ ์ œ์ผ ๊นŠ์€ ๊ณณ์— ์žˆ๋Š” ์š”์†Œ์—์„œ ์‹œ์ž‘ํ•ด ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ชจ์Šต์ด ๋งˆ์น˜ ๋ฌผ์† ๊ฑฐํ’ˆ์„ ๋‹ฎ์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋ช‡๋ช‡ ์ด๋ฒคํŠธ๋ฅผ ์ œ์™ธํ•˜๊ณค ๋Œ€๋ถ€๋ถ„์˜ ์ด๋ฒคํŠธ๋Š” ๋ฒ„๋ธ”๋ง ๋ฉ๋‹ˆ๋‹ค.

  • ํฌ์ปค์Šค ์ด๋ฒคํŠธ : focus/blur
  • ๋ฆฌ์†Œ์Šค ์ด๋ฒคํŠธ : load/unload/abort/error
  • ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ : mouseenter/mouseleave
    ์œ„ ์ด๋ฒคํŠธ๋Š” ๋ฒ„๋ธ”๋ง์„ ํ†ตํ•ด ์ „ํŒŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ด๋ฒคํŠธ๋“ค์€ ๋ฒ„๋ธ”๋ง์„ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด์˜ ๊ณตํ†ต ํ”„๋กœํผํ‹ฐ์ธ event.bubbles ์˜ ๊ฐ’์ด ๋ชจ๋‘ false์ž…๋‹ˆ๋‹ค.

๐Ÿ“— ์ด๋ฒคํŠธ ์œ„์ž„

์บก์ฒ˜๋ง๊ณผ ๋ฒ„๋ธ”๋ง์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐ•๋ ฅํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ํŒจํ„ด์ธ ์ด๋ฒคํŠธ ์œ„์ž„(event delegation) ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒคํŠธ ์œ„์ž„์€ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๋‹ค๋ค„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์œ„์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ์š”์†Œ๋งˆ๋‹ค ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ , ์š”์†Œ์˜ ๊ณตํ†ต ์กฐ์ƒ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋‹จ ํ•˜๋‚˜ ๋งŒ ํ• ๋‹นํ•ด๋„ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<ul id="post-list">
  <li id="post-1">Item 1</li>
  <li id="post-2">Item 2</li>
  <li id="post-3">Item 3</li>
  <li id="post-4">Item 4</li>
  <li id="post-5">Item 5</li>
  <li id="post-6">Item 6</li>
</ul>

๋ชจ๋“  <li> ํƒœ๊ทธ์— ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ li์š”์†Œ์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด ์ด 6๊ฐœ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ li์š”์†Œ๊ฐ€ 100๊ฐœ๋ผ๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ 100๊ฐœ๋‚˜ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ์š”? ๋งŒ์•ฝ์— ๋™์ ์œผ๋กœ li์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ์ด๋ฒคํŠธ ์œ„์ž„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
6๊ฐœ์˜ li ์š”์†Œ์— ๋ชจ๋‘ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•˜๋Š” ๋Œ€์‹ ์— ๋ถ€๋ชจ ์š”์†Œ์ธ <ul>์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋˜๋ฉด ๋™์ ์œผ๋กœ ์•„์ดํ…œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ด๋ฒคํŠธ๋ฅผ ๋‹ค์‹œ ๋ฐ”์ธ๋”ฉํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค.

์ด๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์ด๋ฒคํŠธ ํ๋ฆ„์— ์˜ํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ์—๋„ ์˜ํ–ฅ(๋ฒ„๋ธ”๋ง)์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์กฐ์ƒ์— ํ• ๋‹นํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ event.target์„ ์ด์šฉํ•˜๋ฉด ์‹ค์ œ๋กœ ์–ด๋””์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“— ์ด๋ฒคํŠธ ์œ„์ž„์˜ ์žฅ์ 

  • ๋งŽ์€ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค.
  • ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ๋•Œ ํ•ด๋‹น ์š”์†Œ์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ์งง์•„์ง‘๋‹ˆ๋‹ค.
  • innerHTML์ด๋‚˜ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋กœ ์š”์†Œ ๋ฉ์–ด๋ฆฌ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— DOM ์ˆ˜์ •์ด ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๐Ÿ“— ์ด๋ฒคํŠธ ์œ„์ž„์˜ ๋‹จ์ 

  • ์ด๋ฒคํŠธ ์œ„์ž„์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ฒ„๋ธ”๋ง ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ช‡๋ช‡ ์ด๋ฒคํŠธ๋Š” ๋ฒ„๋ธ”๋ง ๋˜์ง€ ์•Š๋‹ค๋Š” ๊ฑธ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ ์ˆ˜์ค€์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์‘๋‹ตํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ์ด๋ฒคํŠธ์ด๋“  ์•„๋‹ˆ๋“  ์ƒ๊ด€์—†์ด ๋ชจ๋“  ํ•˜์œ„ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•ด์•ผ ํ•˜๋ฏ€๋กœ CPU ์ž‘์—… ๋ถ€ํ•˜๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ ๋ถ€ํ•˜๋Š” ๋ฌด์‹œํ• ๋งŒํ•œ ์ˆ˜์ค€์ด๋ฏ€๋กœ ์‹ค์ œ๋กœ๋Š” ์ž˜ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜ ๋ฐ ์ฐธ๊ณ