- 기다리고 기다리며 순차 실행 되는 동기
- 우당탕당 우선 출발 비동기
결과적으로 자바스크립트는 언어로서는 싱글 스레드지만, 실행 환경은 멀티 스레드 기능을 제공하는 독특한 구조를 가지고 있다고 정리할 수 있다.
- 자바스크립트 자체는 메인 스레드, 이벤트 루프로 동작하는 싱글 스레드이지만
- 자바스크립트를 실행하는 환경, 웹이나 노드는 멀티 스레드 이므로
- 싱글 스레드인 이유?
- DOM 조작이 동시에 여러 스레드에서 발생할 경우 발생할 수 있는 복잡한 동시성 문제를 피하기 위해
- 비동기 호출이 가능한 이유?
- 싱글 스레드라면 동기 호출만 가능하리라 생각되는데
- 비동기 호출이 가능한 이유는 이벤트 루프
- 콜 스택이 비어있을때 태스크 큐에서 가져와 실행
- 매크로/마이크로
- setTimout 매크로태스크 큐
- Promise 마이크로태스크 큐
- setTimeout, Promise를 순서대로 호출하더라도
- Promise then이 먼저 오고 그 다음 setTimeout 응답이 온다
- 마이크로태스크의 우선 순위가 더 높기 때문
- 애니메이션 큐가 따로 있다
- 마이크로태스크 > 매크로태스크로 렌더링 전까지 큐가 호출되고
- 렌더링 (리페인트) 되기 직전에 애니메이션 큐 실행
- async await
- Promise then 이 그대로 들어가는 형태라고 보면 될듯
- 마이크로태스크와 매크로태스크의 처리 순서로
- 비동기 작업의 우선순위와 실행 순서를 예측 가능하도록함
- 어떤 장/단점을 가진 개발자분이, 어떤 회사의, 어떤 상황에서 일 하느냐
- 남들이 정의한 개발자 상에 집중할 필요가 없다
- 나는 어떤 장점과 어떤 단점을 가진 사람이니 그걸 🙈 발전시킬 것인가
- 기술 블로그를 매일 아침 열시에 메일로 보내주던 서비스가 있었다
- 그리고 벌써 7~8년정도 지난 것 같은데
- 이 서비스를 종료한다는 소식이 있었고 얼마 지나지 않아 올라온 이야기
- 기술 블로그에 스팸성 글이 올라올때나 발송이 누락되는 시절이 있었는데
- 내 서비스는 아니지만 내 자식인것 처럼?
- 걱정하고 물었던 기억이 난다
- 응원하는 팀의 선수가 FA 되는 기사를 본 것 같은 기분의 연속이랄까
- 무엇보다 글의 내용이