[DAY9] 동기와 비동기 1

m1njae·2022년 1월 11일
0

22 Basic Challenge

목록 보기
9/25
post-thumbnail

동기(Synchronous)

동기는 요청을 보낸 후 응답을 받아야 다음 동작이 이루어지는 방식을 말한다.
모든 일은 순차적으로 실행되며 어떤 작업이 수행중이라면 다음 작업은 대기하게 된다.

비동기(Asynchronous)

비동기는 요청을 보내고 결과를 받지 않아도 다음 동작이 실행 된다.
프로그램이 요청받은 작업을 수행하는 동안 다른 프로그램이 다른 작업을 수행한다. 순차적이고 직렬적인 동기식과 반면에, 병렬적으로 작업을 수행한다.

JavaScript는 싱글쓰레드 방식으로 동작하기 때문에 한 번에 한 가지 일만 수행할 수 있다. 이러한 JavaScript의 특징은 비동기적인 프로그래밍이 필요하다고 할 수 있다. 싱글쓰레드에서 비동기적인 프로그래밍을 하는 것이 멀티쓰레드와 같이 동시 다발적인 실행이 가능해지는 것은 아니지만, 사람이 인지할 수 없을 정도로 찰나의 시간으로 순차적인 실행이 이루어지기 때문에 동시에 실행되는 것과 다름없게 느껴진다. 현재의 웹은 이전보다 커지고 복잡해졌기 때문에 사용자의 동시 다발적인 요청에 빠르게 응답하기 위하여 비동기적인 프로그래밍을 활용한다.

아래의 그림은 동기와 비동기를 이해하기 쉽게 설명해놓았다. 다음 포스팅에서는 동기와 비동기 방식이 코드 레벨에서 어떤 차이를 가지는가에 대해서 알아보도록 하겠다.

profile
할 수 있는 것부터 차근차근, 항해자의 공부 기록공간

0개의 댓글