serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/2장/2.59 / 40

2.5 · 프로세스와 동시성

콜백 함수는 왜 필요할까?

작업이 언제 끝날지 모를 때 결과를 받을 코드를 어떻게 알려줄까요?

호출자는 “완료되면 이 함수를 불러줘”라고 함수 자체를 전달할 수 있습니다.

먼저 생활 비유

피자 주문과 전화번호

가게 앞에서 기다리지 않고 집에 가면서 완성되면 연락할 번호를 남기는 방식입니다.

컴퓨터 예제로 바꾸기

파일 읽기 완료 처리

readFile("a.txt", onDone);

readFile은 작업을 시작하고 돌아옵니다. 나중에 완료 이벤트가 생기면 onDone이 실행됩니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

함수 전달

호출할 코드 조각을 인자로 넘깁니다.

실행권과 상태실행 · CPU 차례대기 · 메모리 · 운영 체제함수 전달단계 1작업 시작단계 2즉시 반환단계 3완료 이벤트단계 4콜백 호출단계 5onDone 함수현재: 함수 전달

이 그림에서 기억할 한 문장

콜백은 작업 결과가 생길 미래 시점에 실행할 코드를 미리 등록하는 방법입니다.

현재 상태

이동하는 것
onDone 함수
현재 위치
함수 전달
다음 위치
작업 시작

30초 확인 문제

비동기 콜백을 전달한 함수가 보통 먼저 하는 일은?

처음 보는 용어 두 개

콜백
다른 코드에 전달되어 나중에 호출되는 함수
이벤트
관심 있는 일이 발생했음을 나타내는 신호

이 절을 다 읽었다면

콜백은 작업 결과가 생길 미래 시점에 실행할 코드를 미리 등록하는 방법입니다.

← 이전 절

2.4 코루틴은 함수와 무엇이 다를까?

다음 절 →

2.6 동기와 비동기는 무엇이 다를까?