동기와 비동기
2020. 1. 9. 18:18ㆍJAVASCRIPT
동기(Synchronous : 동시에 일어나는)
요청과 결과가 동시에 일어난다는 약속이다.
동기방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기(Blocking)해야하는 단점이 있다.
비동기(Asynchronous : 동시에 일어나지 않는)
요청과 결과가 동시에 일어나지 않을거라는 약속이다.
동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업(Non-Blocking)을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.
콜백함수("call" + "back")
콜백함수는 자바스크립트의 비동기성을 표현하고 관리하는 가장 일반적인 기법이자 가장 기본적인 비동기 패턴이다.
즉, 콜백함수가 실행됐다는 것으로 요청한 작업이 끝났음을 알리고, 작업의 결과물을 콜백함수를 통해 사용가능하게 됩니다. ex) 클릭 이벤트가 발생할 때 출력되는 콜백 함수.
콜백헬(hell), 피라미드 무덤
콜백함수가 늘어나면 늘어날 수록 코드의 깊이가 늘어나 더이상 헤어날 수 없다는 유머입니다.
이러한 문제에 해결방법으로 Promise라는 개념이 있습니다. 다음 장에 이어서 작성하겠습니다.
'JAVASCRIPT' 카테고리의 다른 글
jQuery를 이용한 탭 메뉴 기능 (0) | 2020.01.12 |
---|---|
JS를 이용한 가위바위보 게임 (0) | 2020.01.10 |
JS로 만든 숫자야구게임 (0) | 2020.01.09 |
클로저의 의미와 사용하는 이유 (2) | 2020.01.07 |
$(function(){})를 사용하는 의미와 이유 (0) | 2020.01.07 |