η„‘μ œ

Callback Function (콜백 ν•¨μˆ˜) λ³Έλ¬Έ

<React>

Callback Function (콜백 ν•¨μˆ˜)

yo-u-loo 2026. 7. 23. 17:24

 

🟑 Callback Function

λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인자둜 μ „λ‹¬λ˜μ–΄, νŠΉμ • μž‘μ—…μ΄ λλ‚œ ν›„ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•œλ‹€.

즉, ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λŠ” 것이 μ•„λ‹ˆλΌ ν•„μš”ν•œ μ‹œμ μ— μ‹€ν–‰ν•  수 μžˆλ„λ‘ λ‹€λ₯Έ ν•¨μˆ˜μ— μ „λ‹¬ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

 

◼️ μ£Όμš” νŠΉμ§•

  • 비동기 μž‘μ—… 처리 (API μš”μ²­, 파일 읽기 λ“±)
  • 이벀트 처리
  • λ°°μ—΄ λ©”μ„œλ“œ (map, filter, forEach)
  • 타이머 (setTimeout, setInterval)

 

◼️ ν•„μš” 이유

비동기 μž‘μ—…μ€ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μ‹œκ°„μ΄ 걸릴 수 μžˆλ‹€.

콜백 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μž‘업이 μ™„λ£Œλœ 이후 μ‹€ν–‰ν•  μ½”λ“œλ₯Ό 미리 전달할 수 μžˆμ–΄ μˆœμ„œλ₯Ό 보μž₯ν•  수 μžˆλ‹€.

function A(callback) {
  setTimeout(() => {
    console.log("μž‘μ—… μ™„λ£Œ");

    callback();
  }, 1000);
}

function B() {
  console.log("콜백 ν•¨μˆ˜ μ‹€ν–‰");
}

A(B);
  • setTimeout의 μž‘μ—…μ΄ λλ‚œ λ’€ callback()이 μ‹€ν–‰λœλ‹€.

 

◼️ κΈ°λ³Έ 문법

function main(callback) {
  // μž‘μ—… μˆ˜ν–‰

  callback();
}

function print() {
  console.log("콜백 ν•¨μˆ˜ μ‹€ν–‰");
}

main(print);
  • print ν•¨μˆ˜λ₯Ό main의 인자둜 μ „λ‹¬ν•˜κ³ , μž‘μ—…μ΄ λλ‚œ λ’€ callback()으둜 μ‹€ν–‰ν•œλ‹€.

 

 

πŸ“ POINT πŸ“

βœ”οΈ 콜백 ν•¨μˆ˜λŠ” ν•¨μˆ˜ 자체λ₯Ό 인자둜 μ „λ‹¬ν•œλ‹€. βœ”οΈ

βœ”οΈ ν•¨μˆ˜λ₯Ό μ¦‰μ‹œ μ‹€ν–‰ν•˜λŠ” 것이 μ•„λ‹ˆλΌ ν•„μš”ν•œ μ‹œμ μ— ν˜ΈμΆœν•œλ‹€. βœ”οΈ

βœ”οΈ JavaScript의 λ§Žμ€ λ‚΄μž₯ ν•¨μˆ˜(map, filter, forEach, setTimeout)도 콜백 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€. βœ”οΈ

βœ”οΈ μ΅œκ·Όμ—λŠ” 비동기 처리λ₯Ό μœ„ν•΄ Promise와 async/awaitλ₯Ό 더 많이 μ‚¬μš©ν•˜μ§€λ§Œ,

콜백 ν•¨μˆ˜λŠ” μ—¬μ „νžˆ JavaScript의 κΈ°λ³Έ κ°œλ…μœΌλ‘œ 맀우 μ€‘μš”ν•˜λ‹€. βœ”οΈ

 

 

πŸ“‹ λŒ€ν‘œμ μΈ 콜백 ν•¨μˆ˜ μ‚¬μš© 예 πŸ“‹

ν•¨μˆ˜ 콜백 μ‹€ν–‰ μ‹œμ 
setTimeout() μ§€μ •ν•œ μ‹œκ°„μ΄ μ§€λ‚œ ν›„
setInterval() μ§€μ •ν•œ μ‹œκ°„λ§ˆλ‹€
forEach() λ°°μ—΄μ˜ 각 μš”μ†Œλ§ˆλ‹€
map() λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό λ³€ν™˜ν•  λ•Œ
filter() λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό 검사할 λ•Œ
addEventListener() μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ

 

'<React>' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Axios vs Fetch  (0) 2026.07.24
Asynchronous Operation (비동기 μž‘μ—…)  (0) 2026.07.23
Axios (μ•‘μ‹œμ˜€μŠ€)  (0) 2026.07.23
useEffect (μœ μ¦ˆμ΄νŽ™νŠΈ)  (0) 2026.07.23
React.js Life Cycle (λ¦¬μ•‘νŠΈμ˜ 생λͺ…μ£ΌκΈ°)  (0) 2026.07.23