티스토리 뷰
동기(synchronous) 방식
어떠한 작업을 실행 했을 때 그 작업이 끝나고 반환 값을 받은 후에
다음 함수를 실행하는 방식으로
만약 반환 값이 오지 않는다면 무한정 기다린다.
(너 끝날때까지 아무것도 안할거야!)
그러니까 A 함수와 B 함수가 차례대로 들어온다면
A함수를 실행하고 반환(return) 값을 받은 후에
B함수를 실행하는 방식이다.
장점: 직관적이고 설계가 쉽다.
단점: 결과가 나올 때 까지는 아무것도 못한다.
비동기(Asynchronous) 방식
어떠한 작업을 실행만 하고
다음 함수를 실행 사는 방식으로
그러니까 A함수와 B함수가 차례대로 들어온다면
A함수를 실행하고(끝나든 말든)
B함수를 실행하는 방식이다.
다만 비동기식 처리를 요청했던 것의 할일이 끝난 후
처리 결과를 콜백이라는 함수와 함께 알려준다.
장점: 데이터를 처리하는 동안 다른 작업을 할 수 있기 때문에 자원을 효율적으로 사용하며 불필요한 로딩을 줄일 수 있다.
단점: 설계가 어렵고 어떤 작업이 먼저 끝날지 알 수 없다.
콜백(Callback) 함수(function)
비동기의 처리결과로 반환되는 콜백함수.
콜백함수는 특정 함수에 매개변수로 전달된 함수을 의미한다.
이렇게 콜백함수를 전달 받은 함수 내에서 콜백함수가 실행이 된다.
상황에 따라 어떤 작업이 끝났다는 것을 사용자에게 알려주거나,
코드 내부에서 콜백함수를 받았을 경우에만 처리하는 로직을 짤 수 있다.
예를 들어 DB에서 데이터를 다 가져오지도 않았는데 출력을 해버리면 결과 값이 나오지 않는다.
하지만 콜백함수로 처리결과를 받은 후 출력을 한다면 데이터를 다 가져오고 출력을 하기 때문에 정상적인 결과값이 출력되는 것이다.
관련 글
'Programing' 카테고리의 다른 글
아스키코드표 ASCII Code Table (1) | 2020.07.28 |
---|
- Total
- Today
- Yesterday
- 유튜브ID에러
- 자급제폰
- 자바
- ASCII Code Table
- 우클릭 방지
- 도망가는꿈
- 한글인식
- 크롬
- 과일꿈
- 애드블록
- 탭복구
- 크롬브라우저
- LinkedList
- 아스키코드표
- 방문기록
- 직접유입
- 인터넷기록
- 유튜브오류
- 1366
- 방문자수
- 자식클래스
- 콜백함수
- 티스토리
- 7일차
- 재생id
- 배열선언
- 알뜰폰
- 자급제
- 부모클래스
- 셀프개통
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |