일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리트코드
- SQL 고득점 Kit
- python
- 백준
- 정재남
- 자바스크립트
- 2주 프로젝트
- 코드스테이츠
- LeetCode
- 코어 자바스크립트
- 리액트
- 타입스크립트 올인원
- 파이썬
- 타입스크립트
- codestates
- 렛츠기릿 자바스크립트
- 프로그래머스
- 제로초
- 토익
- 손에 익히며 배우는 네트워크 첫걸음
- javascript
- 리덕스
- 알고리즘
- Async
- programmers
- til
- 4주 프로젝트
- js
- 회고
- 타임어택
Archives
- Today
- Total
Jerry
[JS]비동기 프로그래밍 본문
반응형
동기식 처리 모델(Synchronous processing model)
직렬적으로 태스크(task) 수행한다
태스크는 순차적으로 실행되며 어떤 작업 수행 중이며 다음 작업은 대기한다
서버에서 데이터 요청을 받아 화면에 표시하는 작업 수행 시, 서버에 데이터 요청 후 응답될 때까지 태스크들은 블로킹(blocking, 작업 중단)이 된다.
function first() {
console.log('first');
second();
}
function second() {
console.log('second');
third();
}
function third() {
console.log('third');
}
first();
비동기식 처리 모델(Asynchronous processing model / Non-Blocking processing model)
병렬적으로 태스크(task) 수행한다
태스크가 종료되지 않은 상태라 하더라도 대기하지 않고 다음 태스크를 실행한다
서버에서 데이터 요청하여 화면에 표시하는 태스크 수행할 때, 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(non-blocking) 즉시 다음 태스크를 수행한다
브라우저에서의 비동기 프로그래밍은 주로 통신과 같이 오래 걸리는 작업들을 브라우저에 위임할 때 이루어진다.
- 자바스크립트의 대부분의 DOM 이벤트 핸들러와 Timer 함수(setTimeout, setInterval), Ajax 요청은 비동기식 처리 모델로 동작한다
비동기 프로그래밍 방식은 대개 프로그램의 성능과 응답성을 높이는 데에 도움을 줍니다. 하지만 코드가 실제로 실행되는 순서가 뒤죽박죽이 되므로, 코드의 가독성을 해치고 디버깅을 어렵게 만든다는 비판을 받아왔습니다. 이런 문제를 해결하기 위해 비동기 프로그래밍을 위한 여러 기법이 생겨났고, 또 어떤 것들은 JavaScript 언어 자체에 포함되기도 했습니다.
function first() {
console.log('first');
second();
}
function second() {
setTimeout(function() {console.log('second')}, 0);
third();
}
function third() {
console.log('third');
}
first();
Source
https://poiemaweb.com/js-async
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Asynchronous
https://helloworldjavascript.net/pages/285-async.html
반응형
'Front > JavaScript' 카테고리의 다른 글
[JS]this에 대해 알아보기 (1) | 2023.03.03 |
---|---|
[JavaScript] TDZ(Temporal Dead Zone)이란? (0) | 2023.02.21 |
[JavaScript] var, let, const 의 차이점 (0) | 2023.02.21 |
[JavaScript] 호이스팅(Hoisting)이란? - 호이스팅이란 (0) | 2023.02.20 |
[리뉴얼] 렛츠기릿 자바스크립트 #4 (0) | 2022.01.06 |