티스토리 뷰
반응형
✏️ 자바스크립트 엔진 구조
- 변수들의 기본 데이터는 Memory Heap 영역에 저장된다
- Call Stack은 코드들을 실행하는 곳
- 자바스크립트는 동기적인 프로그래밍 => 코드들 쓴 순서대로 실행시킨다
✏️ 자바스크립트의 실행 스레드
- 자바스크립트는 스레드가 하나인 싱글 스레드 구조를 가진다
- 오래 걸리는 작업이 생기게 되면 싱글 스레드 구조 때문에 그 작업을 처리하는 동안 다른 코드를 실행할 수 없기 때문에 다음 코드들은 앞의 작어을 처리하는 만큼 시간이 지연된다
✏️ 싱글 스레드 해결법(웹 API)
- 웹 API가 스레드를 제공해준다
- setTimeout => 입력한 시간만큼 코드를 딜레이시키고 함수를 실행시킨다
- eventhandler => 클릭과 같은 이벤트를 핸들하는 함수들
- Ajax, Axios, fetch => 클라이언트와 서버간에 데이터를 주고받는 기술
✏️ Task Queue
- 웹 브라우저에서 할 일을 가지고 있다가 자바스크립트엔진으로 넘겨주는 역할
- Call Stack이 비게 되면 일을 넘겨준다
✏️ 비동기 처리 방식
- async, await의 비동기 처리 방식이 있다
- await => async의 함수를 일시정지 시켜준다, 즉 함수를 멈추고 함수 다음 문장을 실행시킨 뒤 함수를 실행시킨다
✏️ 정리
- 자바스크립트에서 API호출과 같이 시간이 오래 걸리는 작업을 만나게 되면 웹 API가 작업을 가져가서 다른 일들을 자바스크립트 엔진이 처리하는 동안 기다리면서 Task Queue로 넘긴 후, 자바스크립트엔진이 일을 끝내게 되면 Task Queue에서 자바스크립트엔진으로 일을 넘겨준다 => 싱글 스레드 구조인 자바스크립트의 대처 방식
✏️ 기타
- <pending> => fetch를 실행시킬 때 네트워크 상황에 따라서 데이터를 불러오는 속도가 달라지므로 데이터를 가져올 때까지 기다려달라는 의미로 사용
반응형
'Front-end > JS' 카테고리의 다른 글
[Web/JS] 최신 자바스크립트 기술들 (0) | 2024.08.04 |
---|---|
[Web/JS] 자바스크립트 API 호출 (0) | 2024.08.04 |
[Web/JS] 자바스크립트 백틱 용법(탬플릿 리터럴) (0) | 2024.08.04 |
HTML+CSS+자바스크립트 웹 표준의 정석 17장 마무리 문제 (0) | 2024.07.02 |
[Web/JS] 자바스크립트 - DOM에서의 노드 추가 및 삭제 (0) | 2024.05.16 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준
- BFS
- 알고리즘 공부
- 자료구조
- 우선순위 큐
- 스택
- js
- 투 포인터
- 에라토스테네스의 체
- 유클리드 호제법
- 카운팅 정렬
- 백준 풀이
- c++ string
- 유니온 파인드
- DFS
- java
- 알고리즘
- 자바스크립트
- 스프링 부트 crud 게시판 구현
- 자바
- Do it!
- 이분 매칭
- DP
- HTML5
- CSS
- 반복문
- C++
- C++ Stack
- html
- 세그먼트 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함