Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 자바스크립트
- oracle
- java
- JavaScript
- web
- node.js
- Next.js
- spring
- 프론트엔드
- 서버
- SQL
- 코드 테스트
- 데이터베이스
- MySQL
- 코드테스트
- 프로그래머스
- BACK-END
- 오라클
- 스프링
- 쿼리
- 정리
- 스프링부트
- jpa
- 프런트엔드
- 자바
- 디자인 패턴
- 알고리즘
- 백엔드
- jsp
- 미니정리
Archives
- Today
- Total
참치코더의 꿈 메모장
자바스크립트 동기 함수 / 비동기 함수 비교 및 과정 본문
728x90
동기함수
- 거의 모든 함수는 동기함수이다. 모든 자바스크립트 머신에는 해당 함수를 실행시켜주는 호출스택이 있는데 말 그대로
스택의 역할 함수 내부에 있는 코드가 실행중일때 열려있는 함수는 호출스택에 쌓이게 된다.
-> 다중 함수 일경우 function1 실행중에 function2가 실행된다면 아래와 같이 FIFO구조로 저장이 된다.
- 자료구조인 스택의 역할처럼 종료되면 위에서 부터 하나씩 순차적으로 종료가 된다.
| ... |
| ... |
| function2 |
| function1 |
호출 스택
비동기 함수
- 비동기 함수는 동기함수와 달리 내가 코드를 작성한 순서대로 실행이 되는 것이 아닌 시스템이 의도하는 대로
움직이는 함수라고 할 수 있다.
- 일단 비동기 함수가 실행이 되면 실행할 때 접근함수는 그대로 호출스택에 쌓이지만 접근함수 내부에 있는 콜백함수가
백그라운드 공간에 같이 순차적으로 쌓이게 된다.
- 순차적으로 동기함수 및 접근함수가 호출스택에서 종료가 되고, 백그라운드에 있던 콜백함수는 테스크 큐라는
공간으로 이동이 진행된다.(CPU가 M/M에서 자원가져오는 거랑 비슷한 원리인 듯(?))
- 테스크 큐 사이랑 호출스택 사이에는 이벤트 루프라는 기능(알고리즘)이 존재하는데 이벤트 루프가 호출 스택이 비었다라고
판단이 되면, 콜백함수를 호출 스택에 올리고 순차적으로 실행이 된다.
- 이것이 비동기 함수의 원리이다.


728x90
'Javascript' 카테고리의 다른 글
| Javascript / 비동기 정리 및 Promise, async, await 비교 (0) | 2025.10.28 |
|---|---|
| Javascript / 리덕스(Redux) - 개념 미니 정리 (0) | 2025.09.09 |
| 자바스크립트 클래스(Class) 구조 정리 (1) | 2025.04.19 |
| 자바스크립트 (배열 및 객체) 얕은 복사와 깊은 복사의 개념 정리 (1) | 2025.04.18 |
| 자주 쓰는 자바스크립트 배열(Array) 메소드 2 (1) | 2025.04.16 |
Comments