Skip to content

Latest commit

ย 

History

History
46 lines (30 loc) ยท 2.16 KB

File metadata and controls

46 lines (30 loc) ยท 2.16 KB

์ฝœ๋ฐฑ(callback)

์ฝœ๋ฐฑ(callback)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŠน์ • ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์— ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ฑฐ๋‚˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ๋…

  1. ๋น„๋™๊ธฐ ์‹คํ–‰:
    • ์ฝœ๋ฐฑ์€ ๋น„๋™๊ธฐ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์— ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ์™„๋ฃŒ๋˜์—ˆ๊ฑฐ๋‚˜ ํŒŒ์ผ ์ฝ๊ธฐ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ, ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  2. ํ•จ์ˆ˜ ์ธ์ž๋กœ ์ „๋‹ฌ:
    • ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ์ฃผ๋กœ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋‚˜ ๋น„๋™๊ธฐ API์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

JavaScript์—์„œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

function fetchData(callback) {
    setTimeout(() => {
        const data = "Fetched Data";
        callback(data); // ๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋˜๋ฉด ์ฝœ๋ฐฑ ํ˜ธ์ถœ
    }, 1000); // 1์ดˆ ํ›„์— ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
}

function processData(data) {
    console.log("Processing: " + data); // ์ฝœ๋ฐฑ์—์„œ ์ฒ˜๋ฆฌ
}

// fetchData ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ processData๋ฅผ ์ฝœ๋ฐฑ์œผ๋กœ ์ „๋‹ฌ
fetchData(processData);

์ฝœ๋ฐฑ์˜ ์žฅ์ 

  • ์œ ์—ฐ์„ฑ: ์ฝœ๋ฐฑ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ: ๋น„๋™๊ธฐ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ณ  ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ฝœ๋ฐฑ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝ

์ฝœ๋ฐฑ์€ ํŠน์ • ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋กœ, ๋น„๋™๊ธฐ ์ž‘์—… ๋ฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ”ํžˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.