็„ก์ œ

Event (์ด๋ฒคํŠธ) ๋ณธ๋ฌธ

<React>

Event (์ด๋ฒคํŠธ)

yo-u-loo 2026. 7. 8. 15:57

 

๐ŸŸก Event

์›น ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ํ–‰๋™(๋ฒ„ํŠผ ํด๋ฆญ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ๋งˆ์šฐ์Šค ์ด๋™ ๋“ฑ)์ด๋‚˜ ์‹œ์Šคํ…œ์˜ ๋ณ€ํ™”(ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์™„๋ฃŒ ๋“ฑ)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

React๋Š” ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ํŠน์ • ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(Event Handler) ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค.

 

โ—ผ๏ธ ์ฃผ์š” ํŠน์ง•

// HTML ๋ฐฉ์‹
<button onclick="activate()">Click</button>

// React ๋ฐฉ์‹
<button onClick={activate}>Click</button>
  • CamelCase ๋ช…๋ช… ๊ทœ์น™: ํ‘œ์ค€ HTML์˜ ์ด๋ฒคํŠธ ์†์„ฑ์€ ์†Œ๋ฌธ์ž(onclick, onchange)๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, React JSX์—์„œ๋Š” ์นด๋ฉœ ์ผ€์ด์Šค(CamelCase) ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ onClick, onChange๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • ํ•จ์ˆ˜ ํ˜•ํƒœ์˜ ๊ฐ’ ์ „๋‹ฌ: HTML์—์„œ๋Š” ์ด๋ฒคํŠธ ์†์„ฑ์— ๋ฌธ์ž์—ด ํ˜•์‹(onclick="activate()" ๋“ฑ)์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•˜์ง€๋งŒ, React์—์„œ๋Š” ์ค‘๊ด„ํ˜ธ{} ๋‚ด์— ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
  • ํ•ฉ์„ฑ ์ด๋ฒคํŠธ (SyntheticEvent)๋ฅผ ํ†ตํ•œ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ
    • React๋Š” ๋ธŒ๋ผ์šฐ์ € ๊ณ ์œ ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฒคํŠธ๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ , ์ด๋ฅผ ๊ฐ์‹ผ ํ•ฉ์„ฑ ์ด๋ฒคํŠธ(SyntheticEvent) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ, ํŒŒ์ด์–ดํญ์Šค ๋“ฑ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ์ถ”์ƒํ™”๋˜์–ด ์žˆ์–ด, ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ๋ฌธ์ œ๋ฅผ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

โ—ผ๏ธ ์ด๋ฒคํŠธ ๊ฐ์ฒด (Event Object)

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.

function MyInput() {
  function handleChange(event) {
    // event.target: ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ DOM ์š”์†Œ (์—ฌ๊ธฐ์„œ๋Š” <input>)
    // event.target.value: ์ž…๋ ฅ ํ•„๋“œ์— ์ž‘์„ฑ๋œ ํ˜„์žฌ ํ…์ŠคํŠธ ๊ฐ’
    console.log('์ž…๋ ฅ๋œ ๊ฐ’:', event.target.value);
  }

  return (
    <input 
      type="text" 
      onChange={handleChange} 
      placeholder="์—ฌ๊ธฐ์— ์ž…๋ ฅํ•˜์„ธ์š”" 
    />
  );
}

 

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์— ๋ฐ˜์‘ํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. โœ”๏ธ

โœ”๏ธ React์˜ ํ•ฉ์„ฑ ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ ๋•๋ถ„์— ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ ๊ฑฑ์ • ์—†์ด ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ํšจ์œจ์ ์ธ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. โœ”๏ธ

 

'<React>' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Hash URL  (0) 2026.07.14
State (์Šคํ…Œ์ดํŠธ)  (0) 2026.07.08
Props (Properties, ํ”„๋กญ์Šค)  (0) 2026.07.07
Component (์ปดํฌ๋„ŒํŠธ)  (0) 2026.07.07
Create React App(CRA) tool chain  (0) 2026.07.06