티스토리 뷰
자바스크립트의 처리방식과
동기식, 비동기에 대해서 천천히 알아보자!
출처 - https://learnjs.vlpt.us/async/
📑 동기식(Synchronous) VS 비동기식(Asynchronous)
동기와 비동기를 나누는 가장 큰 차이점을 어떻게 실행 순서를 가지는 지에 있다.
Syncronous 동기는 요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행하는 방식을,
Asynchronous 비동기는 요청을 보낸 후 응답과 관계없이 다음 동작을 실행할 수 있는 방식을 의미한다.
👏 동기식 (Synchronous)
먼저 시작된 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다. 위 그림 Synchronous와 같이 작업이 직렬로 배치되어 실행되며 작업 실행의 순서가 확실히 정해져 있는 것을 동기식 처리라 부른다.
👏 비동기식 (Asynchronous)
동기식 방식과는 다르게 먼저 시작된 작업의 완료 여부와는 상관없이 새로운 작업을 시작하는 방식이다.
위 그림 Asynchronous와 같이 작업이 병렬로 배치되어 실행되며 작업의 순서가 확실하지 않아 나중에 시작된 작업이 먼저 끝나는 경우도 발생한다. 이와 같은 방식을 비동기식 처리라 부른다.
💻 자바스크립트 비동기 처리
자바스크립트에는 아래와 같이 3가지 비동기 처리방식이 있다.
1. 콜백 함수 사용
https://tlsdnjs12.tistory.com/13
비동기식 (Asynchronous) - 콜백 함수(Callback Function) 란?
자바스크립트 지식을 공부하면서 "콜백"이라는 단어를 많이 보았는데, 정확한 의미를 알려주는 책은 찾기 힘들었다. 그래서 이번기회에 블로그를 정리하면서 모르는 내용들을 하나하나 파악하
tlsdnjs12.tistory.com
2. Promise
https://tlsdnjs12.tistory.com/14
비동기식 (Asynchronous) - promise 이란?
콜백지옥을 벗어나기 위해 promise를 사용하는데 promise가 무엇인지 더 자세히 알아보기로 마음먹었다. 💖 Promise “A promise is an object that may produce a single value some time in the future” - 프..
tlsdnjs12.tistory.com
3. Promise를 활용한 async/await
https://tlsdnjs12.tistory.com/15
비동기식 (Asynchronous) - Promise를 활용한 async/await 이란?
promise에 대해 알아봤으나 promise을 활용한 asyns/await 비동기 방식에 대해서 알아볼 생각입니다. asyns/await는 왜 나왔는지 어떻게 사용하는지에 대하여... 💖 async/await 비동기 프로그래밍에서 콜백함
tlsdnjs12.tistory.com
자바스크립트는 기본적으로 비동기적으로 동작을 한다.
개발하다 보면 비동기식으로 동작하는 부분이 동기적으로 동작해야 하는 경우가 생긴다.
이럴 때 비동기식 동작이 동기식으로 동작하도록 해주는 걸 비동기 처리라고 한다.
🎠 비동기의 주요 사례
👉 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
- 깃허브
- 콜백함수
- github.io
- Execution_Policies
- SPREAD
- await
- create-react-app
- Prettier
- Visual Studio Code
- react-router-dom
- vscode
- 소스제어
- 비구조화(구조분해) 할당
- 반복문
- 마크다운
- GIT
- localstorage
- ssh key
- 콜백지옥
- Single Page Application
- Flexbox&CSS grid
- react
- Github
- Multiple Page Application
- Reat
- JSON
- async
- 5.0.0버전 업
- 4.0.3오류
- MPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |