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);

콜백의 μž₯점

  • μœ μ—°μ„±: μ½œλ°±μ„ 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고, λ‹€μ–‘ν•œ μž‘μ—…μ„ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 비동기 처리: 비동기 μž‘μ—…μ„ μ‰½κ²Œ 관리할 수 μžˆμ–΄, μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€κ°€ μ°¨λ‹¨λ˜μ§€ μ•Šκ³  λΆ€λ“œλŸ½κ²Œ λ™μž‘ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

λ©”λͺ¨λ¦¬ 관리

μ½œλ°±μ„ μ‚¬μš©ν•  λ•ŒλŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄, 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ€ μ½œλ°±μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό ν•΄μ œν•΄μ•Ό ν•©λ‹ˆλ‹€. 특히 이벀트 λ¦¬μŠ€λ„ˆμ™€ ν•¨κ»˜ μ‚¬μš©ν•  λ•ŒλŠ” μ£Όμ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

μš”μ•½

μ½œλ°±μ€ νŠΉμ • μž‘μ—…μ΄ μ™„λ£Œλœ ν›„ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ‘œ, 비동기 μž‘μ—… 및 이벀트 기반 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ ν”νžˆ μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μœ μ—°μ„±κ³Ό μž¬μ‚¬μš©μ„±μ„ 높이고, 비동기 처리λ₯Ό 효과적으둜 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.