본문 바로가기
Programming

[Javascript] 비동기 프로그래밍이란?

by 개발자 염상진 2022. 5. 17.

 

 

 

Javascript 비동기 프로그래밍이란?

 

비동기 프로그래밍을 이해하기 위해서 줄을 늘어선 대기 줄이 있다고 하자. 먼저 주문한 손님이 물건을 받을 때 까지 뒤의 손님들은 대기 줄에서 '기다릴 수 밖에' 없다. 심지어 주문조차 할 수 없는 상황이다. 이렇게 대기열에서 아무런 행동도 하지 못하는 상황을 'Blocking' 상태라고 한다.

 

미리 주문한 사람이 물건을 받고 나서야 뒤의 사람이 주문이라는 행위를 할 수 있다. 이렇게 프로세스의 시작 시점과 종료시점이 동일한 상황을 동기화되어있다 라고 표현한다.

 

효율적인 매장 운영을 위해서 스타벅스에 도입된 사이렌 오더를 생각해보자. 방문객들은 '주문'을 하기 위해 기다릴 필요 없이 앱으로 바로 주문을 할 수 있고, 물건이 준비되면 '바로' 수령이 가능하다. 이런 상황을 '비동기 상태' 라고 한다.

 

Node.js 런타임 환경은 기본적으로 Non-blocking 상태인 비동기(asynchronous) 작동 방식을 가진다. Node.js 뿐만 아니라 웹에서 작동한 Javascript는 비동기적 실행을 지원한다. 우리가 인터넷을 사용하면서 백그라운드 실행, 서버에 서로 다른 요청을 보낸는 행위, 큰 용량의 파일을 로딩하는 작업들 모두 '비동기적'으로 진행되는 작업들이다.

 

Javascript 비동기 흐름

 

Javascript의 비동기 흐름은 callback, promise, async/await 문법을 사용한다.

Node.js에서는 파일을 read/write 하는 fs 모듈을 지원한다.

 

비동기흐름을 이해하기 위해서는 아래 섹션에 대한 이해도가 필요하다.

① blocking / non-blocking

② synchronous / asynchronous 개념

③ method chaining(Array 고차함수 들)

④ 중첩된 callback 함수의 단점 그리고 Promise 개념

⑤ Promise(resolve, reject, then, catch) 

⑥ Promise 세가지 상태, Promise.all사용법

 

 

 

 

 

[Javascript] Array Function some, sort, every 사용법

Javascript Array some 함수 some 함수는 배열의 요소 중 하나라도 참 값을 가지면 true를 반환하는 Javascript Array 함수다. 배열이 비어있는 경우나 조건식이 없는 경우의 초기 반환값은 false를 가진다. som.

about-tech.tistory.com

 

댓글