일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에릭 노이먼
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 오종택개발자님
- 쏙속 들어오는 함수형코딩
- 클린코드다시읽기
- 쏙쏙들어오는함수형코딩
- 쏙쏙 들어오는 함수형코딩
- 큰돌의 CS책
- 고등애플
- 나는 flux좋아...
- 출처 : 자바스크립트 딥다이브
- 함수형 코딩
- 이웅모
- 출처는 코딩앙마
- 유틸리티타입은 공식문서 자주 보자
- 리엑트를 다루는 기술
- 자바스크립트 딥다이브
- 흥달쌤
- 출처 : https://www.boostcourse.org/
- 출처는 코딩애플
- 갈길이 멀구나
- 출처 : 코딩애플
- 에릭 노먼드
- 로버트 C마틴
- 쏙쏙 들어오는 함수형 코딩
- https://product.kyobobook.co.kr/detail/S000001952246
- 에릭노이먼
- 생코님Redux
- 출처 : 코딩앙마
- 김영한쌤
- Today
- Total
흰둥씨의 개발장
[함수형 코딩#15] 타임라인 격리/ JS thread 본문
타임라인 다이어그램을 그려서, 시간에 따라 어떤 일이 일어나는지 보고, 버그를 수정
액션 확인하고 -> 액션그리기(순서대로 실행, 비동기실행분류) -> 타임라인 단순화 -> 타임라인 읽고 결과예측
> 두가지 액션이 순서대로 나타나면 같은 타임라인에 넣음
ㄴ순차 실행
함수A()
|
함수B()
|
함수C()
> 두가지 액션이 동시에 실행되는 경우 순서를 예측할수 없음 > 다른 타임라인에 넣음
ㄴ 자바스크립트는 stack에서 한가지만 수행하기 때문에 동시에 실행되지는 않음
함수A()
| exeA()
함수B() |
| exeB()
함수C()
자바스크립트는 싱글스레드(single threaded)
- 하나의 실행 컨텍스트를 가짐(=동기적 처리한다= 한번에 코드 한줄씩 차례차례 실행한다= synchronous =콜스택이 하나다)
- 자바스크립트로 비동기 실행하고 싶으면 콜백함수 써야함 (=> 길어지면 가독성 문제 생김 => promise나옴)
- 싱글스레드인데 setTimeout()같은 비동기함수는 어떻게 실행되는것인가?
ㄴ> 비동기함수(= webAPI와 관련된 특수한 함수)는 브라우저가 지원해서 런타임에는 비동기처리 가능
WebAPI를 가진 브라우저가 지원하는 함수로 런타임에는 자바스크립트도 멀티스레드처럼 작동함
(=비동기처리함)
웹 브라우저 작동방식
(자바스크립트엔진 = stack + heap)
ㄴ>(call) Stack : main context + 실행 순서대로 함수들넣고 차례로 실행함
ㄴ> Heap : 참조 타입(객체 등) 데이터 들이 저장되는 공간
ㄴ> 비동기 함수 만나면 대기실로 보내두고 다음 코드 실행함
ㄴ> 대기실 (=web apis) : eventListener(), ajax, setTimeout(), setInterval()...들은 대기실로 보내짐
ㄴ>(callback) Queue: 대기실에서 대기 끝나면 Queue에 머물다가 Stack이 텅비면 Queue에서 올려보냄
ㄴ> 이벤트 루프 : Queue에서 Stack으로 올려보내는 작업을 함 (1. Queue에 작업있는지 확인 && 2. Stack이 비어있는지 확인)
ㄴ> 네트워크 엔진: 자바스크립트에서 ajax요청이 오면 네트워크 엔진은 연결을 맺고 캐싱하고 ajax를 큐에 넣음
https://developer.mozilla.org/ko/docs/Web/JavaScript/Event_loop
'함수형 프로그래밍 > 쏙쏙 들어오는 함수형 코딩' 카테고리의 다른 글
[함수형 코딩#17] 타임라인 조율하기 (0) | 2023.07.14 |
---|---|
[함수형 코딩#16] 타임라인 사이에 자원 공유하기 (0) | 2023.07.14 |
[함수형 코딩#14] 중첩데이터에 함수형도구 사용 (0) | 2023.07.12 |
[함수형 코딩#12~#13] 함수형 반복 / 체이닝 (0) | 2023.07.09 |
[함수형 코딩#10~#11] 일급함수 (0) | 2023.07.07 |