동기와 비동기의 차이
동기(Synchronous): 작업이 순차적으로 실행되며, 이전 작업이 완료되어야 다음 작업이 실행
비동기(Asynchronous): 작업이 병렬적으로 실행되며, 이전 작업이 완료되지 않아도 다음 작업이 실행
블로킹과 논블로킹의 차이
블로킹(Blocking): 작업이 완료될 때까지 프로그램의 실행이 멈춤
논블로킹(Non-blocking): 작업이 완료되지 않아도 프로그램의 실행이 계속됨
동기/비동기와 블로킹/논블로킹의 조합
동기 + 블로킹: 작업이 순차적으로 실행되며, 이전 작업이 완료되어야 다음 작업이 실행됩니다.동기 + 논블로킹: 작업이 순차적으로 실행되지만, 이전 작업이 완료되지 않아도 다음 작업이 실행됩니다.비동기 + 블로킹: 작업이 병렬적으로 실행되지만, 이전 작업이 완료되어야 다음 작업이 실행됩니다.비동기 + 논블로킹: 작업이 병렬적으로 실행되며, 이전 작업이 완료되지 않아도 다음 작업이 실행됩니다.
async await이 잘 모르겠어서 이것저것 보다가
동기, 비동기의 개념으로 올라갔다.
개념은 이해가 가는데
프로그래밍적으로 어떨때 쓰고 싶은지 잘 모르겠다..
아직 이해를 못한건가?
JavaScript는 단일 스레드 언어이기 때문에 동기 코드는 순차적으로 실행되지만, 비동기 코드는 콜백 함수를 사용해야 함
=> 콜백 지옥 문제 발생
=> 해결책
ES6
promise 객체비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냄
[mdn]
즉, 비동기 작업을 처리하기 위해 사용되는 객체
Promise는 비동기 작업의 최종 완료 또는 실패를 나타내는 객체로, 작업의 결과를 값으로 받아 처리
promise 장점
ES7
async / await컴퓨터 프로그래밍에서 async/await 패턴은 비동기, 비차단 기능이 일반 동기 기능과 유사한 방식으로 구조화되도록 하는 많은 프로그래밍 언어의 구문 기능 구현
wiki
async/await의 장점
우선적으로 코드에 대한 숙달이 먼저 이뤄져야하겠다.
참고 자료
👩💻 완벽히 이해하는 동기/비동기 & 블로킹/논블로킹
오늘은 밖에서 조금 뛰어야 겠다.