티스토리 뷰

동기(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
링크
«   2024/05   »
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
글 보관함