티스토리 뷰
자바스크립트의 처리방식과
동기식, 비동기에 대해서 천천히 알아보자!
출처 - https://learnjs.vlpt.us/async/
📑 동기식(Synchronous) VS 비동기식(Asynchronous)
동기와 비동기를 나누는 가장 큰 차이점을 어떻게 실행 순서를 가지는 지에 있다.
Syncronous 동기는 요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행하는 방식을,
Asynchronous 비동기는 요청을 보낸 후 응답과 관계없이 다음 동작을 실행할 수 있는 방식을 의미한다.
👏 동기식 (Synchronous)
먼저 시작된 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다. 위 그림 Synchronous와 같이 작업이 직렬로 배치되어 실행되며 작업 실행의 순서가 확실히 정해져 있는 것을 동기식 처리라 부른다.
👏 비동기식 (Asynchronous)
동기식 방식과는 다르게 먼저 시작된 작업의 완료 여부와는 상관없이 새로운 작업을 시작하는 방식이다.
위 그림 Asynchronous와 같이 작업이 병렬로 배치되어 실행되며 작업의 순서가 확실하지 않아 나중에 시작된 작업이 먼저 끝나는 경우도 발생한다. 이와 같은 방식을 비동기식 처리라 부른다.
💻 자바스크립트 비동기 처리
자바스크립트에는 아래와 같이 3가지 비동기 처리방식이 있다.
1. 콜백 함수 사용
https://tlsdnjs12.tistory.com/13
2. Promise
https://tlsdnjs12.tistory.com/14
3. Promise를 활용한 async/await
https://tlsdnjs12.tistory.com/15
자바스크립트는 기본적으로 비동기적으로 동작을 한다.
개발하다 보면 비동기식으로 동작하는 부분이 동기적으로 동작해야 하는 경우가 생긴다.
이럴 때 비동기식 동작이 동기식으로 동작하도록 해주는 걸 비동기 처리라고 한다.
🎠 비동기의 주요 사례
👉 DOM Element 의 이벤트 이벤트 핸들러
- 마우스, 키보드 입력 (click, keydown 등), 페이지 로딩 (DOMContentLoaded 등)
👉 타이머
- 타이머 API (setTimeout 등), 애니메이션 API (requestAnimationFrame)
👉 서버에 자원 요청 및 응답
- fetch API, AJAX (XHR)
'Javascript' 카테고리의 다른 글
비동기식 (Asynchronous) - promise 이란? (0) | 2022.01.10 |
---|---|
비동기식 (Asynchronous) - 콜백 함수(Callback Function) 란? (0) | 2022.01.10 |
JSON 이란? (0) | 2022.01.07 |
Ajax 이란? (0) | 2022.01.06 |
for 반복문 / for ...in 반복문 / for ...of 반복문 / forEach 반복문 이란? (0) | 2021.12.15 |
- Total
- Today
- Yesterday
- SPREAD
- 마크다운
- 콜백지옥
- 4.0.3오류
- Multiple Page Application
- MPA
- 소스제어
- react
- Github
- Flexbox&CSS grid
- 반복문
- 깃허브
- GIT
- 5.0.0버전 업
- ssh key
- Prettier
- async
- JSON
- create-react-app
- github.io
- Visual Studio Code
- await
- react-router-dom
- Reat
- 비구조화(구조분해) 할당
- vscode
- 콜백함수
- Single Page Application
- localstorage
- Execution_Policies
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |